随着 Copilot 承担起更多智能体类工作——从规划、编辑到调试、审查,以及在更长的会话中调用工具——效率的含义已不仅仅是使用更少的模型 token。它意味着要更聪明地使用这些 token。
提升效率首先要减少 Copilot 在每次交互中需要重复的内容,包括上下文、工具定义和缓存状态。其次,要为具体任务选择合适的模型。快速解释、针对性编辑和复杂的多文件修改,不应被同等对待。
我们正在两方面同时推进:改进 Copilot 的运行框架,让每次会话的更多算力用于任务本身;同时扩展 Auto 模式,使 Copilot 能够自行选择适合工作的模型,而无需开发者在每次操作时都做选择。本文重点介绍 GitHub Copilot for VS Code 中的框架改进,以及将 Auto 模式扩展到更多 Copilot 界面的持续工作。
增强的提示词缓存与延迟加载工具
在 VS Code 中较长的 GitHub Copilot 会话里,运行框架会为模型准备大量重复信息:指令、仓库上下文、对话历史、可用工具以及任务的当前状态。其中部分上下文是必需的,而另一部分则可以缓存、延迟加载,或仅在需要时才加载。
GitHub Copilot for VS Code 中的两项改进在此发挥了主要作用。提示词缓存帮助 Copilot 复用重复提示词前缀的模型状态,而无需在每次请求时重新计算相同的前缀。工具搜索则允许模型按需加载工具定义,而不是在每次交互时都将所有完整的工具模式送入上下文。
随着智能体使用更多工具,这一点变得愈发重要。一次会话可能需要访问 MCP 工具、终端命令、文件操作、工作区搜索以及特定于产品的操作。预先加载所有完整的工具定义会给每次交互增加固定开销,即使只有少量工具与当前任务相关。借助工具搜索,Copilot 可以保持广泛的可用工具集,同时向模型发送更少不必要的工具模式。
关于实现细节的更深入技术探讨,包括提示词缓存、缓存控制断点、特定于提供商(provider)的工具搜索,以及这些变更如何在长时间运行的智能体会话中发挥作用,请阅读 VS Code 技术深度解析文章。
GitHub Copilot 自动模型选择功能的定位
“自动”回答了一个实际问题:当前哪个模型最适合这项任务?
在您发出第一个提示词后,Copilot 会根据任务意图和当前模型健康状态,选择最适合该任务的模型。不同类型的工作,例如快速解释、针对性编辑或多文件更改,并非都能从相同级别的推理能力中受益。因此,“自动”功能会做出判断,无需您手动调整模型设置。
在我们的评估中,没有任何单一模型能在所有任务上持续表现最佳。在许多情况下,一个更高效的模型也能达到相同的结果;而当任务需要更深入的推理时,更强的模型才至关重要。“自动”功能会学习在哪些情况下更强的推理能改善结果。当任务需要时,它会将请求路由到更强的模型;当不需要时,则保持更高的效率。其目标并非以质量换取成本,而是使用最适合当前工作的模型。
“自动”功能如何选择正确的模型
“自动”功能结合了两种信号:当前哪个模型健康且可用,以及 Copilot 被要求执行哪种类型的工作。
- 实时模型健康状态:一个动态引擎会追踪模型的可用性、利用率、速度、错误率和成本。一个模型可能有能力处理某项任务,但这并不意味着它在当前时刻是最佳选择。“自动”功能会考虑当前的系统状况,以便 Copilot 能将请求路由到一个既有能力又能及时响应的模型。
- 基于 HyDRA 的任务感知路由:一个路由模型,它会考虑推理深度、代码复杂度、调试难度以及工具编排需求等因素。HyDRA 会识别出能够满足任务质量要求的模型,然后从中选出最合适的。


综合来看,这些信号让 Auto 避免了"一刀切"的做法。其关键并非将所有任务都发送给最大的模型,也不是全部交给最便宜的模型,而是选择最适合当前工作的模型。
让 Auto 在实践中发挥作用
在评估中实现正确的路由只是问题的一部分。为了让 Auto 在实际工作流中真正有用,我们还必须考虑开发者实际使用 Copilot 的方式:对话会变长、上下文会累积、任务会切换,而且开发者会使用多种语言。
缓存感知路由。每次交互都切换模型听起来很灵活,但这可能会损害效率。当对话停留在同一个模型上时,提示词前缀可以被缓存并在后续交互中复用。在对话中途切换模型会破坏该缓存,其代价可能超过路由切换所节省的成本。Auto 通过在自然的缓存边界处进行路由来避免这种情况:在首次交互时(此时没有缓存可丢失),以及在压缩操作之后(此时 Copilot 会总结较早的交互,提示词前缀被重置)。在这两个节点之间,所选模型保持不变,以便缓存能够持续累积。
跨语言路由。Copilot 服务于全球的开发者,因此路由机制必须支持英语以外的语言。我们使用涵盖 16 个语系(包括中日韩、欧洲及其他语系)的对话数据训练了路由模型。在评估中,各语系的路由准确率与英语基线水平的差距保持在 4 个百分点以内,且未出现统计上显著的质量差异。

学习何时需要升级处理。我们没有简单地将任务标记为“简单”或“困难”,而是训练路由器去学习模型实际产生差异的节点。对于每个训练查询,能力较弱模型和能力较强模型的回答会在多个质量维度上进行评分。路由器会学习何时更强大的模型能带来额外价值,以及何时一个更高效的模型也能产生同样好的结果。对于较长智能体会话中依赖上下文的讯息,路由器会在完整的多轮对话上进行训练,包括原始用户意图、最近的助手回复以及对话元数据。
带任务意图的自动模式正在扩展
带任务意图的自动模式已在 Visual Studio Code、github.com 和移动端上线。它能为 Copilot 提供更多关于你正在从事工作类型的信号——无论是编码、调试、规划还是使用工具——从而让它能为该任务做出更好的模型选择。
我们正在将这种体验持续扩展到 Copilot 的更多场景。接下来,我们将把带任务意图的自动模式带到更多界面,并增加更多方式让团队将自动模式设为默认选项。
- 带任务意图的自动模式即将登陆 Copilot CLI、GitHub App 以及更多 IDE。
- Copilot Free 和 Student 套餐将进行简化,以利用自动模式作为唯一的模型选择选项。
- 管理员控制功能将允许组织将自动模式设为默认选项,或强制将自动模式设为唯一选项。
从你的 AI 积分中获得更多价值
Copilot 默认情况下已变得更高效,但一些使用习惯可以帮助你的积分用得更久。
- 从自动模式开始。自动模式是许多任务的强力默认选项,因为它会根据你正在尝试做的事情来选择模型,而无需你每次都手动挑选。
- 保持上下文聚焦。当你切换任务时开启一个新会话,在需要时压缩长时间运行的会话,并且当你已经知道相关代码所在位置时,明确指出你希望 Copilot 使用的文件。更少的不必要上下文意味着会话中更多部分能用于实际工作。
- 避免在会话中途更改模型或设置。切换模型、推理级别、上下文大小或工具配置可能会破坏缓存复用,并迫使 Copilot 重建上下文。按照你想要的方式设置好会话,然后将相关工作保持在一起。
- 先规划,再并行。对于较大的任务,先让 Copilot 制定计划。当工作确实可以拆分时,并行智能体才真正有用,但它们也会并行消耗额度,因此请审慎使用。
- 只使用你需要的工具。工具和 MCP 服务器功能强大,但过于宽泛的工具集可能会增加额外上下文。启用与任务相关的工具,关闭不需要的部分。查看 GitHub Copilot 中的智能体查找器,有助于简化你的工具使用。
- 检查你的使用情况。你的 AI 使用页面会显示额度在各个功能和模型中的消耗情况。在 Copilot CLI 中,会话级别的使用情况也能帮助你在工作中发现高消耗模式。
完整指南请参阅《如何更有效地利用你的 AI 额度》。
自动模型选择功能现已适用于支持的 Copilot 体验。了解更多信息,请参阅自动模型选择文档。你也可以在 Copilot 讨论区分享反馈。
我们正在持续提升 Copilot 在系统层面的效率,以便更多额度能用于有效工作,而无需你手动调整每一个模型选择。
本文由 Nhu Do 和 Aashna Garg 共同贡献。