apollo-client – GraphQL 客户端数据请求 Skill

3周前更新 8 0 0 0

Apollo Client 是用于指导 AI Agent 在 React、Vue、Angular 等应用中集成和配置 Apollo Client 实现 GraphQL 数据管理的 Skill,适合查询、缓存、状态管理和实时订阅相关的开发任务。

Skill 安装

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

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

Skill 调研报告

Skill 详细介绍

apollographql/skills#apollo-client 是 Apollo GraphQL 官方组织(apollographql)在其 skills 仓库中提供的一个 Agent Skill,围绕 Apollo Client 这一 GraphQL 客户端库,为 AI Agent 注入相关开发知识。

它本身不是一个可独立运行的软件,也不是 npm 包或 CLI 工具,而是一套面向 AI Agent 的指令 / 知识内容。安装后,它不会在你的系统里新增一个后台进程,而是让 Agent 在面对 Apollo Client 相关任务时具备更准确的判断和更贴近官方实践的写法。

需要区分两层能力:

– Skill 本身提供的能力:向 Agent 补充 Apollo Client 的用法知识、约定和写作指导,帮助 Agent 在 GraphQL 前端 / 客户端场景下给出更可靠的代码与建议。
– 第三方服务的能力:Apollo Client 是 JavaScript 生态中的 GraphQL 客户端库,它与 GraphQL 服务端、Apollo Studio 等属于不同层面的产品,具体能力以 Apollo 官方文档为准。

核心用途与典型任务:

– 在 React、Vue、Angular、Svelte 等前端项目中编写和调整 Apollo Client 相关代码
– 处理查询(Query)、变更(Mutation)、订阅(Subscription)等 GraphQL 客户端逻辑
– 讨论缓存策略(如 InMemoryCache)、本地状态管理、分页、错误处理等主题
– 帮助 Agent 遵循 Apollo Client 的惯用写法,减少与官方 API 不一致的代码

适合的用户:

– 正在使用或准备使用 Apollo Client 的前端 / 全栈开发者
– 需要在 Agent 辅助下快速编写 GraphQL 客户端代码的团队
– 希望 Agent 输出更贴近 Apollo 官方实践的开发者

不适合的需求:

– 需要一个独立的 GraphQL 客户端程序或 CLI
– 需要 GraphQL 服务端实现(那是 Apollo Server 等其他产品的范围)
– 需要与 Apollo Client 无关的其他前端状态管理方案

由于该 Skill 属于提示词 / 指令型内容,它的实际效果取决于所使用 Agent 对 Skill 的加载方式和对指令的遵循程度。

Skill 安全评估

总体判断:这是一个以知识 / 指令为主、来自官方组织仓库的 Skill,本身通常不涉及执行系统命令或读写用户文件。它的主要风险面来自“Agent 依照它生成代码”这一间接路径,而不是 Skill 自身会主动做什么。

需要关注的点:

– 来源可信度:该 Skill 位于 apollographql 官方组织名下的 skills 仓库,来源可信度较高。仍建议确认你实际安装的是官方来源,而非同名 fork 或第三方镜像。
– 文件读写:此类 Skill 通常不需要读写用户的本地文件。如果某个 Agent 实现在加载 Skill 时读取了仓库内容,这属于 Agent 的加载机制,不是 Skill 的额外要求。
– Shell 权限:Skill 本身一般不需要 Shell 权限。但安装后,Agent 可能依据生成的内容执行 `npm install` 等命令,这属于 Agent 的执行行为,与 Skill 无关。
– 网络访问:编写 Apollo Client 代码时,装包、拉取依赖、访问 GraphQL 服务端等都需要网络,但这属于开发过程的正常需要。
– 依赖与供应链:如果你按 Agent 的产出安装 npm 依赖,务必核对包名与来源,避免拼写错误导致安装到仿冒包。
– 密钥与凭证:Apollo Client 连接 GraphQL 服务端时可能涉及 API Key、Token 或 OAuth,这些属于你的项目配置,Skill 本身不应该要求你提供凭证。

降低风险的做法:

– 只需要 Skill 帮助生成代码时,可以关闭 Agent 的自动执行 Shell 权限,由你手动执行安装和测试命令。
– 安装依赖前核对包名、版本和来源,优先使用官方文档给出的名称。
– 不要因为 Skill 而向 Agent 直接粘贴生产环境的密钥或 Token。

该 Skill 未公开说明存在全面的安全审计结果,也不应被描述为“绝对安全”。是否在你的环境中安全,取决于你使用的 Agent 以及你授予它的权限。

Skill 使用要求

一、Agent / 客户端

该 Skill 来自 apollographql 的 skills 仓库。官方未公布完整的第三方 Agent 兼容列表。从 Agent Skill 的一般工作方式来看,在支持 Skills、自定义 Skill 或类似指令加载机制的环境中通常可以尝试使用。

– Claude Code:作为常见支持 Skill 的 Agent,可以作为优先尝试对象。
– Codex、Cursor、Trae、OpenClaw、WorkBuddy:官方没有明确列出这些 Agent 的支持情况。理论上在支持自定义 Skill / 指令加载的 Agent 中可尝试,实际兼容程度以对应 Agent 当前版本为准。

是否可加载、放在哪个目录、如何触发,取决于你使用的 Agent 自身的 Skill 机制。

二、运行环境 / 依赖

| 项目 | 要求 |
|—|—|
| Agent | 支持 Skill / 自定义指令加载的 Agent |
| 网络 | 安装 Skill 与安装前端依赖时通常需要 |
| Node.js / 包管理器 | 使用 Apollo Client 的项目通常需要,但这是项目侧要求,不是 Skill 本身要求 |
| Git | 视安装方式而定 |

Skill 本身是最小依赖;上表中 Node.js 等属于你后续使用 Apollo Client 开发项目的环境,而非 Skill 运行的必要条件。

三、权限

– 文件读取:可选。取决于 Agent 加载 Skill 的方式。
– 文件写入:通常不需要(Skill 自身)。如果 Agent 生成或修改代码,则属于 Agent 行为。
– Shell:可选。Skill 本身一般不需要;生成代码后执行命令时可能涉及。
– 网络:可选。装包 / 访问 GraphQL 服务端时需要。

四、账号 / API Key

– Skill 本身:通常不需要账号、API Key 或 Token。
– 你后续开发的项目:连接 GraphQL 服务端时可能需要 API Key、Token 或 OAuth。这属于项目配置,与 Skill 无关。

最小使用条件

1. 一个支持 Skill / 自定义指令加载的 Agent。
2. 能够获取并安装 apollographql/skills 仓库中的该 Skill。
3. 使用 Apollo Client 的前端项目环境(如需实际运行代码)。

Skill 安装、使用与卸载教程

一、安装

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

如果你不确定自己的 Agent 如何安装 Skill,可以直接向当前 Agent 提问,让它根据自身的 Skill 加载机制给出步骤:

如何安装 apollographql/skills#apollo-client?

如何在 Claude Code 中安装 apollographql/skills#apollo-client?

如何在 Cursor 中安装 apollographql/skills#apollo-client?

由于不同 Agent 的 Skill 安装位置与管理方式不同,具体目录与命令以对应 Agent 当前版本为准。官方若对该 Skill 有额外安装要求,请以官方说明为准。

二、安装后如何使用

安装后,在涉及 Apollo Client 的任务中自然描述需求即可,Agent 会依据该 Skill 的指令来组织回答与代码。适合交给它的任务类型:

– 编写或调整 Apollo Client 相关代码
– 解释 Query / Mutation / Subscription 的用法
– 讨论缓存、分页、错误处理等客户端主题

自然语言使用示例:

使用 apollo-client,帮我在 React 项目里初始化 Apollo Client,并配置 InMemoryCache。

使用 apollo-client,把这段 useEffect 里的数据请求改成 useQuery 写法。

使用 apollo-client,解释一下 useMutation 的 refetchQueries 和 update 有什么区别。

三、卸载

卸载保持简单即可:

– 使用对应 Agent / Skill 管理器提供的删除方式移除该 Skill。
– 或者直接询问当前 Agent:

如何卸载 apollographql/skills#apollo-client?

不同 Agent 的 Skill 安装位置和管理方式可能不同,如果没有统一的卸载命令,直接询问当前 Agent 如何移除通常更稳妥。由于无法确认官方是否提供统一卸载命令,这里不列出具体命令。

常见问题

这个 Skill 和 Apollo Server 是同一个东西吗?

不是。该 Skill 面向 Apollo Client,属于 GraphQL 客户端库方向。Apollo Server 是服务端实现,属于另一个产品范围。

安装后 Agent 没识别到 Skill,怎么办?

先确认 Skill 是否真的被放到了当前 Agent 支持的加载位置。不同 Agent 的目录结构和识别规则不同,建议直接询问当前 Agent 如何加载和验证该 Skill。

可以同时安装到多个 Agent 吗?

通常可以。Skill 本质是指令 / 知识内容,把它按各自 Agent 的机制分别安装即可。实际能否共用同一份文件,取决于各 Agent 的加载方式。

Skill 更新后需要重新安装吗?

取决于你的安装方式。如果是从仓库同步,重新拉取即可;如果是手动复制的静态副本,则需要手动更新到新版本。以该 Skill 当前官方说明为准。

使用它需要联网吗?

安装 Skill 和使用 Apollo Client 装包 / 访问 GraphQL 服务端时通常需要网络。Skill 本身的加载是否联网,取决于你使用的 Agent。

它会不会修改我已有的项目文件?

Skill 本身通常不直接修改文件。是否修改取决于 Agent 的行为和你授予的权限。若不希望自动改动,可关闭 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
暂无评论...