重构代码,让 Agent 的 Token 成本暴跌 83%

The Economic Benefit of Refactoring

重构代码,让 Agent 的 Token 成本暴跌 83%

我构建了一个由 Agent 完全生成的 15 万行 Rust 应用,其中数据访问层竟膨胀到单个文件 1.7 万行。为了验证重构的经济价值,我设计了一项实验:在每一步重构后,让全新的 Agent 执行相同的变更任务,以排除人类学习效应的影响。结果显示,随着代码被拆解为更小的模块,Agent 读取的输入 Token 从 15.9 万骤降至 2.7 万,降幅高达 83%。这证明在 Agent 工程时代,良好的代码结构能显著降低未来的 Token 消耗成本,重构不再是单纯的代码整洁,而是直接的经济收益。

重构的目标是现在投入 Token 进行优化,从而降低未来工作的 Token 消耗成本。
  1. Viliam1234

    我觉得挺有意思的是,程序员的最佳实践在大多数 IT 公司里被无视,如今却被重新发明成了 AI 的最佳实践。

    无聊版:文档应该写在代码里,而不是上传到公司 SharePoint 服务器的外部 Word 文档中。

    激动版:AI 的文档应该写在代码里,而不是上传到公司 SharePoint 服务器的外部 Word 文档中。

    无聊版:你应该给开发人员项目的宏观图景,而不是只用 Jira 任务来微观管理他们。

    激动版:你应该在 CLAUDE.md 中给 AI 项目的宏观图景,而不是只用提示词来微观管理它。

    无聊版:重构能让开发人员在长期内更高效。

    激动版:重构能让 AI 在长期内更高效。

  2. rocky_raccoon

    这是一篇很棒的文章,这才是人们应该撰写 AI 内容的方式:具体、扎根于工具的实际使用场景,并且有量化数据。现在有太多糟糕的 AI 评论,内容极其模糊,脱离任何实际用例,或者由根本不使用这些工具的人撰写。能看到一篇批评文章指出“这是 AI 不擅长的一件事,并有数据证明”,而不是泛泛地比划“我认为 AI 对社会有问题”,真是令人欣慰。

    虽然侧重点不同,但我同样喜欢另一篇研究报告,它采访了博科圣地(Boko Haram)成员,了解他们如何利用 AI 协助恐怖活动。网上那些没完没了的争论往往毫无产出,而具体详实的报道则让人耳目一新。

    https://casp.ac/reports/ai-enabled-terrorism

  3. whats_a_quasar

    我觉得这是那种人类在环(human in the loop)不可或缺的情况。

    让代理(agent)进行重构确实有道理,因为一个负责审查的 LLM 能发现那个专注于初始任务输出的‘生成器’LLM 遗漏的东西。

    但是,审查代理真的能心里装着这个项目实际上是什么吗?能理解所有代码如何协同工作以完成相关任务吗?换句话说,哪些代码部分是冗余的,或者可以变得更优雅?

    让编码代理重构你的代码库,也许就像让创伤外科医生来提高你的运动能力一样。代理需要非常宏观的视角才能做好这件事。

    我想表达的部分观点是,仅仅把大文件拆分成多个文件,在缺乏对哪些代码应该在一起、哪些可以提取为工具函数等理论支撑的情况下,只是一种表面意义上的重构。拆分文件究竟像是分解因数,还是像把一个较大的数字拆成几个较小的数字,最后还是要加起来?

    我想表达的一个好例子是,代理往往并不~真正~理解整个系统。它们可能会实现一个存储和计算某样东西的系统,而这东西其实已经通过 API 获取了。人类通常拥有双重视角——对项目的整体感知,以及(当我们专注于某项任务时)一把精准的手术刀:‘哦,如果我们只看这个 JSON,它已经有一个包含这些数据的键了’。

  4. firasd

    其好处远不止减少 Token 消耗。紧凑的上下文还能促进更好的推理,如果你能将更多层加载到单个上下文中,就能实现跨层的智能;而编写实现这一点的软件,结果就是产生更正确的软件——这种软件具有更强的泛化能力,不仅对测试用例正确,对这些用例的插值和外推也更有可能是正确的。

    向良好抽象方向重构的力量比人们意识到的要大。信息论和贝叶斯数学可以为此提供支撑。

    这有点像是神圣的巧合:那些在经济上和能源效率上更易于处理和运行的软件,往往也更正确。

    这一切都关乎降低你代码的熵。https://benoitessiambre.com/entropy.html

  5. pmg101

    能有一些相关数据非常有趣。

    这与我的经验相符:LLM 非常受益于结构良好的代码,但它们并不特别擅长创建这样的代码。

    我想大多数人类开发者也是如此!

同日更多故事

2026-07-30