开源 AI 编辑器:第二个里程碑

2025年11月6日,VS Code 团队

5月,我们宣布了将 VS Code 打造成开源 AI 编辑器的初步计划;在 6月,我们通过开源 GitHub Copilot Chat 扩展达成了第一个里程碑。

尽管聊天功能是向前迈出的重要一步,但我们 AI 功能中仍有一个重要部分尚未开源:即在你键入时出现的行内建议。今天,我们迎来了旅程中的下一个里程碑:行内建议现已开源

PR to OSS suggestions

一个扩展,同样的用户体验

在过去的几年里,VS Code 中的 GitHub Copilot 分散在两个扩展中:GitHub Copilot 扩展(用于幽灵文本建议)和 GitHub Copilot Chat 扩展(用于聊天和下一步编辑建议)。我们正致力于将所有 Copilot 功能整合到一个 VS Code 扩展中:Copilot Chat。

为实现这一点,我们现在正在测试禁用 Copilot 扩展,并将所有行内建议改由 Copilot Chat 提供。我们已经将绝大多数功能移植到了聊天扩展中,因此单扩展体验的逐步推出对每个人来说都应该是一致且透明的。

你的体验不应发生任何改变。你将继续在键入时获得相同的智能代码建议,以及你一直在使用的所有聊天和代理模式功能。如果你遇到任何问题,请报告问题,或者在需要时查看如何使用先前的体验

作为本次重构的一部分,GitHub Copilot 扩展将在 2026 年初被弃用,这意味着它将从 VS Code Marketplace 中移除。

我们还简化了术语:我们现在使用行内建议来统称在键入时出现的所有 AI 生成的代码建议(包括幽灵文本和下一步编辑建议)。我们也在继续努力统一实际的产品体验,包括各种建议的用户体验(UX)和显示时机。

探索与贡献

随着行内建议已在 vscode-copilot-chat 仓库中开源,你可以探索并为其工作原理做出贡献

Flow diagram displaying how inline suggestions work

  1. “按建议键入”检测 - 当你键入时,扩展首先会检查你是否在遵循先前的建议,并能够在不发出新请求的情况下继续显示它
  2. 缓存 - 如果不是按建议键入,扩展会检查是否可以复用缓存的建议以提升性能
  3. 复用进行中的请求 - 如果没有可用的缓存建议,扩展会检查上一次按键是否有尚未完成流式返回的进行中的 LLM 请求。由于这个进行中的请求可能与当前的请求相似,扩展会复用它,而不是触发新请求并取消当前的请求,这显著提升了性能
  4. 提示词构建 - 如果没有可复用的进行中请求,扩展会从当前文件、打开的文件和工作区中收集相关的上下文,然后将其格式化为提示词发送给 LLM
  5. 模型推理 - 扩展从多个提供程序请求行内建议:针对当前光标位置的幽灵文本建议,以及预测你接下来可能在哪里进行编辑的下一步编辑建议。当光标处的幽灵文本建议可用时,会优先使用它们;否则,将使用下一步编辑建议
  6. 后处理 - 对原始模型输出进行精炼,以确保它们符合你的代码风格、缩进和语法
  7. 多行智能 - 扩展根据置信度和上下文,决定是显示单行还是多行

性能改进

除了整合为单个扩展外,这次重构还带来了行内建议的技术改进

  • 降低延迟 - 我们修复了网络问题以优化建议的交付方式,使聊天扩展能够更快地提供幽灵文本
  • 质量验证 - 我们进行了广泛的实验,以确保延迟和建议质量都没有出现回归

疑难解答

与所有变更一样,尽管我们做出了最大努力,仍有可能漏掉某些问题!如果你在统一的扩展体验中遇到任何问题,可以通过取消勾选统一设置,临时恢复到之前的双扩展行为

VS Code setting for extension unification

下一步是什么?

我们开源之旅的下一个阶段是将 Copilot Chat 扩展中的一些 AI 功能和组件重构到 VS Code 核心中。我们很高兴能与社区继续这段旅程,并将开发未来塑造为一个开源的 AI 编辑器。

我们将继续积极改善行内建议体验 —— 一如既往,你可以通过关注我们的迭代计划来了解最新动态

Inline suggestions section of the October 2025 VS Code iteration plan

我们欢迎你的反馈和贡献。欢迎随时提交 Pull Request提交 Issue

编码愉快! 💙

VS Code 团队

English 한국어 中文(简体) 中文(繁體)
© . This website operates independently and is not affiliated with or endorsed by Microsoft. All brand names, logos, and trademarks are the property of their respective owners.