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。

2) GitHub Copilot CLI

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

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

3) VS Code with GitHub Copilot Chat extension

        

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

4) 由于是在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,

        

2) 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的内容还很多,还需要继续跟着微软老师学习一下。

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

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐