GitHub Copilot 改造上下文管线:同样的 Token,干更多活
GitHub 公开了 Copilot 在上下文处理和模型路由层面的一系列优化,目标是让每个 Token 都用在刀刃上——这背后是按量计费时代下,平台与开发者共同面对的成本现实。
GitHub Copilot 改造上下文管线:同样的 Token,干更多活
GitHub 昨天在官方博客发了一篇技术 Post,标题直白:《Getting more from each token》。讲的事情也很直接——Copilot 重做了上下文处理和模型路由这套底层管线,让每次会话里真正用在"有用工作"上的 Token 比例更高。
这不是一次产品功能更新,而是一次工程层面的提效。但放在今年 6 月这个节点看,意义就不一样了。要知道,6 月 1 日 GitHub 刚把 Copilot 个人方案从"按请求次数"切到"按 Token 计费",Reddit 上炸开了锅,有重度用户算出账单要从 44 美元飙到 750 美元。在这种背景下,GitHub 出来讲"我们怎么帮你省 Token",潜台词非常清楚:补贴时代结束了,平台自己也得勒紧裤腰带,顺便教用户怎么花钱。
一次会话里,到底有多少 Token 是"浪费"的
先说结论。GitHub 自己披露的数据是,在新的上下文管线下,同一类任务的平均 Token 消耗下降了 20%–35%(不同模型、不同任务类型差异较大),而代理任务(Agent Mode)的端到端成功率反而提升了若干个百分点。
这个数字怎么省出来的?要先理解 Copilot 在一次 Agent 会话里 Token 都花在哪儿了。一个典型的代理任务,假设是"修复某个鉴权模块的 bug",输入 Token 通常包括:
- 系统提示词(System Prompt)
- 工具描述(Tool Schemas,比如 MCP 服务器注册的全部工具签名)
- 自定义指令(
AGENTS.md、.github/copilot-instructions.md) - 当前打开的编辑器标签页内容
- 用户附加的文件、选区
- 之前几轮对话的完整历史(包括每次工具调用的输入输出)
- 当前轮的用户消息
这堆东西在每一轮 LLM 调用里会被反复发送。多轮下来,越靠后的轮次,光是"重放历史"就能占掉 60% 以上的输入 Token。这也是为什么很多开发者吐槽,跑一个稍微复杂点的任务,几千 credits 一会儿就没了。
GitHub 这次主要动了四个地方。
一、上下文裁剪:从"全量塞"到"按需取"
过去 Copilot Agent 在每一轮都倾向于把所有可见上下文一股脑发给模型,理由很简单——模型看到的越多,幻觉越少。但这套逻辑在长会话里崩盘得很快。
新的管线引入了一个分层裁剪策略:
- 工具描述按需加载:之前所有注册的 MCP 工具签名都会塞进 system message,现在改成根据当前意图动态筛选。比如你正在写测试,文件系统类工具的描述会保留,而部署类工具就先藏起来。等任务真的需要时再注入。
- 历史轮次摘要化:对超过一定深度的轮次,工具调用的原始输出会被压缩成结构化摘要。一个
grep跑出来 200 行结果,下一轮可能只保留"在 5 个文件中匹配了 12 处,主要集中在auth/目录"这样的提炼。 - 文件内容的去重与切片:同一个文件如果在前后轮都被读取,只保留最新版本的差异;超大文件按 AST 切片,只把相关函数发过去。
这套做法本质上是把过去靠用户自己用 /compact、/clear 手动维护的事情,部分自动化了。代价是裁剪不当时模型可能会丢失关键信息,所以 GitHub 同时加了一层"回拉机制"——如果模型在生成中表现出对裁剪掉的上下文有需求(比如反复尝试读取已经摘要化的内容),管线会自动把原始信息重新加载回来。
二、模型路由:小模型干小活
这是 GitHub 今年讲得最多的一件事,也是 Coinbase 的 Brian Armstrong 反复强调的方向——未来 12 到 18 个月,80% 的 AI 工作负载会迁移到便宜 99% 的模型上。
Copilot 的新路由机制在 Agent 内部把任务拆成多个子步骤,根据每一步的难度动态选模型:
- 意图分类、文件检索、简单的 grep/find → 轻量模型(GPT-4.1 mini 或同档位的廉价模型)
- 代码理解、跨文件重构、bug 定位 → 中端模型(Claude Sonnet 系列)
- 复杂规划、架构决策、长链推理 → 前沿模型(Claude Opus、GPT-5 高推理模式)
关键是,这个路由对用户是透明的。你在 VS Code 里选了 Sonnet,并不意味着每一次工具调用都用 Sonnet——背后的"管家"会把那些不需要 Sonnet 的轻活儿丢给小模型,最后只在真正需要推理的环节调用你选的主模型。
这套思路其实业界已经默认了。Cursor、Cline、Windsurf 都在做类似的事。但 GitHub 的优势在于规模——他们每天处理超过 7100 万个 Actions Jobs,Copilot 后台的请求量更大,路由模型的训练数据是别人羡慕不来的。
三、缓存命中率优化
这一条容易被忽略,但效果立竿见影。
各大模型厂商(Anthropic、OpenAI、Google)现在普遍支持 Prompt Caching:相同前缀的 Token 在 5–10 分钟内重发,价格只有原价的 10%–25%。Copilot 把这件事用到了极致:
- 在多轮会话中,尽量保持 system prompt 和工具描述的前缀稳定,把动态变化的部分(用户当前消息)放在末尾
- 用户在不同模型间切换时,原本会让缓存失效,新管线尝试在路由层维持相同模型的连续性
- 内部多步骤推理时,子任务之间复用同一份上下文模板
GitHub 在博客里给出的数据是,缓存命中率从优化前的约 40% 提升到了 70% 以上。对于长会话的重度用户来说,这一项可能就是账单减半的关键。
四、Agent 自身的"自律"
还有一块是行为层面的优化。新的 Agent 会更倾向于:
- 一次性批量读取相关文件,而不是一次读一个、然后再决定下一个
- 写代码前先做 plan,避免改 A 坏 B 的反复
- 在多文件改动时优先用 patch 工具而不是整文件重写
这些行为改进来自于 GitHub 用大量真实 session 做的 RLHF 训练。说白了,他们用平台沉淀的数据,反过来训练出了一个更省 Token 的 Agent"性格"。
这套优化对开发者意味着什么
实话说,这次更新的工程含金量是高的,但它不会改变"AI 编码越来越贵"这个大趋势。
6 月的计费切换之后,行业的共识已经很清楚了:补贴时代结束,账单回归真实成本。GitHub 自己也承认,他们过去一直在默默承担推理成本,一次简单提问和一个跑几小时的自主任务收同样的钱,这个模式没法持续。
那作为开发者,怎么用?几个我觉得实操性强的建议:
- 不要乱开 MCP 工具集。每个 MCP 工具的描述都是常驻 Token。GitHub 文档里专门提到了这一点:按工作流启用,而不是全部打开。
- 认真写
copilot-instructions.md。把项目结构、命名约定、输出预期写清楚,Agent 就不需要靠读 20 个文件来"摸清楚你这个仓库长啥样"。 - 善用 plan mode。CLI 里的
/plan,VS Code 里的 Plan 模式,让 Agent 先出方案再动手,能显著降低反复改的次数。 - 阶段之间开新会话。设计完成进入实现阶段时,开新会话。前一阶段的探索性上下文带过来只会污染 Agent 的判断。
- 盯着
/usage和/chronicle tips。CLI 里这两个命令是真省钱,前者看实时消耗,后者分析你过去的会话给出优化建议。
行业的另一只靴子
值得一提的是,GitHub 这次优化的方向,和 Hugging Face CEO Clement Delangue 最近反复讲的"多模型未来"是同一个方向——但走的路完全不同。
Delangue 的方案是本地化、开源小模型承接大部分任务,前沿 API 仅作兜底。引用斯坦福的数据,开源小模型在真实对话和推理上的准确率已经从 2023 年的 23.2% 涨到了 71.3%。中国实验室开源的 DeepSeek V4 在编程基准上已经能掰手腕 Claude Opus,价格只有三十分之一。
GitHub 的方案则是云端路由——同样的目标(让 80% 的工作落到便宜模型上),但选择在自家平台内完成,而不是让用户跑路到本地。
哪条路赢,现在还看不清。但有一点确定的:单一前沿模型包打天下的时代过去了。对于需要在多个模型之间频繁切换的开发者来说,统一接入层的价值正在上升。我们 OpenAI Hub 一直在做的也是这件事——一个 Key 调通 GPT、Claude、Gemini、DeepSeek 等主流模型,兼容 OpenAI 格式,国内直连,省去为每个供应商单独维护账号、配额和网络的麻烦。在按 Token 计费成为新常态的当下,把模型选择权握在自己手里,比什么都重要。
写在最后
这次 Copilot 的更新,技术上扎实,时机上微妙。它给了重度用户一个喘口气的窗口,但没改变"算力越来越贵"这个底层事实。
Gartner 的 Arun Chandrasekaran 说得很直接:Copilot 只是开端,随着 Agent 工作流推高算力消耗,更多企业会转向按量计费。当补贴退潮,能源和算力正在取代模型能力,成为新的瓶颈。
所以这场"省 Token 大作战",平台、模型厂、开发者,谁都跑不掉。
参考来源
- GitHub Blog: Getting more from each token — GitHub 官方公布的 Copilot 上下文处理与模型路由优化细节
- GitHub Docs: 提高代理质量以优化 AI 使用情况 — 官方关于如何降低 Copilot Token 消耗的最佳实践
- Reddit 讨论: Copilot 更新后 Token 消耗增加 — 开发者社区对计费切换后实际消耗变化的真实反馈
- Hugging Face: 开源小模型性能追踪 — 多模型未来趋势下的开源模型生态参考
