Copilot SDK
将 Copilot 会话、流式输出与工具调用接入应用,并选择运行与认证方式。
This page has not been translated into English yet. The original Chinese version is shown below.
Copilot SDK 将会话、事件、工具和 Hooks 提供给应用代码。常见方式是 SDK 通过 JSON-RPC 与 Copilot runtime 通信;runtime 可以由 SDK 管理为 CLI 子进程,也可以作为独立服务运行。实验性的进程内模式保留 JSON-RPC 协议,但不启动 CLI 子进程。
先选择运行方式
| 场景 | 文档 |
|---|---|
| 首次调用、接收流式响应、定义工具 | 快速开始 |
| 随应用分发匹配 runtime | 自动管理 CLI |
| 固定本机 CLI 路径或使用 Go 等 SDK | 本地 CLI |
| 在宿主进程加载原生库 | 进程内 runtime |
| 长期运行的后端或多个客户端共用服务 | 后端服务 |
| 多个用户、工作区或租户 | 多租户配置、扩展与存储 |
再选择身份来源
本机个人工具可以使用已登录 CLI 的凭据。面向用户的应用通常通过GitHub OAuth接入;服务自动化可以使用组织安装令牌。
使用自有模型时采用BYOK,Azure 部署还可用Managed Identity。令牌优先级见认证,短期用户令牌的回调刷新见会话令牌轮换。
不把 SDK 选项当作应用授权
SDK 提供会话状态和会话级身份机制,但请求路由、用户登录、会话归属和业务工具授权由应用负责。共享服务器必须显式设置可用工具与身份,不能用个人 CLI 默认配置直接承接所有用户。
会话与交互
- 代理循环:模型轮次、idle 与任务完成。
- 持久化与恢复模型配置:继续工作、清理资源与 Auto tier。
- 事件流与工具交互事件:渲染进度、归属和用户请求。
- 上下文清除:在工具中启动新的模型上下文。
- 会话软上限:处理 AI Credits 预算。
- Steering 与排队:处理中接收新的输入。
扩展与输入输出
- MCP 与 Skills:提供工具和领域指令。
- 插件目录:按进程、会话或宿主范围组合扩展。
- 自定义代理 与 Fleet:限定职责、委派与并行协作。
- 图片输入 与 来源引用:处理附件及最终答案的来源位置。
- 客户端身份元数据:为连接标记遥测归属。
Hooks
SDK Hooks涵盖工具执行前后、输入转换、会话生命周期、停止前验证和错误恢复。SDK 回调与 CLI/云端的配置文件 Hooks 分开说明。
远程运行与维护
- 云端会话与本地会话远程访问:区分执行位置和同步访问。
- 权限处理:配置实际授权与目录范围。
- 用量与配额及OpenTelemetry:观察运行和计费信号。
- Agent Framework:接入跨提供商工作流。
- CLI 兼容性、运行排障与MCP 排障:核对协议和故障阶段。
In this section
- SDK 快速开始安装 SDK,以 TypeScript 发起会话、订阅流式事件,并接入自定义工具。
- 自动管理 CLI runtime区分随包 runtime、Python 下载、Go 与 Java 的独立 CLI,并管理本机会话。
- 使用指定的本地 CLI覆盖 SDK 的 CLI 路径、设置进程选项,并承担版本兼容检查。
- 进程内 runtime在宿主进程加载原生 Copilot runtime,核对实验标记、打包要求和共享状态。
- SDK 认证与优先级选择用户身份、环境令牌、组织身份或 BYOK,并避免意外回退到本机登录。
- 会话级 GitHub 令牌轮换通过 gitHubTokenProvider 按会话获取与刷新用户身份,处理取消和失败。
- 为用户接入 GitHub OAuth由应用完成授权流程,再把用户身份交给 SDK,并维护令牌生命周期。
- SDK 自有模型与 ProviderConfig配置模型提供方、接口格式、静态或动态认证,并排查 Azure 与本地服务地址。
- Azure Managed Identity 与 BYOK以 Azure Identity 获取 Microsoft Entra token,并通过 provider 回调刷新。
- 组织与服务端认证使用 GitHub Actions 原生令牌或 GitHub App installation token,将用量归属到组织。
- 后端与 headless runtime独立启动 CLI 服务、连接多个 SDK 客户端,并管理网络边界和空闲会话。
- SDK 多租户与会话隔离设置 empty 模式、会话身份、工具清单、runtime 目录和自定义存储。
- 服务扩展、存储与并发选择独立或共享 runtime,区分粘性路由、共享存储和会话级并发控制。
- 代理循环与完成信号区分模型轮次、工具循环、session.idle 与任务完成,并正确计数事件。
- 会话恢复、断开与删除创建可恢复会话,补齐恢复配置,并按业务保留策略清理状态。
- 恢复模型、Auto tier 与传输设置 Auto 路由偏好,区分 pending 与生效状态,并处理 WebSocket Responses 恢复问题。
- 事件订阅与主响应渲染理解事件 envelope、临时与持久事件、子代理归属和启动阶段的订阅窗口。
- 工具、权限与交互事件关联工具执行和用户请求,区分事件观察、授权响应与业务执行结果。
- 清除上下文与终止式工具在工具 handler 中清除模型上下文,保留会话身份并开始新的 seed prompt。
- 会话 AI Credits 软上限在创建或恢复时设置当前记账窗口预算,并处理耗尽事件。
- Steering、排队与消息来源区分 immediate 与 enqueue,处理接受确认、回退队列和代理来源信息。
- SDK 中的 MCP配置本地或远程 MCP、筛选工具,并理解会话禁用服务器的生效时机。
- SDK 自定义 Skills组织 SKILL.md 目录、禁用特定技能,并为自定义代理显式预加载指令。
- SDK 插件目录按进程、会话或宿主信任范围加载插件,并检查实际插件集合。
- SDK 自定义代理定义代理职责、工具与模型范围,预选代理并观察 subagent 生命周期。
- SDK Fleet 并行协作启动实验性 Fleet RPC,规划独立任务并收集子代理结果。
- SDK 图片输入与结果发送文件或 Base64 附件,按模型视觉能力检查格式、数量和大小。
- SDK 来源引用启用实验性引用元数据,按最终消息中的 UTF-16 区间关联来源。
- SDK 客户端身份元数据为连接标记应用和集成名称,区分遥测归属与认证身份。
- SDK Hooks7 pages在应用回调中处理工具、输入、生命周期和错误,并区分 SDK 与配置文件 Hooks。
- SDK 云端会话在 GitHub 托管计算中运行任务,并正确处理启动、首条输入和会话地址。
- SDK 本地会话远程访问把本地 runtime 的会话同步到 GitHub,并按需启停访问。
- SDK 用量、上下文与配额区分每次调用、会话累计和账户额度,并动态读取计费相关字段。
- SDK OpenTelemetry配置 runtime 追踪导出,并按语言连接应用与工具调用的 trace context。
- Microsoft Agent Framework 集成将 Copilot 作为框架代理提供商,核对当前包接口与权限处理差异。
- SDK 权限处理理解默认拒绝模型、工具筛选、逐次批准与额外目录的不同职责。
- SDK 与 CLI 能力对应区分程序化 RPC、终端界面功能和实验性接口,并核对协议版本。
- SDK 运行排障从 runtime、认证、连接和工具事件分层定位故障,记录可复现信息。
- SDK MCP 服务排障按进程启动、协议握手、工具列表与执行四个阶段诊断 MCP。