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

张开发
2026/4/9 20:52:43 15 分钟阅读

分享文章

GitHub Copilot - 尝试使用一下GitHub Copilot SDK
1. 简单介绍AI的浪潮奔涌向前微软在2021年就推出了GitHub Copilot当前AI Coding在项目开发中使用比重越来越大。在年初参加的微软会议中有参会者的观点认为有了AI coding之后开发者对于算法设计模式领域驱动微服务方面花费精力不如以前了会上讲课老师也对此表示认同。GitHub Copilot在IDEweb 移动端都可以使用同时从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 SDK2. 具体说明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 extensionnote, 需要使用github帐号去登录Visual Studio Code4) 由于是在Visual Studio Code中运行C#代码,因此还需要安装一下 C# Dev Kit,2.2 GitHub Copilot SDK使用假定有一个Blazor应用程序, 可以为用户提供order信息的问询,2.2.1 DBSQLite DB有如下一些table,数据操作是通过Microsoft.EntityFrameworkCore进行的, model约束使用Fluent API.2.2.2 Service在其中的一个service类中,定义了一些可以查询和操作order信息的方法,2.2.3 Controller在一个特定的Controller中定义了一个处理用户order请求的api1) 使用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.03.总结本文简单介绍了一下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的内容还很多还需要继续跟着微软老师学习一下。本文如果哪里有错误麻烦告之谢谢谢谢

更多文章