对人类来说在代码中很容易一扫而过的东西,智能体却会将其视为行动号召。它们并不懂得分辨,会紧紧抓住在编码旅程的规划和研究阶段所读取的文件中随处可见的那些内容。
随着智能体通过工具和技能获得的自主能力不断增强,其开展支线任务的能力也成比例地扩大。过时的规范、早已解决的 bug 和滞后的文档不再静静躺在代码库中被遗忘的角落,而是被无意中作为上下文摄入,从而误导下一波编码者——也就是智能体。这种误导并非没有代价:最好的情况下,它只消耗 token、步骤和时间;最坏的情况下,它会让智能体分心并基于虚假信息建立认知,导致在实现过程中做出错误的逻辑和决策。
要在每月数百万次会话中衡量智能体落入这些陷阱的频率,人工审查是不可能的——我们需要一种可从代码本身推导出的客观信号。内联的 TODO(bug/...) 注释提供了完美的代理指标。TODO 往往在底层 bug 被解决或放弃很久之后仍被遗留下来,而关联的 bug 工单则充当权威记录。通过将智能体遇到的每个 TODO 与该 TODO 的 bug 状态以及用户的提示进行交叉比对,我们就能大规模地自动区分有效工作与浪费的绕路。
代价
借助数千名工程师、超过数亿个智能体步骤的分布式追踪,我们量化了代码库中 TODO 干扰的影响以及智能体如何对其采取行动:
- 近七分之一会话会接触到(13%): 在数百万次文件读取会话中,13% 的会话让智能体接触到内联的 TODO(bug/...) 或 FIXME(bug/...) bug 引用。
- 6% 触发后续操作——其中 83% 并非用户要求: 虽然智能体在 94% 的遭遇中忽略了该注释,但在 6% 的情况下智能体采取了针对该 bug ID 的后续操作。这些操作中超过五分之四(83% 的会话)完全不是用户要求的——开发者并没有要求处理该 bug。
- 41% 追查已关闭的死胡同,57% 触发范围蔓延: 将非请求偏离与实时 bug 状态交叉比对,暴露出两种不同的失败模式:
- 超过五分之二的非请求偏离追查的是已经关闭的工单——其中已修复/已验证的 bug 占 32%,过时/不予修复的死胡同占 9%,另有 2% 触及重复或受限工单。
- 在超过一半的非请求偏离中,bug 仍处于打开状态(NEW/ASSIGNED/ACCEPTED),智能体扩大了工作范围(61% 仅查询;39% 编辑代码)来调查或修改开发者从未要求触碰的问题。
在控制开发者、代码库复杂度、任务类型、模型层级、读取文件数量、初始提示长度以及 bug 引用出现的步骤后,使用带开发者聚类标准误的多向固定效应回归,我们发现非请求的 bug 偏离会带来大量额外开销(所有统计显著性 p<0.0001)。每次会话:
- 步骤多 70%
- token 多 77%
- 等待时间多 105%
实际表现
过时偏离: 在以下轨迹中,我们可以观察到这种漂移如何发生。在调查一个无关 bug 时,智能体查看了 SurfaceControlTest.java 并看到 // TODO(bug/XXX)
这个 bug 虽然已在 2023 年修复,却仍滞留在代码库中,导致后续调查在多个步骤中分心,智能体深入挖掘该 bug 以了解更多。
急切的智能体: 在该轨迹中,智能体在调查的 bug 中遇到一个 TODO,并(未经要求地)决定“修复”代码
智能体针对该 bug 执行了多次代码搜索和内部知识搜索查询,最终导致智能体修改了 ModelDownloaderV1 代码。在轨迹的后续部分,人类对范围蔓延提出了质疑。
模型在承认这是不正确的范围扩大时表示:
虽然在这两个案例中都只是微不足道到轻微的偏离——但它们确实是真实的干扰,消耗了时间、token 和人工干预。
我们做了什么
作为大规模应对这一发现的一部分,我们创建了智能体来全面扫描我们的代码库,找出代码中被标记为已修复或已过时的 bug 引用以进行清理。然而仅这一步还不足以确定代码库中的 TODO 是否具有实际作用。智能体必须更进一步,查看 bug、文件以及代码库变更的历史,有时跨越数年的历史。只有在智能体能够确认该 TODO 及其背后的意图已经过时的情况下,我们的智能体才会提交变更以供审核,将其从代码库中删除。得益于这种多层方法,我们的 TODO 清理器在过去 6 个月中已移除数千条真正过时的引用,人工审核接受率超过 95%。
分心的重量。
总而言之,随着我们让智能体承担越来越宏大的问题,“对智能体友好的代码库”需要的不仅仅是热路径中的代码保持健康。代码库中被遗忘的角落如今比以往任何时候都更对智能体征收着沉重的税负。
诸如预提交分析器、全语料扫描器以及用于修复死 TODO 的自动化编码智能体等工具,提供了开箱即用、可扩展的解决方案来应对这一税负,使智能体能够在一个更健康、无干扰的代码库中蓬勃发展。
那些曾经被搁置以清理遗留债务、但因被认为价值低而降低优先级的项目,需要重新评估,因为新的智能体正在你的代码库上大规模行动。
发布于: 上一篇 下一篇 相关文章
移动
Web
教程
操作指南
使用 A2UI 与 CopilotKit 智能体构建生成式 UI 应用
2026年10月29日
AI
云
公告
问题解决
宣布 Apigee hybrid 支持 MCP:在你自己的集群中运行的智能体工具
2026年10月14日
AI
云
操作指南
行业趋势
每任务成本:使用廉价分类器在 Gemini 模型和思考级别之间进行路由
2026年11月3日
移动
Web
操作指南
问题解决
在 GCP 上使用多智能体集群构建对话式商务:一个可运行的原型
2026年10月27日