关于 copilot-sdk
GitHub Copilot SDK 是面向开发者的多语言运行时,可将 Copilot Agent 工作流嵌入应用并以编程方式调用。它管理 Copilot CLI 生命周期,并提供会话、事件、流式响应和自定义工具。
主要功能
- 01提供 TypeScript、Python、Go 和 .NET SDK
- 02管理 Copilot CLI 生命周期
- 03创建和恢复会话
- 04流式响应与事件处理
- 05注册自定义工具
适用场景
- 01在应用中嵌入 Copilot 工作流
- 02构建基于会话的 Copilot 交互
- 03处理增量响应事件
- 04为 Agent 提供自定义工具
MCP 相关
SDK 通过服务器模式使用 Copilot CLI,并支持通过 cliUrl 或 cli_url 连接外部服务。MCP 服务定义配置在 CLI 的 mcp-config.json 中。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ doggy8088/ agent-skills --skill copilot-sdk安装后在 Claude Code 中输入/copilot-sdk确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/cli-agents-mcp.mdevent-system.mdtroubleshooting.mdworking-examples.md详细介绍
GitHub Copilot SDK
概述
GitHub Copilot SDK 是一个多平台 Agent 运行时,可将 Copilot 的 Agent 工作流嵌入应用程序。它提供与 Copilot CLI 背后相同的引擎,可通过编程方式调用,无需开发自定义编排功能。
状态: 技术预览版(适用于开发和测试)
支持的语言: TypeScript/Node.js、Python、Go、.NET
主要文档
特定语言的 SDK 文档
CLI 和配置文档
先决条件
- GitHub Copilot 订阅 - Pro、Pro+、Business 或 Enterprise
- GitHub Copilot CLI - 已安装并完成身份验证(
copilot --version) - 运行时: Node.js 18+、Python 3.8+、Go 1.21+ 或 .NET 8.0+
安装
| 语言 | 命令 |
|---|---|
| TypeScript/Node.js | npm install @github/copilot-sdk |
| Python | pip install github-copilot-sdk |
| Go | go get github.com/github/copilot-sdk/go |
| .NET | dotnet add package GitHub.Copilot.SDK |
架构
Application → SDK Client → JSON-RPC → Copilot CLI (server mode)
SDK 会自动管理 CLI 生命周期。支持通过 cliUrl / cli_url 连接外部服务。
快速开始(TypeScript)
import { CopilotClient } from "@github/copilot-sdk";
const client = new CopilotClient();
await client.start();
const session = await client.createSession({ model: "gpt-5" });
// Register handler BEFORE send()
session.on((event) => {
if (event.type === "assistant.message") {
console.log(event.data.content);
}
});
await session.send({ prompt: "What is 2 + 2?" });
await session.destroy();
await client.stop();
重要: 请在调用 send() 之前注册事件处理程序,以捕获所有事件。
如需查看所有语言的完整示例,请参阅 references/working-examples.md。
核心概念
客户端
主要入口点,用于管理 CLI 服务生命周期和会话创建。
操作: start()、stop()、createSession()、resumeSession()
配置: cliPath、cliUrl、port、useStdio、autoStart、autoRestart
会话
包含消息历史记录的独立对话上下文。
操作: send()、sendAndWait()、on()、abort()、getMessages()、destroy()
配置: model、streaming、tools、systemMessage
事件
处理期间的关键事件:
| 事件 | 用途 |
|---|---|
assistant.message | 完整响应 |
assistant.message_delta | 流式内容片段 |
session.idle | 可处理下一个提示词 |
tool.execution_start/end | 工具调用 |
如需了解完整的事件生命周期和 SessionEvent 结构,请参阅 references/event-system.md。
流式传输
streaming: false(默认)- 内容一次性到达streaming: true- 内容通过assistant.message_delta分段到达
无论流式传输设置如何,最终的 assistant.message 始终会触发。
可用模型
完整列表请参阅支持的 AI 模型。
| 提供商 | 模型 ID | 备注 |
|---|---|---|
| OpenAI | gpt-4.1, gpt-5, gpt-5-mini | 已包含 |
| OpenAI | gpt-5.1, gpt-5.1-codex, gpt-5.2 | 高级版 |
| Anthropic | claude-sonnet-4.5 | 高级版(CLI 默认) |
| Anthropic | claude-opus-4.5 | 高级版(3× 倍数) |
gemini-3-pro-preview | 高级版 |
自定义工具
TypeScript(Zod):
const tool = defineTool("lookup_issue", {
description: "Fetch issue details",
parameters: z.object({ id: z.string() }),
handler: async ({ id }) => fetchIssue(id),
});
Python(Pydantic):
@define_tool(description="Fetch issue details")
async def lookup_issue(params: IssueParams) -> dict:
return fetch_issue(params.id)
如需查看所有语言的完整工具示例,请参阅 references/working-examples.md。
语言约定
| 概念 | TypeScript | Python | Go | .NET |
|---|---|---|---|---|
| 创建会话 | createSession() | create_session() | CreateSession() | CreateSessionAsync() |
| 增量内容 | deltaContent | delta_content | DeltaContent | DeltaContent |
完整的约定表请参阅 references/event-system.md。
CLI 配置
配置存储在 ~/.copilot/ 中:
config.json- 常规配置mcp-config.json- MCP 服务定义
有关自定义 Agent 和 MCP 设置,请参阅 references/cli-agents-mcp.md。
故障排除
| 问题 | 解决方案 |
|---|---|
| 事件触发但内容为空 | 使用 event.data.content,而不是 event.content |
| 处理程序始终不触发 | 在 send() 之前注册 |
| Python 枚举问题 | 使用 event.type.value |
| Go 空指针 | 解引用前检查 != nil |
有关调试技巧,请参阅 references/troubleshooting.md。
技能参考
本技能的详细文档:
references/working-examples.md- 所有语言的完整示例、自定义工具references/event-system.md- 事件生命周期、SessionEvent 结构、语言约定references/troubleshooting.md- 常见问题、调试技巧references/cli-agents-mcp.md- CLI 配置、自定义 Agent、MCP 服务设置