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

TL;DR · AI 摘要
GitHub Copilot通过改进上下文处理和模型路由,提升效率和性能。
核心要点
- GitHub Copilot通过提示缓存减少重复计算,提升效率。
- Auto功能根据任务自动选择最佳模型,无需手动调整。
- 工具搜索功能按需加载工具定义,减少上下文负担。
结构提纲
按章节快速跳转。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- GitHub Copilot效率提升
- 提示缓存
- 减少重复计算
- 提升效率
- 工具搜索
- 按需加载工具定义
- 减少上下文负担
- Auto模型选择
- 自动选择最佳模型
- 无需手动调整
金句 / Highlights
值得收藏与分享的关键句。
Prompt caching helps Copilot reuse model state for repeated prompt prefixes instead of recomputing the same prefix on every request.
Tool search lets the model load tool definitions on demand, instead of sending every full tool schema into context on every turn.
In our evaluations, no single model consistently performed best across tasks.
标题:充分利用每个 token:Copilot 如何改进上下文处理和模型路由
URL 来源:https://github.blog/ai-and-ml/github-copilot/getting-more-from-each-token-how-copilot-improves-context-handling-and-model-routing/
发布时间:2026-06-17T12:41:46-07:00
Markdown 内容: 随着 Copilot 承担越来越多的代理工作,包括规划、编辑、调试、审查以及在更长时间的会话中调用工具,效率不仅仅意味着使用更少的 token。它意味着更聪明地使用这些 token。
提高效率的第一步是减少 Copilot 在每次交互中需要重复的内容,包括上下文、工具定义和缓存状态。接下来是选择适合任务的正确模型。一个简短的解释、一个专注的编辑和一个复杂的多文件更改不应该被一视同仁。
我们正在同时改进这两方面:优化 Copilot 的框架,使每次会话中更多的内容直接用于任务本身;并扩展 Auto 功能,使 Copilot 能够根据工作内容自动选择合适的模型,而无需开发者每次都手动选择。本文重点介绍 GitHub Copilot for VS Code 中框架的改进,以及在 Copilot 各个界面上扩展 Auto 的持续工作。
提高提示缓存和延迟加载工具
在 VS Code 中进行更长时间的 GitHub Copilot 会话时,框架会为模型准备大量重复的信息:指令、仓库上下文、对话历史、可用工具和任务的当前状态。其中一些上下文是必要的。一些可以缓存、延迟加载,或仅在相关时才加载。
GitHub Copilot for VS Code 的两个改进在此方面做了大部分工作。提示缓存帮助 Copilot 重用模型状态,用于重复的提示前缀,而不是在每次请求时重新计算相同的前缀。工具搜索使模型能够按需加载工具定义,而不是在每次交互中将完整的工具模式发送到上下文中。
随着代理使用更多工具,这一点变得尤为重要。一个会话可能需要访问 MCP 工具、终端命令、文件操作、工作区搜索和产品特定操作。提前加载所有完整的工具定义会为每次交互增加固定成本,即使只有少数工具与任务相关。通过工具搜索,Copilot 可以保持可用工具集的广泛性,同时减少发送到模型中不必要的工具模式。
如需深入了解实现细节,包括提示缓存、缓存控制断点、特定提供者的工具搜索,以及这些更改如何在长时间运行的代理会话中工作,请阅读 VS Code 技术深入分析。
在我们的评估中,没有单一模型在所有任务中始终表现最佳。在许多情况下,一个更高效的模型可以达到相同的效果,而当任务需要更深层次的推理时,更强的模型则显得尤为重要。Auto 能够学习何时更强的推理能提升结果。当任务需要时,它会向上路由;当不需要时,它会保持更高的效率。目标不是以牺牲质量来换取成本,而是使用最适合任务的模型。
Auto 如何选择合适的模型
Auto 结合了两个信号:当前可用且健康的模型,以及 Copilot 被要求执行的任务类型。
- 实时模型健康状况: 一个动态引擎跟踪模型的可用性、使用率、速度、错误率和成本。一个模型可能能够处理某个任务,但这并不意味着它在那一刻就是最佳选择。Auto 会考虑当前系统状况,使 Copilot 能够路由到一个既能胜任又能及时响应的模型。
- 基于任务的路由([HyDRA](https://arxiv.org/pdf/2605.17106): 一个路由模型,考虑诸如推理深度、代码复杂性、调试难度和工具编排需求等因素。HyDRA 识别出能够满足任务质量要求的模型,然后在这些模型中选择最佳匹配。

图1:三个 HyDRA 运行点说明了可调性:(峰值)在 12.9% 的节约上超过 Sonnet;(聚合)在 72.5% 的节约下实现质量平衡。

图2:HyDRA(Cons.)在解决率(70.8%)上与 OpenRouter Auto 平分秋色,但节省了 3.3 倍的成本。HyDRA(Aggr.)优于 Azure Foundry 的两种运行模式。
综合这些信号,Auto 能够避免采用一刀切的方法。重点不是将每个任务都发送给最大的模型,也不是将每个任务都发送给最便宜的模型。而是选择最适合任务的模型。
在实践中实现 Auto
在评估中正确进行路由只是问题的一部分。为了使 Auto 在实际工作流程中发挥作用,我们还必须考虑开发人员实际使用 Copilot 的方式:对话会变得更长,上下文会逐渐积累,任务会变化,开发人员会使用多种语言。
缓存感知路由。 每次切换模型听起来很灵活,但可能会影响效率。当对话保持在同一个模型上时,提示前缀可以被缓存并在多次对话中重复使用。在对话中间切换模型会破坏这个缓存,这可能比路由更改节省的成本还要高。Auto 通过在自然的缓存边界进行路由来避免这种情况:第一次对话时,没有缓存可以丢失;在压缩之后,Copilot 总结了较早的对话,提示前缀重置。在这两个点之间,所选模型保持不变,以便缓存可以继续构建。
跨语言路由。 Copilot 服务于全球各地的开发者,因此路由功能必须在非英语语言中也能正常工作。我们在 16 个语言家族的对话上训练了路由模型,包括 CJK、欧洲语言和其他语言。在评估中,路由准确率在不同语言组中与英语基准值的差距不超过 4 分,且没有统计上显著的质量差距。

图 3:智能路由与英语基准值的差距不超过 4 分。模型评估基于从生产环境中 VS Code 聊天遥测数据中抽取的 19 种语言的保留评估集,涵盖英语、欧洲语言、CJK 和其他文字家族。
在需要升级时进行学习。 我们没有简单地将任务标记为“容易”或“困难”,而是训练路由器学习模型实际发生分歧的地方。对于每个训练查询,我们对一个能力较低的模型和一个能力较高的模型的响应在质量维度上进行评分。路由器学习何时更强的模型能带来价值,以及何时更高效的模型可以产生同样好的结果。对于较长的代理会话中的上下文相关消息,路由器是在完整的多轮对话上进行训练的,包括原始用户意图、最近的助手响应和对话元数据。
Auto 带任务意图正在扩展
Auto 带任务意图功能已经在 Visual Studio Code、github.com 和移动设备上上线。它为 Copilot 提供了更多关于您正在进行的工作类型的信号,无论是编码、调试、规划还是使用工具,从而让 Copilot 能够为任务做出更优的模型选择。
我们正在继续将这一功能扩展到 Copilot 的更多方面。接下来,我们将把 Auto 带任务意图功能引入到更多界面,并增加更多方式让团队将 Auto 设置为默认选项。
- Auto 带任务意图功能将引入到 Copilot CLI、GitHub App 和更多 IDE 中。
- Copilot 免费版和学生版计划将简化,以利用 Auto 作为唯一的模型选择选项。
- 管理员控制功能将允许组织将 Auto 设置为默认选项或强制将 Auto 设为唯一选项。
从您的 AI 信用中获取更多价值
Copilot 默认变得更加高效,但一些习惯可以帮助您的信用额度使用得更久。
- 从 Auto 开始。 Auto 是许多任务的强默认选项,因为它会根据你正在尝试做的事情选择一个模型,而无需每次手动挑选一个模型。
- 保持上下文聚焦。 切换任务时请开始一个新会话,必要时压缩长时间运行的会话,并在你知道相关代码所在位置时,提及你希望 Copilot 使用的文件。更少的无关上下文意味着更多会话时间用于实际工作。
- 避免在会话中更改模型或设置。 更改模型、推理级别、上下文大小或工具配置可能会破坏缓存重用,并导致 Copilot 重新构建上下文。按你想要的方式设置会话,然后将相关工作放在一起。
- 并行化之前先进行规划。 对于较大的任务,先让 Copilot 进行规划。当工作确实可以拆分时,并行代理可能会很有用,但它们也会并行消耗信用额度,因此请有意识地使用它们。
- 只使用你需要的工具。 工具和 MCP 服务器功能强大,但广泛的工具集可能会增加额外的上下文。启用与任务相关的工具,关闭不需要的工具。查看 GitHub Copilot 的代理查找器 以帮助优化你的工具使用。
- 检查你的使用情况。 你的 AI 使用页面会显示信用额度在各个功能和模型上的使用情况。在 Copilot CLI 中,会话级别的使用情况也可以帮助你在工作时发现昂贵的使用模式。
如需完整指南,请参阅 如何更好地利用你的 AI 信用额度。
入门
今天,Auto 模型选择功能已在所有支持的 Copilot 体验中提供。如需了解更多信息,请参阅 Auto 模型选择文档。你也可以在 Copilot 讨论 中分享反馈。
我们正在继续提升 Copilot 的整体效率,使更多的信用额度用于有用的工作,而无需你亲自调整每个模型的选择。
_本文由 Nhu Do 和 Aashna Garg 贡献。_
作者
产品副总裁
探索更多 GitHub 内容
文档
在一处掌握 GitHub 所需的一切。
GitHub
在 GitHub 上构建下一个伟大的项目,这里是任何人都可以构建任何东西的地方。
客户故事
了解使用 GitHub 构建产品的公司和工程团队。
GitHub Universe 2026
10 月 28 日至 29 日,加入我们在旧金山或在线参加 GitHub Universe,我们的旗舰开发者活动,汇聚人们、代理和世界上的代码。