GitHub · AI/ML 项目

从每个token获取更多:Copilot如何改进上下文处理与模型路由

Getting more from each token: How Copilot improves context handling and model routing

二〇二六年六月十七日 · 英文原文

GitHub Copilot 在 VS Code 中通过 prompt 缓存和工具搜索两项框架改进,减少长会话中重复的上下文与工具 schema 加载,提升 token 使用效率。同时推出 Auto 模型选择功能,结合实时模型健康状态与基于任务感知的路由引擎 HyDRA,自动为快速解释、针对性编辑或多文件变更等不同任务匹配最合适的模型。HyDRA 在节省 12.9% 成本下超越 Sonnet,或在节省 72.5% 成本下平衡质量。Auto 已上线 Visual Studio Code、github.com 和移动端,并将扩展至 Copilot CLI、GitHub App 及其他 IDE。

随着 Copilot 承担更多代理性工作——从规划、编辑到调试、审查以及在更长的会话中调用工具——效率的意义已超越单纯减少 token 使用量。它意味着更聪明地使用 token。提升效率始于减少 Copilot 在每次交互中需要重复的内容,包括上下文、工具定义和缓存状态。接着是为任务选择合适的模型。快速解释、针对性编辑和复杂的多文件变更不应被同等对待。我们正在两方面努力:改进 Copilot 的框架,使更多会话资源用于任务本身;以及扩展 Auto 功能,让 Copilot 能自动选择适合工作的模型,无需开发者每次都手动选择。本文重点介绍 VS Code 中 GitHub Copilot 的框架改进,以及将 Auto 扩展到更多 Copilot 界面的持续工作。

增强的 prompt 缓存与延迟工具

在 VS Code 中较长的 GitHub Copilot 会话里,框架会为模型准备大量重复信息:指令、仓库上下文、对话历史、可用工具以及任务的当前状态。其中部分上下文是必需的,部分则可以缓存、延迟加载或仅在相关时才加载。VS Code 中 GitHub Copilot 的两项改进在此发挥了主要作用。Prompt 缓存帮助 Copilot 复用模型状态来处理重复的 prompt 前缀,而无需在每次请求时重新计算相同的前缀。工具搜索则允许模型按需加载工具定义,而不是在每次交互时将所有完整工具 schema 都送入上下文。

随着代理使用更多工具,这一点变得更为重要。一个会话可能需要访问 MCP 工具、终端命令、文件操作、工作区搜索以及特定于产品的操作。预先加载所有完整工具定义为每次交互增加了固定成本,即使只有少量工具与任务相关。借助工具搜索,Copilot 可以保持广泛的可用工具集,同时向模型发送更少不必要的工具 schema。关于实现细节的深入技术探讨,包括 prompt 缓存、缓存控制断点、特定于提供商的工具搜索以及这些更改如何在长时间运行的代理会话中工作,请阅读 VS Code 技术深度解析。

GitHub Copilot 自动模型选择的作用

Auto 回答了一个实际问题:当前哪个模型最适合这个任务?在您发出第一个 prompt 后,Copilot 会根据任务意图和当前模型健康状态选择最适合该任务的模型。不同类型的工作——如快速解释、针对性编辑或多文件变更——并非都能从相同程度的推理中受益,因此 Auto 会做出这一选择,无需您调整模型设置。在我们的评估中,没有单一模型能在所有任务上持续表现最佳。在许多情况下,更高效的模型能达到相同结果,而更强的模型在任务需要更深层推理时才最为关键。Auto 会学习何时更强的推理能改善结果。当任务需要时,它会升级到更强模型;当不需要时,则保持更高效。目标不是用质量换取成本,而是使用最适合工作的模型。

Auto 如何选择合适的模型

Auto 结合两种信号:当前哪些模型健康且可用,以及 Copilot 被要求执行何种工作。

图 1:三个 HyDRA 运行点展示了可调性:(Peak) 在节省 12.9% 成本的情况下超越 Sonnet;(Agg.) 在节省 72.5% 成本的情况下平衡质量。 图 2:HyDRA (Cons.) 在节省 3.3 倍成本的情况下,在解决率 (70.8%) 上与 OpenRouter Auto 持平。HyDRA (Agg.) 优于 Azure Foundry 的两种运行模式。

综合来看,这些信号让 Auto 避免了“一刀切”的方法。关键不是将每个任务都发送给最大的模型,也不是都发送给最便宜的模型,而是选择适合工作的模型。

让 Auto 在实践中发挥作用

在评估中正确路由只是问题的一部分。为了让 Auto 在实际工作流中有用,我们还必须考虑开发者实际使用 Copilot 的方式:会话变长、上下文累积、任务切换,以及开发者使用多种语言。

Auto with task intent 正在扩展

Auto with task intent 已在 Visual Studio Code、github.com 和移动端上线。它为 Copilot 提供了更多关于您正在执行的工作类型(无论是编码、调试、规划还是使用工具)的信号,以便为任务做出更好的模型选择。我们正在继续将该体验扩展到更多 Copilot 界面。接下来,我们将把 Auto with task intent 带到更多平台,并增加更多方式让团队将 Auto 设为默认选项。Auto with task intent 即将登陆 Copilot CLI、GitHub App 以及其他 IDE。Copilot Free 和 Student 计划将简化,以利用 Auto 作为唯一的模型选择选项。管理员控制将允许组织将 Auto 设为默认值,或强制 Auto 作为唯一选项。

从您的 AI 积分中获得更多价值

Copilot 默认变得更高效,但一些习惯可以帮助您的积分用得更多。

完整指南请参阅《如何从您的 AI 积分中获得更多价值》。

开始使用

Auto 模型选择现已可用于受支持的 Copilot 体验。要了解更多信息,请参阅 Auto 模型选择文档。您也可以在 Copilot 讨论中分享反馈。我们正在持续让 Copilot 在整个系统中更高效,以便更多积分用于有用工作,而无需您自己调整每个模型选择。

本文《从每个 token 中获取更多价值:Copilot 如何改进上下文处理和模型路由》最初发表于 GitHub 博客。

译自 GitHub · AI/ML 项目 · 录于 二〇二六年六月十七日