如何在.NET项目中将CLI调用无缝集成到GitHub Copilot SDK的最佳实践?

摘要:从 CLI 调用到 SDK 集成:GitHub Copilot 在 .NET 项目中的最佳实践 从命令行调用到官方 SDK 集成的升级之路,说起来也算是一段经历,今天就分享我们在 HagiCode 项目中踩过的坑和学到的东西。 背景 Git
从 CLI 调用到 SDK 集成:GitHub Copilot 在 .NET 项目中的最佳实践 从命令行调用到官方 SDK 集成的升级之路,说起来也算是一段经历,今天就分享我们在 HagiCode 项目中踩过的坑和学到的东西。 背景 GitHub Copilot SDK 在 2025 年正式发布后,我们开始将其集成到 AI 能力层中。在此之前,项目主要通过直接调用 Copilot CLI 命令行工具来使用 GitHub Copilot 能力,这种方式其实也存在几个明显问题: 进程管理复杂:需要手动管理 CLI 进程的生命周期、启动超时和进程清理——毕竟进程这东西,说崩溃就崩溃了,也没什么预兆 事件处理不完整:原始 CLI 调用难以捕获模型推理过程和工具执行的细粒度事件,就像只能看到结果,却看不到思考的过程 会话管理困难:缺乏有效的会话复用和恢复机制,每次都得重新开始,想想也是挺累的 兼容性问题:CLI 参数更新频繁,需要持续维护参数兼容性逻辑,这无异于和风车作战了 这些问题在日常开发中逐渐显现,特别是在需要实时追踪模型推理过程(thinking)和工具执行状态时,CLI 调用的局限性尤为明显。我们也算是想明白了,需要一个更底层、更完整的集成方式——毕竟,条条大路通罗马,只是有的路好走一点,有的路稍微曲折一点罢了。 关于 HagiCode 本文分享的方案来自我们在 HagiCode 项目中的实践经验。HagiCode 是一个开源的 AI 代码助手项目,在开发过程中我们需要深度集成 GitHub Copilot 的各种能力——从基础的代码补全到复杂的多轮对话和工具调用。这些实际需求推动我们从 CLI 调用升级到了官方 SDK 集成。 如果你对本文的实践方案感兴趣,说明我们的工程实践可能对你有帮助——那么 HagiCode 项目本身也值得关注一下。
阅读全文