你让 AI 写代码,你的提示词可能正在悄悄让它多花 18 倍的钱——这件事被一篇论文彻底扒开了
你让 AI 写代码,你的提示词可能正在悄悄让它多花 18 倍的钱——这件事今天被一篇论文彻底扒开了
用 Claude Code 写代码这件事,大多数人关心的是「模型强不强」「上下文够不够」,但有一件事很少有人认真算过:你的提示词,正在决定 AI 多跑多少冤枉路。
最近有一篇论文专门研究这件事,标题叫《Same Task, Different Work: Prompt-Induced Waste in Coding Agents》,作者做了 4644 次对照实验,覆盖 24 个真实编程任务、7 个推理模型、2 个主流 agent 框架。结果发现:同一个任务,不同的提示词写法,可以让 AI 的实际消耗相差 18 倍——而成功率完全一样。
问题出在哪?两种浪费,两种机制
论文把提示词造成的浪费分成两类,它们走的是完全不同的路子。
第一类叫「思考太多」。当你让 AI「写几个方案对比一下」「多考虑几种可能性」,它真的会去生成 3 到 4 个完整方案,然后全部跑一遍再选一个。整个过程中间产生了大量 token 消耗,但没有提升任何成功率。数据显示,这类写法比最优路径多消耗 2.4 到 7.4 倍的推理资源。
第二类叫「反复验证」。当你写「确保万无一失」「一定要验证清楚」「给我最准确的答案」,AI 会进入一种高强度自我审查模式。结果是:同一个任务,最高消耗的跑法比中位消耗跑法多花 18 倍;工具调用次数多 2.5 倍;实际耗时多 3 倍。而最后的成功率,和干净利落跑完的没有任何区别。
两类浪费的区别在于:第一类的账单主要体现在 token 数量上,第二类的账单体现在工具调用次数和等待时间上。优化思路完全不同。
框架本身也在放大浪费
这篇论文还测了两个真实框架:PI.DEV 和 Claude Code。结果发现,即使 Prompt 写得一样,框架不同也会造成 5 到 30 倍的效率差异。
原因在于框架的静态前缀大小不同、默认行为不同。Claude Code 的静态前缀比 PI.DEV 大 12 到 15 倍,默认的验证频率和重试策略也不同。所以同样是「写一个排序函数」,在两个框架下消耗可能差出一个数量级。
这意味着什么?优化 Prompt 很重要,但选框架同样重要。如果你发现 Claude Code 比别家工具 token 消耗大很多,先别急着压缩 Prompt,先看看框架本身的默认行为是不是那个更大的浪费来源。
怎么写才不浪费
论文给出了一个核心原则:bounded efficiency——有边界的效率。意思是好的 Prompt 不是越详细越好,而是恰好定义了任务范围、最小改动目标和停止条件。
具体来说,三句话可以解决大部分问题:
第一句定义范围:「这个函数只需要处理整数数组,不要改变函数签名,不要增加额外依赖。」——这句话把 AI 探索的空间锁死,省掉大量无用功。
第二句指定最小改动:「只改一行,让这个边界情况通过测试,其他地方不动。」——减少 AI 的「发挥空间」,让它直奔主题。
第三句给出停止条件:「如果测试全部通过就停止,不需要额外优化。」——防止 AI 在已经完成之后继续「锦上添花」。
加上这三句的 Prompt,保留了完整的诊断和验证能力,但避免了论文中测到的所有主要浪费机制。
你的团队可能每天都在多花这些钱
回到开头那 18 倍的差距。大多数团队没有意识到这个问题,是因为他们的计费账单不会把「成功执行一次任务」作为分母——他们只看到总 token 消耗,然后抱怨模型太贵。
但这篇论文的核心洞察是:token 数量和缓存计数只是测量指标,不是优化目标。真正的效率是「每成功完成一个任务花多少钱」,而这个数字里有大量浪费来自 Prompt 措辞和框架选择,而不是模型本身。
下一次当你发现 AI 跑一个简单任务花了几万 token,先问自己两个问题:Prompt 里是不是让它「多想了几步」?框架的默认行为是不是在自动帮你做额外的验证?这两个问题的答案,可能比换模型更值得优化。
下一步你可以做的:打开你最近十个 Claude Code 会话,随机抽一个,把 Prompt 里的「多考虑」「多验证」「多方案」这类措辞删掉,看一看任务完成率和 token 消耗的变化。如果有明显的成本差异,这就是你们团队的真实浪费数字。
评论区
登录后可评论。