作者Joe Binder排版Alan WangGitHub Copilot 正在通过优化上下文管理与模型路由让每次会话中的 Token 更多地投入到真正有价值的工作中帮助你更高效地利用 GitHub AI Credits。随着 Copilot 承担越来越多的智能体工作——从任务规划、代码编辑到调试、代码审查以及在长时间会话中调用各种工具——效率已不仅仅意味着“使用更少的 Token”而是意味着更聪明地使用每一个 Token。提升效率首先要减少 Copilot 在每一轮交互中重复发送的信息包括上下文、工具定义以及缓存状态其次则是为当前任务选择最合适的模型。一次快速解释、一次针对性的代码修改以及一次复杂的跨文件变更并不应该采用完全相同的处理方式。我们正在同时推进这两个方向持续优化 Copilot 的运行框架让每一次会话中的更多 Token 都真正用于完成任务本身持续扩展 Auto 自动模型选择能力让 Copilot 能够根据任务自动选择最合适的模型而无需开发者每次手动决策。本文将重点介绍 GitHub Copilot for VS Code 在运行框架方面的优化以及 Auto 能力在更多 Copilot 产品中的持续扩展。更高效的 Prompt 缓存与按需加载工具在 GitHub Copilot for VS Code 的长时间会话中运行框架需要为模型准备大量重复出现的信息例如系统指令、仓库上下文、对话历史、可用工具、当前任务状态。其中有些信息每次都必须提供而另一些则可以缓存、延迟加载或仅在真正需要时再加载。GitHub Copilot for VS Code 中两项优化承担了绝大部分工作Prompt 缓存让 Copilot 能够复用重复 Prompt 前缀对应的模型状态而不是在每次请求时重新计算相同内容。工具搜索让模型按需加载工具定义而不是在每轮对话中都发送完整的工具 Schema。随着智能体能够调用越来越多工具这一点变得尤为重要。一个会话可能需要访问 MCP 工具、终端命令、文件操作、工作区搜索、各类产品专属操作。如果一开始就把所有工具定义全部发送给模型那么无论当前任务是否真正需要这些工具每轮请求都会产生固定的 Token 成本。借助 Tool SearchCopilot 能够保持丰富的工具能力同时显著减少发送给模型的无关工具 Schema。若想深入了解其技术实现包括 Prompt 缓存、Cache-Control 缓存断点、面向不同模型提供商的工具搜索以及这些改进如何在长时间运行的智能体会话中发挥作用欢迎阅读 VS Code 技术深度解析。GitHub Copilot Auto 自动模型选择的作用Auto 解决的是一个非常实际的问题对于当前任务哪一个模型才是最佳选择在收到你的第一条 Prompt 后Copilot 会结合任务意图以及当前模型运行状态自动选择最适合完成该任务的模型。不同类型的工作——例如快速解释、针对性的代码修改、跨多个文件的大规模变更并不都需要同样等级的推理能力。因此Auto 会自动完成这一判断而无需开发者反复调整模型设置。我们的评估结果表明没有任何一个模型能够在所有任务中始终保持最佳表现。很多情况下性能更高效、成本更低的模型同样能够完成任务而只有在需要深度推理时更强大的模型才真正体现出优势。Auto 会不断学习在哪些场景中更强的推理能力能够真正提升结果。因此当任务需要时它会自动升级到能力更强的模型当任务并不需要时它则保持更高的执行效率。其目标并不是用质量换取成本而是始终选择最适合当前任务的模型。Auto 如何选择合适的模型Auto 的模型选择主要基于两个信号当前哪些模型健康、可用当前 Copilot 正在执行什么类型的任务。实时模型健康状态Auto 内置了一套动态调度引擎持续监控模型的可用性、利用率、响应速度、错误率、使用成本。即使某个模型具备完成任务的能力也不意味着它在当前时刻就是最佳选择。Auto 会综合当前系统运行状态确保 Copilot 将请求路由到一个既具备能力又能够及时响应的模型。基于任务感知的HyDRA路由Auto 还引入了 HyDRA 路由模型根据任务特点进行智能决策包括推理深度、代码复杂度、调试难度、工具编排需求。HyDRA 会首先筛选出能够满足当前任务质量要求的模型再从这些候选模型中选择最合适的一个。综合来看这些能力使 Auto 能够摆脱“一刀切”的模型选择策略。它的目标并不是将所有任务都交给最大的模型也不是一味选择成本最低的模型而是根据任务特点选择最适合的模型。让 Auto 在真实开发场景中发挥作用在评测中实现正确的模型路由只解决了问题的一部分。要让 Auto 真正在开发者的实际工作流中发挥价值我们还必须考虑开发者使用 Copilot 的真实方式对话会越来越长、上下文会不断累积、任务会持续变化而且开发者使用着多种不同的编程语言和自然语言。缓存感知路由。从表面上看每一轮对话都切换到最合适的模型似乎更加灵活但实际上这反而可能降低整体效率。当一次对话始终使用同一个模型时Prompt 前缀可以被缓存并在后续轮次中重复利用。而如果在对话过程中切换模型这部分缓存就会失效其带来的额外开销甚至可能超过模型切换本身节省的成本。为此Auto 会在自然的缓存边界进行模型路由例如首轮对话此时还没有任何缓存可供复用上下文压缩之后Copilot 会对较早的对话内容进行总结Prompt 前缀随之重置。在这两个时间点之间Auto 会保持当前选定的模型不变从而让缓存持续累积并发挥最大价值。跨语言路由。Copilot 服务于全球开发者因此模型路由不仅要适用于英语也必须能够支持其他语言。为此我们使用涵盖 16 个语系 的真实对话数据训练了路由模型其中包括中日韩语系CJK、欧洲语系等多种语言。在评测中不同语系的路由准确率与英语基线相比误差均控制在 4 个百分点以内且在模型输出质量上未观察到具有统计学意义的差异。学会判断何时需要升级模型。我们并没有简单地将任务划分为“简单”或“困难”而是训练路由模型去学习不同模型真正产生能力差异的场景。对于训练集中的每一个查询我们都会分别使用能力较弱的模型和能力更强的模型生成回答并从多个质量维度进行评分。路由模型据此学习何时更强的模型能够带来明显价值何时更高效、更低成本的模型也能产生同样优秀的结果。对于长时间运行的智能体会话中依赖上下文的消息路由模型则基于完整的多轮对话进行训练其中包括用户最初的意图、最近几轮助手回复以及对话元数据。基于任务意图的 Auto 正在不断扩展如今基于任务意图的 Auto 已正式应用于 Visual Studio Code、GitHub.com 和移动端。它能够根据你当前正在进行的工作——例如编写代码、调试、规划任务或调用工具——获取更多关于任务类型的信号从而为当前任务选择更合适的模型。接下来我们将持续把这一能力扩展到更多 Copilot 使用场景并提供更多方式帮助团队将 Auto 设置为默认模型选择策略。未来更新包括Copilot CLI、GitHub App 以及更多 IDE 将支持基于任务意图的 Auto。Copilot Free 与 Student 计划将进一步简化仅保留 Auto 作为唯一的模型选择方式。管理员将能够通过组织级策略将 Auto 设置为默认模型或强制所有成员仅使用 Auto。让 AI Credits 发挥更大价值Copilot 默认已经变得更加高效但以下几个使用习惯可以帮助你的AI Credits用得更久。从 Auto 开始。对于大多数任务来说Auto 都是最佳默认选择。它会根据你正在执行的工作自动选择最合适的模型而无需你每次都手动切换。保持上下文聚焦。切换任务时开启新的会话对于持续时间较长的会话在需要时进行上下文压缩如果你已经知道相关代码所在位置可以直接告诉 Copilot 需要参考哪些文件。减少无关上下文意味着更多上下文空间能够真正用于完成当前任务。不要在会话过程中频繁修改模型或配置。切换模型、推理级别、上下文大小或工具配置都可能导致缓存无法复用使 Copilot 重新构建上下文。建议在开始时配置好会话并尽量将相关工作集中在同一个会话中完成。并行之前先做好规划。面对大型任务时先让 Copilot 制定计划。只有当任务确实能够拆分时并行智能体才更有价值。但需要注意并行智能体会同时消耗 AI Credits因此应按需使用而非默认开启。只启用真正需要的工具。工具以及 MCP Server 功能十分强大但过多的工具也会增加额外上下文。只启用当前任务需要的工具关闭暂时不用的部分。你还可以使用 GitHub Copilot Agent Finder 来帮助精简工具使用。关注你的使用情况。AI Usage 页面可以帮助你了解不同功能和模型分别消耗了多少 AI Credits。在 Copilot CLI 中会话级别的使用统计也能帮助你及时发现成本较高的使用模式。完整指南请参阅 《如何充分利用你的 AI 积分额度》。开始使用Auto 模型选择现已在所有支持的 Copilot 产品体验中正式提供。想了解更多信息请参阅 Auto Model Selection 官方文档也欢迎前往 Copilot Discussions 分享你的使用反馈。未来我们将继续从整个 Copilot 系统层面提升效率让更多 AI Credits 真正用于完成有价值的工作而无需你亲自调整每一次模型选择。本文由**Nhu Do和**Aashna Garg共同参与撰写。
技术速递|让每一个 Token 发挥更大价值:Copilot 如何优化上下文处理与模型路由
作者Joe Binder排版Alan WangGitHub Copilot 正在通过优化上下文管理与模型路由让每次会话中的 Token 更多地投入到真正有价值的工作中帮助你更高效地利用 GitHub AI Credits。随着 Copilot 承担越来越多的智能体工作——从任务规划、代码编辑到调试、代码审查以及在长时间会话中调用各种工具——效率已不仅仅意味着“使用更少的 Token”而是意味着更聪明地使用每一个 Token。提升效率首先要减少 Copilot 在每一轮交互中重复发送的信息包括上下文、工具定义以及缓存状态其次则是为当前任务选择最合适的模型。一次快速解释、一次针对性的代码修改以及一次复杂的跨文件变更并不应该采用完全相同的处理方式。我们正在同时推进这两个方向持续优化 Copilot 的运行框架让每一次会话中的更多 Token 都真正用于完成任务本身持续扩展 Auto 自动模型选择能力让 Copilot 能够根据任务自动选择最合适的模型而无需开发者每次手动决策。本文将重点介绍 GitHub Copilot for VS Code 在运行框架方面的优化以及 Auto 能力在更多 Copilot 产品中的持续扩展。更高效的 Prompt 缓存与按需加载工具在 GitHub Copilot for VS Code 的长时间会话中运行框架需要为模型准备大量重复出现的信息例如系统指令、仓库上下文、对话历史、可用工具、当前任务状态。其中有些信息每次都必须提供而另一些则可以缓存、延迟加载或仅在真正需要时再加载。GitHub Copilot for VS Code 中两项优化承担了绝大部分工作Prompt 缓存让 Copilot 能够复用重复 Prompt 前缀对应的模型状态而不是在每次请求时重新计算相同内容。工具搜索让模型按需加载工具定义而不是在每轮对话中都发送完整的工具 Schema。随着智能体能够调用越来越多工具这一点变得尤为重要。一个会话可能需要访问 MCP 工具、终端命令、文件操作、工作区搜索、各类产品专属操作。如果一开始就把所有工具定义全部发送给模型那么无论当前任务是否真正需要这些工具每轮请求都会产生固定的 Token 成本。借助 Tool SearchCopilot 能够保持丰富的工具能力同时显著减少发送给模型的无关工具 Schema。若想深入了解其技术实现包括 Prompt 缓存、Cache-Control 缓存断点、面向不同模型提供商的工具搜索以及这些改进如何在长时间运行的智能体会话中发挥作用欢迎阅读 VS Code 技术深度解析。GitHub Copilot Auto 自动模型选择的作用Auto 解决的是一个非常实际的问题对于当前任务哪一个模型才是最佳选择在收到你的第一条 Prompt 后Copilot 会结合任务意图以及当前模型运行状态自动选择最适合完成该任务的模型。不同类型的工作——例如快速解释、针对性的代码修改、跨多个文件的大规模变更并不都需要同样等级的推理能力。因此Auto 会自动完成这一判断而无需开发者反复调整模型设置。我们的评估结果表明没有任何一个模型能够在所有任务中始终保持最佳表现。很多情况下性能更高效、成本更低的模型同样能够完成任务而只有在需要深度推理时更强大的模型才真正体现出优势。Auto 会不断学习在哪些场景中更强的推理能力能够真正提升结果。因此当任务需要时它会自动升级到能力更强的模型当任务并不需要时它则保持更高的执行效率。其目标并不是用质量换取成本而是始终选择最适合当前任务的模型。Auto 如何选择合适的模型Auto 的模型选择主要基于两个信号当前哪些模型健康、可用当前 Copilot 正在执行什么类型的任务。实时模型健康状态Auto 内置了一套动态调度引擎持续监控模型的可用性、利用率、响应速度、错误率、使用成本。即使某个模型具备完成任务的能力也不意味着它在当前时刻就是最佳选择。Auto 会综合当前系统运行状态确保 Copilot 将请求路由到一个既具备能力又能够及时响应的模型。基于任务感知的HyDRA路由Auto 还引入了 HyDRA 路由模型根据任务特点进行智能决策包括推理深度、代码复杂度、调试难度、工具编排需求。HyDRA 会首先筛选出能够满足当前任务质量要求的模型再从这些候选模型中选择最合适的一个。综合来看这些能力使 Auto 能够摆脱“一刀切”的模型选择策略。它的目标并不是将所有任务都交给最大的模型也不是一味选择成本最低的模型而是根据任务特点选择最适合的模型。让 Auto 在真实开发场景中发挥作用在评测中实现正确的模型路由只解决了问题的一部分。要让 Auto 真正在开发者的实际工作流中发挥价值我们还必须考虑开发者使用 Copilot 的真实方式对话会越来越长、上下文会不断累积、任务会持续变化而且开发者使用着多种不同的编程语言和自然语言。缓存感知路由。从表面上看每一轮对话都切换到最合适的模型似乎更加灵活但实际上这反而可能降低整体效率。当一次对话始终使用同一个模型时Prompt 前缀可以被缓存并在后续轮次中重复利用。而如果在对话过程中切换模型这部分缓存就会失效其带来的额外开销甚至可能超过模型切换本身节省的成本。为此Auto 会在自然的缓存边界进行模型路由例如首轮对话此时还没有任何缓存可供复用上下文压缩之后Copilot 会对较早的对话内容进行总结Prompt 前缀随之重置。在这两个时间点之间Auto 会保持当前选定的模型不变从而让缓存持续累积并发挥最大价值。跨语言路由。Copilot 服务于全球开发者因此模型路由不仅要适用于英语也必须能够支持其他语言。为此我们使用涵盖 16 个语系 的真实对话数据训练了路由模型其中包括中日韩语系CJK、欧洲语系等多种语言。在评测中不同语系的路由准确率与英语基线相比误差均控制在 4 个百分点以内且在模型输出质量上未观察到具有统计学意义的差异。学会判断何时需要升级模型。我们并没有简单地将任务划分为“简单”或“困难”而是训练路由模型去学习不同模型真正产生能力差异的场景。对于训练集中的每一个查询我们都会分别使用能力较弱的模型和能力更强的模型生成回答并从多个质量维度进行评分。路由模型据此学习何时更强的模型能够带来明显价值何时更高效、更低成本的模型也能产生同样优秀的结果。对于长时间运行的智能体会话中依赖上下文的消息路由模型则基于完整的多轮对话进行训练其中包括用户最初的意图、最近几轮助手回复以及对话元数据。基于任务意图的 Auto 正在不断扩展如今基于任务意图的 Auto 已正式应用于 Visual Studio Code、GitHub.com 和移动端。它能够根据你当前正在进行的工作——例如编写代码、调试、规划任务或调用工具——获取更多关于任务类型的信号从而为当前任务选择更合适的模型。接下来我们将持续把这一能力扩展到更多 Copilot 使用场景并提供更多方式帮助团队将 Auto 设置为默认模型选择策略。未来更新包括Copilot CLI、GitHub App 以及更多 IDE 将支持基于任务意图的 Auto。Copilot Free 与 Student 计划将进一步简化仅保留 Auto 作为唯一的模型选择方式。管理员将能够通过组织级策略将 Auto 设置为默认模型或强制所有成员仅使用 Auto。让 AI Credits 发挥更大价值Copilot 默认已经变得更加高效但以下几个使用习惯可以帮助你的AI Credits用得更久。从 Auto 开始。对于大多数任务来说Auto 都是最佳默认选择。它会根据你正在执行的工作自动选择最合适的模型而无需你每次都手动切换。保持上下文聚焦。切换任务时开启新的会话对于持续时间较长的会话在需要时进行上下文压缩如果你已经知道相关代码所在位置可以直接告诉 Copilot 需要参考哪些文件。减少无关上下文意味着更多上下文空间能够真正用于完成当前任务。不要在会话过程中频繁修改模型或配置。切换模型、推理级别、上下文大小或工具配置都可能导致缓存无法复用使 Copilot 重新构建上下文。建议在开始时配置好会话并尽量将相关工作集中在同一个会话中完成。并行之前先做好规划。面对大型任务时先让 Copilot 制定计划。只有当任务确实能够拆分时并行智能体才更有价值。但需要注意并行智能体会同时消耗 AI Credits因此应按需使用而非默认开启。只启用真正需要的工具。工具以及 MCP Server 功能十分强大但过多的工具也会增加额外上下文。只启用当前任务需要的工具关闭暂时不用的部分。你还可以使用 GitHub Copilot Agent Finder 来帮助精简工具使用。关注你的使用情况。AI Usage 页面可以帮助你了解不同功能和模型分别消耗了多少 AI Credits。在 Copilot CLI 中会话级别的使用统计也能帮助你及时发现成本较高的使用模式。完整指南请参阅 《如何充分利用你的 AI 积分额度》。开始使用Auto 模型选择现已在所有支持的 Copilot 产品体验中正式提供。想了解更多信息请参阅 Auto Model Selection 官方文档也欢迎前往 Copilot Discussions 分享你的使用反馈。未来我们将继续从整个 Copilot 系统层面提升效率让更多 AI Credits 真正用于完成有价值的工作而无需你亲自调整每一次模型选择。本文由**Nhu Do和**Aashna Garg共同参与撰写。