GitHub Copilot SDK
把 Copilot CLI 背后的智能体运行时嵌入你自己的应用,支持六种语言。
- Star 数
- ★ 11k
- 最近更新
- 1 天前
- License
- MIT
- 主语言
- Java
- FA 评分
- 56/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 兼容但需适配
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 后端团队要在自有 SaaS 产品里加入能读代码库、改文件、跑工具的编码助手,希望复用 Copilot CLI 的运行时而不是自己写编排。
- 不适合
- 需要完全使用自有模型路由、不愿依赖 Copilot 账户体系的团队
- 只想要开箱即用的聊天界面、不写集成代码的用户
- 需要 Microsoft Entra ID 或托管身份做 BYOK 认证的组织
- 源码审查
- 56/100 · 缺口较多
这个 Agent 能做什么,适合哪些场景?
GitHub Copilot SDK 是 GitHub 官方的多语言客户端库集合,把 Copilot CLI 背后的生产级智能体运行时以编程方式暴露出来。它提供 Node.js/TypeScript、Python、Go、.NET、Java 和 Rust 六个 SDK,各自放在仓库对应子目录中,并以 npm、PyPI、NuGet、Go module、crates.io、Maven Central 等包管理器分发。所有 SDK 都以 JSON-RPC 与 Copilot CLI 的服务器模式通信,由 SDK 负责管理 CLI 进程的生命周期,你也可以连接外部已运行的 CLI 服务端。开发者只需定义智能体行为与权限处理器,规划、工具调用和文件编辑由 Copilot 运行时完成。使用需要 GitHub Copilot 订阅,或通过 BYOK 自带 OpenAI、Microsoft Foundry、Anthropic 等提供方的 API 密钥。
应用通过 SDK 客户端创建一个会话并发送提示词,SDK 客户端随后以 JSON-RPC 调用 Copilot CLI 服务器模式进程,CLI 负责规划、调用工具、编辑文件并把结果流式返回。SDK 会自动管理 CLI 进程的启动与关闭,也可连接到外部 CLI 服务器。默认暴露 Copilot CLI 的第一方工具,但工具调用受各 SDK 的权限处理器约束,应用可以批准、拒绝或自定义;也可以配置启用或禁用具体工具,并定义自定义智能体、技能和工具。SDK 还提供运行时查询可用模型的方法、支持表单征集(form elicitation)回调的可移植 schema 约定,以及在获授权时提供 skills.planInstall、skills.applyInstall、skills.installations.list 等 Agent Finder 技能安装 API。
- 后端团队要在自有 SaaS 产品里加入能读代码库、改文件、跑工具的编码助手,希望复用 Copilot CLI 的运行时而不是自己写编排。
- 企业内部平台需要按语言选型:前端团队用 TypeScript、数据团队用 Python、基础设施团队用 Go,共用同一套 Copilot 智能体行为。
- 需要把智能体工具调用纳入公司审批流程的团队,通过权限处理器拦截或放行每一次工具执行。
- 希望使用自有 OpenAI、Microsoft Foundry 或 Anthropic 密钥、不走 GitHub 认证的合规敏感场景(BYOK)。
- 在 CI 或自动化脚本中通过 Node.js 或 Python SDK 以编程方式触发智能体任务。
如何安装或部署这个 Agent?
先确认运行时:Node.js/TypeScript、Python、.NET 的 SDK 会自动捆绑 Copilot CLI;Go、Java、Rust 需自行安装 CLI 并确保 copilot 在 PATH 中。然后按语言安装对应包。
npm install @github/copilot-sdkpip install github-copilot-sdkgo get github.com/github/copilot-sdk/godotnet add package GitHub.Copilot.SDKcargo add github-copilot-sdkJava 通过 Maven 坐标 com.github:copilot-sdk-java 引入,具体 Maven 与 Gradle 写法见 java/README.md。认证方式可选:使用 copilot CLI 登录后的 OAuth 凭据、从自有 GitHub OAuth App 传入用户令牌、设置 COPILOT_GITHUB_TOKEN、GH_TOKEN 或 GITHUB_TOKEN 环境变量,或使用 BYOK 密钥。
如何使用这个 Agent?
安装后先完成认证:要么运行 copilot CLI 登录,要么设置环境变量。
export COPILOT_GITHUB_TOKEN="<your-github-token>"BYOK 场景无需 GitHub 认证,改为配置所支持提供方(如 OpenAI、Microsoft Foundry、Anthropic)的 API 密钥,具体写法见 docs/auth/byok.md。随后在代码中创建 SDK 客户端、配置权限处理器与工具选项、发起会话并发送提示词;各语言的具体调用示例与 API 参考在对应子目录 README 中,完整入门流程见 docs/getting-started.md。若需连接已独立运行的 CLI 服务器,参考该指南中“Connecting to an external CLI server”一节。
这个 Agent 有哪些优点和局限?
- 直接复用 Copilot CLI 背后的生产级运行时,规划、工具调用与文件编辑无需自行实现。
- 一套行为定义可跨 Node.js/TypeScript、Python、Go、.NET、Java、Rust 六种语言落地,并按各自生态的包管理器分发。
- 权限处理器让每次工具调用都可被应用批准、拒绝或定制,便于嵌入需要审计的内部系统。
- 支持 BYOK,可用自有 OpenAI、Microsoft Foundry、Anthropic 密钥运行,无需 GitHub 认证。
- SDK 自动管理 CLI 进程生命周期,Node.js、Python、.NET 还自带 CLI,减少部署依赖。
- 遵循语义化版本并已正式可用(GA),有 CHANGELOG 与按语言区分的官方指令文件辅助开发。
- 核心运行时绑定 Copilot CLI 与 JSON-RPC 协议,Go、Java、Rust 还需自行安装或打包 CLI,部署链路比纯库方案复杂。
- BYOK 仅支持密钥认证,明确不支持 Microsoft Entra ID、托管身份和第三方身份提供方。
- 计费按 Copilot CLI 模式逐条提示词计入用量额度,用量与成本预估依赖订阅方案。
- 表单征集 schema 的可移植性不一致:Node.js 与 Rust 保留线上 schema 元数据和属性顺序,Python、Go、.NET、Java 会重建 schema,跨语言应用不能依赖这些细节。
- Rust 尚无 Cookbook,自定义指令文件也尚未发布,跨语言文档完整度不均。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| GitHub Copilot SDK 当前 | 56 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 11k | 1 天前 | Java | — |
| Agent2Agent (A2A) 协议 | 证据不足 | 代码库 / SDK免费 | ★ 26k | 今天 | Shell | — |
| Prismer Cloud | 56 · 缺口较多 | 命令行工具免费版 + 付费版 | ★ 1.4k | 6 天前 | TypeScript | Claude Code |
| Promptise Foundry | 44 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 874 | 今天 | Python | Claude.ai · OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
文档明确说明默认暴露 Copilot CLI 的一等工具,行为类似 --allow-all,工具执行仍受各 SDK 的权限处理器约束,但教程示例普遍使用 PermissionHandler.approve_all / ApproveAllHandler,最小权限与用户确认在示例层面被弱化,故 least_privilege 与 user_confirmation 仅给 1。数据流方面有 JSON-RPC 架构图、OAuth 时序图与认证优先级说明,透明度较好给 2;敏感数据处理有令牌类型、轮换、禁用自动登录、多租户隔离等说明给 2;依赖安全仅提及 CLI 捆绑与版本固定建议,无 SBOM/审计证据给 1;外部效应(文件编辑、工具调用)有提及但缺少默认限制说明给 1;回滚仅提到会话恢复与卸载 API,缺少通用回滚机制给 1;来源归属有 MIT、官方组织与社区 SDK 免责声明,给 2。
跨语言示例结构一致、事件与方法命名基本对齐,self_consistency 给 2;依赖可用性方面仅给出安装命令与版本下限指引,未提供锁定版本或镜像/离线方案,给 1;失败信息仅在认证与配额章节有部分错误语义说明,缺少系统性错误码与排障映射,给 1。
面向六种语言、多用户、CI、BYOK、企业等场景覆盖充分,audience_and_scenarios 给 3;能力边界有实验性 API 标注与语言差异说明,给 2;触发精度方面缺少对工具触发条件、权限判定规则的精确描述,给 1;环境适配有捆绑 CLI 与外部服务器两种模式,给 2。
文档索引、快速链接、分语言折叠结构清晰,information_architecture 给 3;安装说明详尽给 3;命名稳定性因实验性 API 与跨语言命名差异(如 gitHubToken/github_token)给 2;示例与 FAQ 丰富给 3;已知限制有专门章节但分散,给 2;许可证 MIT 明确给 2;版本化仅指向 CHANGELOG 链接,未见实际内容,给 1;维护责任有 Issues 渠道与官方组织,给 2。
输出可用性有完整可运行示例,但部分示例标注 docs-validate: skip/hidden,未验证,给 2;边际价值在于复用成熟 agent 运行时,给 2;成本效益涉及订阅计费与令牌消耗,文档有说明但缺少成本控制手段,给 1。
声明多指向外部链接(cookbook、awesome-copilot),仓库内缺少对应证据,claim_traceability 给 1;跨源佐证有限,给 1;事实与推断分离较好,文档区分了实验性与稳定 API,给 2。
- 示例默认使用 approve_all 权限处理器,生产集成前应替换为最小权限的显式审批逻辑。
- 默认工具集类似 --allow-all,需在客户端选项中显式收敛可用工具。
- 部分示例标注 docs-validate: skip/hidden,未经文档校验,直接复制可能失败。
- 实验性 API(session.quota、usage.getMetrics 等)需同时固定 SDK 与 CLI 版本。
- 依赖安全与版本锁定缺乏仓库内证据,需自行审计捆绑 CLI 与传递依赖。
常见问题
不用 Copilot 订阅也能用吗?
费用怎么算?
必须单独安装 Copilot CLI 吗?
copilot 在 PATH 中;Go 与 Rust 另外提供应用级 CLI 打包能力。默认会执行哪些工具,安全吗?
--allow-all 运行 CLI;但每次调用仍受各 SDK 权限处理器约束,应用可以批准、拒绝或定制,也可通过客户端选项启用或禁用具体工具。