AI编程助手SDK

GitHub Copilot SDK 是一个AI编程助手开发套件,支持基础调用、自定义Agent、自定义工具、MCP Server集成以及Microsoft Fabric Data Agent集成等多种功能,适用于代码生成、调试和数据分析等场景。

  • by huqianghui
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 huqianghui/copilot_sdk_test_project

使用说明

GitHub Copilot SDK 测试项目

本项目演示了 GitHub Copilot SDK 的各种功能和使用场景,涵盖基础调用、自定义 Agent、自定义工具、MCP Server 集成以及 Microsoft Fabric Data Agent 集成等多种能力。

功能概览

功能模块 说明
基础调用 同步/流式响应、多模型支持
自定义 Agent 创建具有特定职责的 AI 助手
自定义 Tool 扩展 Copilot 的能力边界
MCP Server 集成外部服务和数据源
Fabric Data Agent 企业数据智能查询

🚀 基础调用

简单问答 (main.py)

最基础的 Copilot SDK 调用方式:

session = await client.create_session({"model": "gpt-4.1"})
response = await session.send_and_wait({"prompt": "What is 2 + 2?"})

流式输出 (main_stream.py)

实时逐字输出响应,提升用户体验:

session = await client.create_session({"model": "gpt-5", "streaming": True})
session.on(handle_event)  # 监听 ASSISTANT_MESSAGE_DELTA 事件

多模型支持 (main_skills.py)

支持切换不同的 LLM 模型:

  • gpt-4.1
  • gpt-5
  • gpt-5.1-mini
  • claude-opus-4.5

🎯 自定义 Agent (main_custom_agent.py)

创建具有特定角色和专业能力的 AI 助手:

Agent 名称 功能描述
@pr-reviewer 代码审查专家,关注安全性、性能和可维护性
@python-expert Python 编程专家,专注 PEP 8、类型提示和现代特性
@debugger 调试助手,帮助定位和修复代码问题
session = await client.create_session({
    "model": "gpt-4.1",
    "customAgents": [
        {
            "name": "pr-reviewer",
            "displayName": "PR Reviewer",
            "description": "Reviews pull requests for best practices",
            "prompt": "You are an expert code reviewer..."
        }
    ]
})

🔧 自定义 Tool

工具定义 (main_custom_tool.py)

使用 @define_tool 装饰器扩展 Copilot 能力:

@define_tool(description="Get the current weather for a city")
async def get_weather(params: GetWeatherParams) -> dict:
    return {"city": params.city, "temperature": "72°F", "condition": "sunny"}

交互式助手 (main_interactive_assistant.py)

结合自定义工具构建交互式对话应用,支持多轮对话和工具调用。


🔌 MCP Server 集成

GitHub MCP Server (main_mcp_servers.py)

通过 MCP 协议集成 GitHub 服务:

session = await client.create_session({
    "streaming": True,
    "mcp_servers": {
        "github": {
            "type": "http",
            "url": "https://api.githubcopilot.com/mcp/"
        }
    }
})

支持查询:

  • GitHub 用户信息
  • MCP Server 提供的工具列表

其他 MCP Server 示例

  • main_mcp_studio_servers.py - MCP Studio Server 集成
  • main_foudary_IQ_mcp_servers_X.py - Foundry IQ MCP Server 集成

📊 Microsoft Fabric Data Agent 集成

Fabric Data Agent 客户端 (fabric_data_agent_client.py)

独立的 Python 客户端,用于从外部环境调用 Microsoft Fabric Data Agent:

  • 交互式浏览器认证 - 自动打开浏览器完成 Azure AD 登录
  • 自动 Token 刷新 - 无需手动管理令牌生命周期
  • Bearer Token 管理 - 透明处理 API 认证

Fabric IQ Agent (main_fabric_IQ_agent.py)

将 Fabric Data Agent 作为 Copilot 工具集成:

@define_tool(description="query data about product")
def get_data_insight(question: DataQueryParams) -> dict:
    client = FabricDataAgentClient(tenant_id="...", data_agent_url="...")
    return client.ask(question.content)

示例查询:

"What is the top product by revenue across all stores?"

Foundry IQ 系列

  • main_foudary_IQ_agent_dedicated.py - 专用 Agent 模式
  • main_foudary_IQ_agent_without_dedicated.py - 非专用 Agent 模式
  • main_foudary_IQ_custom_tool.py - 自定义工具模式

📁 文件结构

├── main.py                              # 基础示例
├── main_stream.py                       # 流式输出
├── main_skills.py                       # 多模型支持
├── main_custom_agent.py                 # 自定义 Agent
├── main_custom_tool.py                  # 自定义 Tool
├── main_interactive_assistant.py        # 交互式助手
├── main_mcp_servers.py                  # GitHub MCP Server
├── main_mcp_studio_servers.py           # MCP Studio Server
├── fabric_data_agent_client.py          # Fabric Data Agent 客户端
├── main_fabric_IQ_agent.py              # Fabric IQ 集成
├── main_foudary_IQ_agent_dedicated.py   # Foundry IQ 专用模式
├── main_foudary_IQ_agent_without_dedicated.py
├── main_foudary_IQ_custom_tool.py
├── main_foudary_IQ_mcp_servers_X.py
└── requirements.txt

🔗 相关资源