1. 从零开始理解 GitHub Copilot SDK 的核心价值
GitHub Copilot SDK 不是简单的 API 封装,而是一个完整的 AI Agent 开发框架。与直接调用大语言模型 API 相比,它提供了三个关键能力:
- 工具调用(Tool Calling):让 LLM 自主决定何时调用外部函数,开发者只需定义能力边界
- 会话管理(Session Management):维护多轮对话的上下文状态,处理权限控制等生产级需求
- 技能注入(Skills Injection):通过 Markdown 文件注入领域知识,定制 AI 行为模式
这种设计让开发者可以专注于业务逻辑,而不是重复实现 Agent 的基础设施。下面我们通过四个典型场景,看看这些能力如何落地。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与基础配置
2.1 开发环境搭建
首先确保你的开发环境满足以下要求:
- Python 3.8+
- GitHub 账号已开通 Copilot 服务
- 已安装 gh-copilot CLI 并完成认证
bash复制# 克隆示例仓库
git clone https://github.com/addozhang/copilot-sdk-demo
cd copilot-sdk-demo
# 安装依赖(建议使用虚拟环境)
pip install -r requirements.txt
注意:如果遇到权限问题,可能需要先运行
gh-copilot auth login完成 CLI 认证
2.2 基础代码结构
所有示例共享相同的基础结构:
python复制from copilot import CopilotClient
async def main():
# 1. 初始化客户端
client = CopilotClient()
await client.start()
try:
# 2. 创建会话
session = await client.create_session(
model="claude-sonnet-4.6",
tools=[...],
...
)
# 3. 事件处理
def handle_event(event):
...
session.on(handle_event)
# 4. 发送消息
await session.send_and_wait("你的提示词")
finally:
# 5. 清理
await client.stop()
这个骨架展示了 SDK 的核心工作流程,接下来我们通过具体场景看如何扩展它。
3. 场景一:PR 代码审查机器人
3.1 工具定义与注册
首先定义一个获取 PR Diff 的工具:
python复制from pydantic import BaseModel, Field
from copilot.tools import define_tool
class GetPrDiffParams(BaseModel):
repo: str = Field(description="仓库名称,格式为 owner/repo")
pr_number: int = Field(description=
