rover – GraphQL 架构管理与部署 Skill

3周前更新 7 0 0 0

Rover 是 Apollo GraphQL 的官方命令行工具,用于管理 GraphQL 联邦图、Schema 检查与发布、子图注册以及本地路由开发,这个 Skill 帮助 AI Agent 通过 Rover 操作 Apollo GraphOS 并执行各类 GraphQL 架构与部署任务。

Skill 安装

多 Agent 安装
npx skills add https://github.com/apollographql/skills --skill rover

使用 npx skills 快速安装,支持将 Skill 添加到多个兼容的 AI Agent。

Skill 调研报告

Skill 详细介绍

apollographql/skills#rover 是 Apollo GraphQL 官方仓库 apollographql/skills 中提供的 Rover 相关 Skill。Rover 是 Apollo 官方推出的 GraphQL 命令行工具(CLI),用于在本地和 CI 环境中管理 GraphQL 服务与图谱,包括 schema 的发布、检查、拉取、子图管理以及与 Apollo Studio / Apollo GraphOS 的交互。

需要明确区分两件事:

  • Rover 本身:Apollo 官方发布的一个独立可执行 CLI 工具,需要单独安装,可以在终端中直接运行。
  • apollographql/skills#rover 这个 Skill:Apollo 官方 Skills 仓库中提供的一段 Agent 能力定义,让 AI Agent(例如 Claude Code)在会话中更了解 Rover 的用法、命令结构和常见工作流,从而帮助用户生成、解释和执行 Rover 相关命令。

这个 Skill 本身不是一个独立软件,也不会替代 Rover CLI。它提供的是指令、上下文和最佳实践,让 Agent 在处理 GraphQL 项目、Apollo 图谱和 Rover 命令时表现得更专业、更贴近官方推荐用法。

核心用途

  • 帮助用户理解和使用 Rover CLI 命令
  • 协助完成 GraphQL schema 的检查、发布、拉取、对比等操作
  • 协助管理 Apollo GraphOS 图谱、子图、变体
  • 在 GraphQL 项目开发、CI/CD 流程中提供命令建议
  • 生成规范、正确的 Rover 命令而不需要用户记忆所有子命令

典型任务

  • 询问某个 Rover 子命令的作用和参数
  • 为一个 GraphQL 项目编写 schema 发布流程
  • 在 CI 中集成 Rover 做 schema 检查
  • 拉取远端 schema 到本地
  • 对比本地与远端 schema 差异

适合哪些用户

  • 使用 Apollo GraphQL 生态的开发者
  • 维护 GraphQL 联邦(Federation)图谱的团队
  • 需要把 GraphQL schema 管理接入自动化流程的工程师

不适合哪些需求

  • 不使用 GraphQL / Apollo 的项目
  • 只想安装 Rover 而不打算借助 Agent 的场景(可以直接参考 Apollo 官方文档)

与普通 Agent 的区别

没有这个 Skill 时,Agent 也能讨论 Rover,但准确度依赖其训练数据,容易记错子命令、参数或推荐流程。加载 Skill 后,Agent 得到的是官方整理过的指令集,回答会更贴近 Rover 当前版本的推荐用法。

Skill 安全评估

总体判断:apollographql/skills#rover 来自 Apollo 官方组织仓库(apollographql),来源可信度较高。它主要是一份指令与上下文定义,本身不包含运行时逻辑,因此在Skill 层面风险较低。

需要关注的不是 Skill 本身,而是通过它触发的实际动作:

  • 来源可信度:apollographql 是 Apollo 官方 GitHub 组织,仓库可追踪,风险可控。建议安装前确认仓库地址与组织名一致。
  • Shell 权限:Skill 会引导 Agent 生成 Rover 命令。如果 Agent 被授权自动执行 Shell,这些命令会真实运行。这是主要风险点。
  • 网络访问:Rover 与 Apollo GraphOS / Apollo Studio 通信,需要网络。Skill 本身不直接发起请求,但生成的命令通常会。
  • 凭证:Rover 使用 Apollo API Key(例如通过环境变量传入)向 GraphOS 发布 schema 或拉取数据。Key 泄露等同于他人可以操作你的 Apollo 图谱。
  • 文件读写:Rover 会读写本地 schema 文件;schema 发布操作可能影响远端图谱配置。

降低风险的建议

  1. 如果只需要 Agent 帮你写 Rover 命令,可以在 Agent 中关闭自动执行 Shell 的权限,由你手动复制命令执行。
  2. Apollo API Key 使用最小权限,不要在主 Agent 会话中长期明文暴露。
  3. 涉及往生产图谱发布 schema 的命令,先人工确认再执行。
  4. 只在可信的 Agent 环境中加载此 Skill,避免被其他提示注入影响。

不要认为官方来源就“绝对安全”。安全边界取决于授予 Agent 的实际权限,而不是 Skill 本身。

Skill 使用要求

一、Agent / 客户端

apollographql/skills 是 Apollo 官方维护的 Agent Skills 仓库,主要面向支持 Skills 机制的 AI Agent。它在 Claude Code 中使用较为自然,也适合其他支持自定义 Skill / 指令加载的 Agent。

官方没有公布完整的第三方 Agent 兼容清单。从 Agent Skill 的通用工作方式来看,在支持 Skills、自定义指令或类似加载机制的 Codex、Cursor、Trae、OpenClaw、WorkBuddy 等环境中通常也可以尝试使用,但不同 Agent 的加载方式和兼容程度可能不同,具体以对应 Agent 当前版本为准。

项目 要求
Agent 支持 Skills / 自定义指令的 Agent,Claude Code 使用较为自然
Node.js / Python Skill 本身不强制要求;运行 Rover CLI 时以其官方要求为准
网络 使用 Rover 与 Apollo GraphOS 交互时需要

二、运行环境 / 依赖

这类 Skill 本质是指令集,加载它本身通常不需要额外运行时。

但如果你希望 Agent 真正执行 Rover 命令,则本机需要安装 Rover CLI。Rover 的安装方式、支持的平台和版本要求以 Apollo 官方文档为准,本 Skill 不会代为安装。

另外,一个 GraphQL 项目目录(含 schema)是让 Rover 命令有意义的前提。

三、权限

  • 文件读取:执行 Rover 命令读取 schema 时需要。可选(取决于是否自动执行)
  • 文件写入:Rover 拉取或导出 schema 时需要。可选
  • Shell:如果希望 Agent 直接运行 Rover 命令,需要。可选,可以关闭并手动执行
  • 网络:与 Apollo GraphOS 通信时需要。可选

四、账号 / API Key

Skill 本身不需要账号或 API Key。

但你通过 Rover 与 Apollo GraphOS 交互的操作(例如发布 schema、拉取远端 schema、查询图谱信息)通常需要一个 Apollo 账号和对应的 API Key。这类凭证属于 Rover CLI 的使用要求,而不是 Skill 的要求。

如果只是让 Agent 帮你讲解 Rover 命令或生成脚本,不需要任何凭证。

最小使用条件

  1. 一个支持 Skills 的 Agent
  2. Rover CLI 相关知识需求(加载即用)
  3. 如需真实执行 Rover 命令:安装 Rover + 一个有 schema 的 GraphQL 项目
  4. 如需访问 GraphOS:Apollo 账号 + API Key

Skill 安装、使用与卸载教程

一、安装

可以直接复制本页面提供的 Skill 安装指令,粘贴到对应 Agent 或终端中执行。

如果你不确定当前 Agent 如何安装 Skill,可以直接问它:

如何安装 apollographql/skills#rover?

如何在 Claude Code 中安装 apollographql/skills#rover?

如何在 Cursor 中安装 apollographql/skills#rover?

让 Agent 根据自己的 Skill 加载与管理机制指导你完成安装,比套用固定命令更稳妥。不同 Agent 对 Skill 的存放目录和加载方式不同,具体以对应 Agent 的当前说明为准。

二、安装后如何使用

安装后,这个 Skill 会在 Agent 处理 GraphQL / Apollo / Rover 相关任务时被触发。你不需要调用特定命令,直接描述需求即可。

适合交给它的任务类型:

  • 解释某个 Rover 子命令或参数
  • 为 GraphQL 项目生成 Rover 命令流程
  • 协助编写 schema 发布 / 检查脚本
  • 排查 Rover 命令使用问题

自然语言使用示例:

使用 rover,帮我写一条从本地把 schema 发布到 Apollo GraphOS 的命令。

使用 rover,解释一下 rover subgraph check 是做什么的,常用参数有哪些。

使用 rover,帮我把这个 GraphQL 项目的 schema 管理流程整理成一个 CI 步骤清单。

三、卸载

不同 Agent 的 Skill 安装位置和管理方式不同,通常没有统一卸载命令。推荐做法:

  • 使用对应 Agent 或 Skill 管理器提供的删除 / 移除方式
  • 或直接询问当前 Agent:“如何卸载 apollographql/skills#rover?”

由 Agent 根据它自己实际加载该 Skill 的位置来移除,比手动查找目录更可靠。

常见问题

1. 这个 Skill 会自动安装 Rover CLI 吗?

不会。Skill 提供的是指令和上下文,Rover CLI 需要你按 Apollo 官方方式单独安装。

2. 没有 Apollo 账号可以用这个 Skill 吗?

可以。只让 Agent 讲解或生成 Rover 命令不需要账号。只有实际与 Apollo GraphOS 交互的操作才需要账号和 API Key。

3. 可以在多个 Agent 中同时安装吗?

通常可以,Skill 通常以文件形式存在,各 Agent 的加载目录互不影响。是否冲突取决于各 Agent 的实现,一般不会。

4. 安装后 Agent 仍然记错 Rover 命令怎么办?

先确认 Skill 是否被当前 Agent 正确加载。可以在会话中直接问 Agent 是否已加载 apollographql/skills#rover。如果未被加载,按对应 Agent 的方式重新安装。

5. 官方更新了这个 Skill,需要重新安装吗?

取决于你的 Agent 是否支持自动同步。如果 Agent 是从本地副本加载 Skill,需要手动更新;如果是从远端仓库拉取,可能按 Agent 机制更新。具体以对应 Agent 的管理方式为准。

6. 中国大陆使用是否有网络要求?

Skill 本身加载不需要额外国外网络。但如果让 Agent 执行 Rover 与 Apollo GraphOS 通信的命令,一般需要能访问 Apollo 官方服务,网络情况可能影响这些操作。

7. 这个 Skill 适合在生产环境中使用吗?

用它来生成或解释命令是可以的。但涉及向生产图谱发布 schema、修改远端配置的命令,建议人工确认后再执行,不要完全交给 Agent 自动运行。

Skill 更新日志

版本列表
v1.2.10 最新
## 变更内容 * chore(deps): 将依赖 prettier 更新至 v3.9.8,由 @svc-secops 提交于 https://github.com/apollographql/skills/pull/79 * docs: 将 connectors 技能指向最新的 Federation 和 Connectors LTS,由 @mabuyo 提交于 https://github.com/apollographql/skills/pull/80 ## 新贡献者 * @mabuyo 在 https://github.com/apollographql/skills/pull/80 中做出了首次贡献 **完整变更日志**: https://github.com/apollographql/skills/compare/v1.2.9...v1.2.10
v1.2.9
## 变更内容 * feat: 添加 authz、safelisting、config-as-code,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/69 **完整变更日志**: https://github.com/apollographql/skills/compare/v1.2.8...v1.2.9
v1.2.8
## 变更内容 * chore: 将 CLAUDE.md 符号链接到 AGENTS.md 并记录版本升级,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/78 * docs: 将 rust-best-practices 技能与上游手册同步,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/76 **完整变更日志**: https://github.com/apollographql/skills/compare/v1.2.7...v1.2.8
v1.2.7
## 变更内容 * chore(deps): 将依赖 prettier 更新至 v3.9.4,由 @svc-secops 提交于 https://github.com/apollographql/skills/pull/73 * chore(deps): 将依赖 prettier 更新至 v3.9.5,由 @svc-secops 提交于 https://github.com/apollographql/skills/pull/74 * chore(deps): 将依赖 prettier 更新至 v3.9.6,由 @svc-secops 提交于 https://github.com/apollographql/skills/pull/75 * docs: 澄清 federation 链接版本是下限,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/77 **完整变更日志**: https://github.com/apollographql/skills/compare/v1.2.6...v1.2.7
v1.2.6
## 变更内容 * chore(deps): 将依赖 prettier 更新至 v3.8.5,由 @svc-secops 提交于 https://github.com/apollographql/skills/pull/70 * chore(deps): 将依赖 prettier 更新至 v3.9.3,由 @svc-secops 提交于 https://github.com/apollographql/skills/pull/71 * 修复 list-apollo-kotlin-versions.sh 的链接,由 @jvanderwee 提交于 https://github.com/apollographql/skills/pull/72 **完整变更日志**: https://github.com/apollographql/skills/compare/v1.2.5...v1.2.6
v1.2.5
## 变更内容 * docs: 记录 rover schema --coord 形式,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/68 **完整变更日志**: https://github.com/apollographql/skills/compare/v1.2.4...v1.2.5
v1.2.4
## 变更内容 * Rover schema 探索,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/67 **完整变更日志**: https://github.com/apollographql/skills/compare/v1.2.3...v1.2.4
v1.2.3
## 变更内容 * 更新 Apollo Kotlin 技能以包含迁移指南,由 @martinbonnin 提交于 https://github.com/apollographql/skills/pull/66 ## 新贡献者 * @martinbonnin 在 https://github.com/apollographql/skills/pull/66 中做出了首次贡献 **完整变更日志**: https://github.com/apollographql/skills/compare/v1.2.2...v1.2.3
v1.2.2
## 变更内容 * docs: 将 gh 技能固定切换为 --pin 标志,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/62 * docs: 澄清 gh cli 注释与多技能安装匹配,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/63 * docs: 修复无效的 SDL 和不匹配的复杂度库,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/64 **完整变更日志**: https://github.com/apollographql/skills/compare/v1.2.1...v1.2.2
v1.2.1
## 变更内容 * feat: 将 gh skill cli 与自动发布集成,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/60 * fix(apollo-ios): 记录不受信任内容的威胁模型,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/61 **完整变更日志**: https://github.com/apollographql/skills/compare/v1.2.0...v1.2.1
v1.2.0
## 变更内容 * ci: 强制升级插件版本,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/59 * 添加 apollo-ios 技能,由 @AnthonyMDev 提交于 https://github.com/apollographql/skills/pull/58 ## 新贡献者 * @AnthonyMDev 在 https://github.com/apollographql/skills/pull/58 中做出了首次贡献 **完整变更日志**: https://github.com/apollographql/skills/compare/v1.0.0...v1.2.0
v1.0.0
## 变更内容 * 处理 Apollo Client 技能反馈:AC4 模式、TypedDocumentNode、缓存最佳实践,由 @Copilot 提交于 https://github.com/apollographql/skills/pull/2 * 更新 README.md,由 @debergalis 提交于 https://github.com/apollographql/skills/pull/4 * 处理 PR #1 反馈:修复 Apollo Client 4.x 文档问题,由 @Copilot 提交于 https://github.com/apollographql/skills/pull/3 * 为 Next.js、React Router 和 TanStack Start 添加框架特定的 Apollo Client 设置指南,由 @Copilot 提交于 https://github.com/apollographql/skills/pull/6 * chore: 配置 Renovate,由 @svc-secops 提交于 https://github.com/apollographql/skills/pull/9 * 使文档语气与 Apollo Voice 指南保持一致,由 @Copilot 提交于 https://github.com/apollographql/skills/pull/8 * 添加针对 Apollo Client 技能的 Copilot 指令,由 @phryneas 提交于 https://github.com/apollographql/skills/pull/12 * 添加 skill-creator 技能,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/10 * 从恢复的文档访问中添加完整的 Apollo Client Suspense hooks 文档,由 @Copilot 提交于 https://github.com/apollographql/skills/pull/11 * 添加强调共置而非复用的 fragments 参考指南,由 @Copilot 提交于 https://github.com/apollographql/skills/pull/13 * 分离客户端和 SSR 集成指南,将 setup 重命名为 integration,由 @Copilot 提交于 https://github.com/apollographql/skills/pull/16 * 用完整手册章节替换 rust-best-practices 摘要,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/15 * 为 JavaScript/TypeScript 代码示例添加 Prettier 格式化,由 @Copilot 提交于 https://github.com/apollographql/skills/pull/17 * 将 apollo-client 技能与上游提交 7f665110 同步,由 @Copilot 提交于 https://github.com/apollographql/skills/pull/18 * 使 Apollo Server 技能与 Apollo Server 5.x 文档保持一致,由 @Copilot 提交于 https://github.com/apollographql/skills/pull/19 * 更新一些导入,由 @phryneas 提交于 https://github.com/apollographql/skills/pull/20 * 将 `skill-creator` 技能添加到活跃的 Copilot Skills,由 @phryneas 提交于 https://github.com/apollographql/skills/pull/23 * 修复 apollo-mcp-server 技能,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/21 * 为 PR 添加 skills-ref 验证工作流,由 @Copilot 提交于 https://github.com/apollographql/skills/pull/25 * 添加 Apollo Kotlin 技能,由 @BoD 提交于 https://github.com/apollographql/skills/pull/26 * Apollo Kotlin 技能:添加脚本以获取最新版本,由 @BoD 提交于 https://github.com/apollographql/skills/pull/28 * 标准化技能版本格式,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/29 * 更新指令信息,由 @dariuszkuc 提交于 https://github.com/apollographql/skills/pull/32 * chore(deps): 将依赖 prettier 固定到 3.8.1,由 @svc-secops 提交于 https://github.com/apollographql/skills/pull/33 * 修复拼写错误,由 @jvanderwee 提交于 https://github.com/apollographql/skills/pull/31 * 添加 apollo-federation 技能,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/5 * feat: 为联邦 GraphQL 超级图添加 apollo-router 技能,由 @gocamille 提交于 https://github.com/apollographql/skills/pull/22 * 添加 Claude Code 插件支持,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/34 * 修复 apollo-mcp-server 技能配置示例中不正确的字段名,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/35 * feat(apollo-router): 使交接和快速开始以技能为先,由 @gocamille 提交于 https://github.com/apollographql/skills/pull/36 * feat(skill): apollo-router-plugin-creator,由 @samuelAndalon 提交于 https://github.com/apollographql/skills/pull/30 * 从允许的工具中移除 curl,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/38 * 更新 apollo-mcp-server 技能以确保准确性,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/39 * fix: 修正 apollo-mcp-server 参考中的 CORS 配置选项,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/40 * fix: 修复损坏的链接和语法/拼写问题,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/41 * ci: 添加 AI 驱动的技能同步工作流,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/42 * refactor: 直接将技能与产品源进行比较,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/43 * ci: 在技能同步中包含新功能覆盖,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/44 * fix: 对分诊结果使用 structured_output,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/45 * fix: 将多操作示例拆分为每个文件一个操作,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/46 * 用 Claude CLI 替换 claude-code-action,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/47 * feat: 添加 GraphQL LSP 服务器配置,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/49 * chore(deps): 将依赖 prettier 更新至 v3.8.2,由 @svc-secops 提交于 https://github.com/apollographql/skills/pull/50 * chore(deps): 将依赖 prettier 更新至 v3.8.3,由 @svc-secops 提交于 https://github.com/apollographql/skills/pull/51 * feat: 从 apollo-client 仓库同步 apollo-client 技能,由 @phryneas 提交于 https://github.com/apollographql/skills/pull/52 * fix(apollo-router): 围绕 Cache-Control 头重构响应缓存,由 @abernix 提交于 https://github.com/apollographql/skills/pull/53 * docs(apollo-router): 扩展可观测性和 Redis 部署指南,由 @abernix 提交于 https://github.com/apollographql/skills/pull/54 * sync: 从 apollo-client@47c63b9795770ad581f77d892932f97b1cb2eb87 同步 apollo-client 技能,由 @github-actions[bot] 提交于 https://github.com/apollographql/skills/pull/55 * 为 apollo-router 技能添加响应缓存覆盖,由 @DaleSeo 提交于 https://github.com/apollographql/skills/pull/37 * sync: 从 apollo-client@de252731ffdc61026b01dd4be9f8d11a98daf43e 同步 apollo-client 技能,由 @github-actions[bot] 提交于 https://github.com/apollographql/skills/pull/57 ## 新贡献者 * @Copilot 在 https://github.com/apollographql/skills/pull/2 中做出了首次贡献 * @debergalis 在 https://github.com/apollographql/skills/pull/4 中做出了首次贡献 * @svc-secops 在 https://github.com/apollographql/skills/pull/9 中做出了首次贡献 * @phryneas 在 https://github.com/apollographql/skills/pull/12 中做出了首次贡献 * @DaleSeo 在 https://github.com/apollographql/skills/pull/10 中做出了首次贡献 * @BoD 在 https://github.com/apollographql/skills/pull/26 中做出了首次贡献 * @dariuszkuc 在 https://github.com/apollographql/skills/pull/32 中做出了首次贡献 * @jvanderwee 在 https://github.com/apollographql/skills/pull/31 中做出了首次贡献 * @gocamille 在 https://github.com/apollographql/skills/pull/22 中做出了首次贡献 * @samuelAndalon 在 https://github.com/apollographql/skills/pull/30 中做出了首次贡献 * @abernix 在 https://github.com/apollographql/skills/pull/53 中做出了首次贡献 **完整变更日志**: https://github.com/apollographql/skills/commits/v1.0.0

暂无评论

none
暂无评论...