GitHub Copilot - 尝试使用一下GitHub Copilot SDK

1. 简单介绍

AI的浪潮奔涌向前,微软在2021年就推出了GitHub Copilot,当前AI Coding在项目开发中使用比重越来越大。在年初参加的微软会议中,有参会者的观点认为有了AI coding之后,开发者对于算法,设计模式,领域驱动,微服务方面花费精力不如以前了,会上讲课老师也对此表示认同。GitHub Copilot在IDE,web, 移动端都可以使用,同时从2026/2/27开始,Github Copilot CLI 正式发布了,这表示命令行中也可以使用到GitHub Copilot的能力了。

随着大语言模型以及AI Agent的普及,微软陆续发布了Semantic Kernel, Autogen, Microsoft.Extension.AI, Microsoft Agent Framework框架,进一步提高了AI应用开发的效率。同时微软也推出了GitHub Copilot SDK,允许我们在自己的应用程序中使用agentic AI workflows。GitHub Copilot SDK是对GitHub Copilot CLI的后端引擎进行的封装。

当前GitHub Copilot SDK还处于technical preview阶段,

当前支持4种编程语言,

这边将简单尝试一下C#应用中的GitHub Copilot SDK

2. 具体说明

2.1 准备阶段

  1. GitHub Copilot Plan

首先需要有一个GitHub Copilot Plan。

  1. GitHub Copilot CLI

由于GitHub Copilot SDK需要调用GitHub Copilot CLI进行agent task运行,因此需要实现安装好GitHub Copilot CLI

Your Application → SDK Client → (JSON-RPC) → Copilot CLI (server mode)

  1. VS Code with GitHub Copilot Chat extension

note, 需要使用github帐号去登录Visual Studio Code

  1. 由于是在Visual Studio Code中运行C#代码,

因此还需要安装一下 C# Dev Kit,

2.2 GitHub Copilot SDK使用

假定有一个Blazor应用程序, 可以为用户提供order信息的问询,

2.2.1 DB

SQLite DB有如下一些table,

数据操作是通过Microsoft.EntityFrameworkCore进行的, model约束使用Fluent API.

2.2.2 Service

在其中的一个service类中,定义了一些可以查询和操作order信息的方法,

2.2.3 Controller

在一个特定的Controller中,定义了一个处理用户order请求的api,

  1. 使用AIFunctionFactory.Create方法创建AI应用程序中可以使用的tool,
  1. GitHub Copilot SDK的使用, 代码如下,

    await using var session = await _copilotClient.CreateSessionAsync(new SessionConfig
    {
    Model = "gpt-4.1",
    SystemMessage = new SystemMessageConfig
    {
    Mode = SystemMessageMode.Replace,
    Content = @"[your system prompt]"
    },
    Tools = tools,
    InfiniteSessions = new InfiniteSessionConfig { Enabled = false },
    OnPermissionRequest= PermissionHandler.ApproveAll
    });

    ...

    session.On(evt =>
    {
    switch (evt)
    {
    case AssistantMessageEvent msg:
    ...
    break;
    case SessionIdleEvent:
    ...
    break;
    case SessionErrorEvent err:
    ...
    break;
    }
    });

note, 其中OnPermissionRequest= PermissionHandler.ApproveAll很重要,要不然程序将运行不了, 报如下的错误,

note, 关于OnPermissionRequest的配置,2026年3月微软老师的技术分享时候也强调了一下。

2.2.4 Blazor界面
2.2.5 运行一下

使用dotnet run 运行程序, 在提问框输入要查询的order信息, 点击Send按钮,

最后有信息返回,

从Visual Studio Code 的控制台输出的log中,可以看出 GetorderDetails tool被调用了,

使用Microsoft Agent Framework也能实现上述的功能。不过对于这种场景,集成GitHub Copilot SDK确实方便一些。

note, 微软在2026/4/3发布了Microsoft Agent Framework 1.0

3.总结

本文简单介绍了一下GitHub Copilot SDK。GitHub Copilot SDK 依赖于GitHub Copilot CLI。在运行GitHub Copilot SDK应用程序之前,还需要GitHub Copilot 身份认证。如果使用BYOK(Bring Your Own Key)的方式去使用GitHub Copilot SDK,则可以不进行Copilot身份认证。

GitHub Copilot CLI和GitHub Copilot SDK的内容还很多,还需要继续跟着微软老师学习一下。

本文如果哪里有错误,麻烦告之,谢谢谢谢!

相关推荐
ASKCOS10 小时前
深度解析 Kimi Code Swarm 模式:多 Agent 并行编程的架构设计与工程权衡
ai
粤M温同学10 小时前
VS Code GitHub Copilot插件中配置 DeepSeek 模型
github·copilot
公子小六11 小时前
基于.NET的Windows窗体编程之WinForms图像控件
windows·microsoft·c#·.net·winforms
曦尧12 小时前
Argo CD:面向 Kubernetes 的声明式 GitOps 持续交付工具
ai·自动化
ofoxcoding12 小时前
Codex Computer Use 完整指南:AI 自动操控 Mac 与 Windows 桌面实战详解
人工智能·windows·macos·ai
csdn_aspnet12 小时前
开源项目在GitHub上的破圈方法论,解析Star增长、Issue响应、Contributor引导等真实运营技巧
开源·github·issue·readme·star
奇牙coding12312 小时前
OpenAI Realtime API WebSocket 断连 4008/1006 怎么解决?不是 Key 失效,是实时多模态独有的会话超时规则
python·websocket·网络协议·ai
结城明日奈是我老婆13 小时前
comfyui 控制图像Controlnet
ai·ai作画
手写码匠13 小时前
注意力机制全家桶:从 Multi-Head 到 GQA 再到 Flash Attention 的手写实现
人工智能·深度学习·算法·aigc
leeyi13 小时前
Eino 的“你好世界“背后发生了什么(第48篇-E34)
aigc·agent·ai编程