Agent Skills
返回列表
💻

GitHub Copilot 编程 SDK

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/copilot-sdk。

技能介绍

要解决什么问题

如果你要在自有应用里调用 GitHub Copilot(而不是只在终端里敲 copilot),需要一套稳定的进程间协议、会话状态和多语言 API。Copilot SDK 通过 JSON-RPC 封装 Copilot CLI:CLI 仍负责模型调用、工具执行与 MCP 生命周期,你的代码只关心「客户端 → 会话 → 消息」这条主路径。

核心能力与用法

  • 多运行时:Node.js、Python、Go、.NET 包名与 API 形态一致,典型流程是创建 CopilotClient、 createSession / resumeSession,再 sendAndWait 或开启 streaming 订阅增量事件。
  • 传输:默认 stdio(CLI 子进程管道,适合本地单进程);TCP 适合把 CLI 当无头服务、多客户端共享同一 CLI 实例。
  • 扩展 Copilot 能力:用 JSON Schema 定义自定义工具;在 onPreToolUse / onPostToolUse 等钩子里做权限(allow / deny / ask)、改参数、脱敏或注入上下文。
  • MCP:可挂本地 stdio 或远程 HTTP MCP 服务器;集成前应用 MCP Inspector 单独测 tools/list,避免 stdout 被调试日志污染。
  • 认证与 BYOK:凭据优先级从显式 githubToken、HMAC、环境变量到 CLI 已登录 OAuth;BYOK 可接 OpenAI、Azure、Anthropic、Ollama 等,但密钥不持久化,恢复会话须重配 provider,且无自动刷新 bearer。
  • 会话持久化:自定义 sessionId 后状态落在 ~/.copilot/session-state/{sessionId}/(对话、工具结果、plan 等);API 密钥与内存工具状态不会跟着恢复。长对话可用 infiniteSessions 做自动压缩,替代 CLI 的 /compact。

边界与注意点

SDK 不能替代 CLI 的交互 UI、斜杠命令、--share 导出、YOLO 等;导出与用量可改用 session.on() + getMessages() 或用量事件。权限模型默认拒绝,需实现 onPermissionRequest 等处理器。生产部署要规划会话清理、CLI 健康检查、密钥托管,以及多租户下「每用户单独 CLI」与「共享 CLI + sessionId」的隔离取舍。

使用场景

  • 在自研 IDE 插件里用 Node SDK 创建会话并开启 streaming,把 Copilot 回复实时渲染到编辑器侧栏
  • 多租户 SaaS 为每位用户分配 `user-{userId}-{taskId}` 会话 ID,进程重启后用 resumeSession 恢复代码助手对话
  • 在工具执行前用 onPreToolUse 拦截写盘类工具,对敏感路径返回 deny 并附带 permissionDecisionReason
  • 后端以 TCP 模式连接无头 Copilot CLI,让多个微服务 worker 共享同一 CLI 实例处理 sendAndWait 请求

适合人员

  • 负责把 Copilot 嵌进公司内部开发平台、需要 Python/Go 统一会话 API 的平台后端工程师
  • 做多租户代码助手产品、要在恢复会话时重配 BYOK provider 且不能持久化 API 密钥的 SaaS 架构师
  • 维护企业 MCP 工具链、要把本地 stdio 或远程 HTTP MCP 挂进 Copilot 会话的安全与平台团队工程师
  • 需要把 Copilot CLI 当无头服务部署在 K8s、并规划 session-state 挂载与会话 TTL 清理的 DevOps/SRE