删掉没人用的行号,GitHub 让 Copilot 推理成本降约 3%
GitHub 公布 Copilot 智能体降本实验:单次工具调用的 token 数不是有效指标,压缩过头反而让任务更贵。
GitHub 公开了为降低 Copilot 智能体(Agent)成本所做的改动,也包括失败的尝试。公司的核心观点是:单次工具调用消耗的 token 数量不是有意义的效率指标。如果精简后的工具返回值漏掉了智能体需要的信息,它会追加调用,任务反而更慢、更贵。
最典型的例子是 RTK(Rust Token Killer),这个工具会在智能体读取前压缩 shell 输出。在 GitHub 自己的运行框架和基准配置下,RTK 确实缩短了部分返回内容,但当被省略的文本恰好重要时,模型会重新打开原始输出,或者再跑一遍命令。这些补救步骤增加了对话轮数,并把更多上下文带入后续流程,结果是任务平均消耗更多 token、耗时更长。GitHub 强调,该结论只适用于其测试的集成方式与工作负载,不能推广到所有输出压缩方案。
保守的选择性压缩器
基准测试分析显示,安装、构建、测试和 lint 的输出往往包含大量重复噪声,而类源码输出和任意命令结果更可能含有智能体需要的信息。基于这一点,团队做了一个选择性压缩器。早期版本过于激进:压缩 git diff 后智能体频繁回头查看原始内容,于是这条过滤规则被移除。正式上线的版本中,智能体可以通过一条直接的恢复路径取回完整原文。离线任务中没有检测到具有统计显著性的任务成功率下降,线上实验中平均成本略有降低。
最干净的一项优化来自读取文件内容的 view 工具。此前它会在每一行前加上行号,而当前的编辑工具靠匹配上下文代码定位改动,根本不用行号,这些前缀纯属浪费。删除之后,离线智能体编程基准中的模型推理成本下降约 5%,成功率仍在正常波动范围内,编辑失败没有增加。随后在 Copilot CLI 用户中的线上实验显示,人均每日模型推理成本下降约 3%,所跟踪的质量与满意度指标没有出现明显退化。
文中示例来自 Copilot CLI,但 GitHub Copilot 应用和 Copilot 代码审查使用同一套底层框架,同样受益。完整内容见 GitHub 博客。