Armin Ronacher 的警告:为什么 Opus 4.8 和 Sonnet 5 写代码反而更“挑工具“了?

Armin Ronacher 的警告:为什么 Opus 4.8 和 Sonnet 5 写代码反而更“挑工具“了?
TL;DRFlask 作者 Armin Ronacher 发现一个反直觉现象最新的 Claude Opus 4.8 和 Sonnet 5 在使用自定义编辑工具时正确率反而不如旧模型。它们会在 tool call 中发明不存在的字段。原因很可能是 RL强化学习训练过度优化了 Claude Code 内置工具的行为模式导致第三方工具水土不服。1. 一个让人困惑的 bugArmin Ronacher 最近在开发 Pi一个编程辅助工具时遇到了一个奇怪的 bug。新模型有时会在 Pi 的 edit 工具调用里塞进额外的、不存在的字段。他写道。具体来说Opus 4.8 发出的 tool call JSON 里包含了一些 Pi 的 API schema 里根本没有的 key——比如edits[]数组里凭空多出来的属性。编辑本身通常是对的但参数格式不对Pi 只能拒绝并让模型重试。真正让 Armin 警觉的是这不是小模型才会犯的低级错误。出问题的是 Opus 4.8 和 Sonnet 5——Anthropic 目前最强的两个模型。而更早的模型Opus 4、Sonnet 3.5反而没有这个问题。换句话说模型越新、越强在这个特定任务上反而越差。2. 推测原因RL 训练的过拟合Armin 给出的解释很有意思Anthropic 的新模型在 RL强化学习训练阶段被大量训练使用 Claude Code 内置的编辑工具。Claude Code 的 edit 工具用的是 str-replace 机制——old_stringnew_string的精确替换。经过大量 RL 优化后模型学会了高效使用这个特定工具。但问题是Pi 的 edit 工具虽然功能类似但 API schema 不同。新模型在 RL 训练中背下了 Claude Code 工具的参数结构当遇到 Pi 的不同 schema 时它会不自觉地补齐那些在 Claude Code 里存在、但在 Pi 里不存在的字段。这本质上是一种schema overfitting——模型学会了工具的具体实现细节而不是工具的抽象语义。Armin 还指出了一个对称的现象OpenAI 的 Codex 使用的是apply_patch机制类似 git diffOpenAI 同样在训练中优化了模型对这个工具的使用。这意味着 Codex 可能在 Anthropic 风格的 str-replace 工具上也表现不佳。3. 这会带来什么问题第一个问题是工具碎片化。如果每个 AI 公司的模型都被优化去使用自家工具的特定 schema那么第三方工具开发者就会面临一个两难选择为每个模型维护一套不同的工具 API适配 Claude Code 的 str-replace、Codex 的 apply_patch、以及其他变体或者接受某些模型在自家工具上表现不佳Armin 写道“这是否意味着像 Pi 这样的第三方编码工具应该实现多套编辑工具只为让用户选择的底层模型能以最佳性能运行”第二个问题是评测失真。如果一个模型在标准 benchmark 上表现极好但在你实际使用的工具链上频繁出错那个 benchmark 分数对你就没有意义。模型的真实能力高度依赖于它被训练时所使用的工具环境。第三个问题是模型升级的倒退风险。Armin 的经历说明从旧模型升级到新模型不一定总是正向的——如果你使用的是非标准工具链新模型的 RL 优化可能反而让你倒退。4. 开发者应该怎么做对于使用 Claude Code / Codex 等官方工具的开发者这个问题对你影响不大——新模型的工具调用优化恰恰是为你做的。对于使用第三方编码工具Pi、Aider、Continue 等的开发者升级模型前先在自己的项目上做一个小范围测试看工具调用成功率是否下降。Armin 的经验是不要假设新模型在所有维度上都更好。对于构建 AI 工具的开发者考虑实现多套工具 API或者至少监控不同模型在工具调用上的错误率分布。如果发现某个模型在特定工具上频繁出错可以考虑在 system prompt 中加入更详细的 schema 说明——但这不一定能完全解决 RL 训练带来的 bias。5. 更深一层的思考Armin 这个发现触及了一个更根本的问题当模型能力越来越强时它们到底是变得更通用还是变得更专用RL 训练的本质是做对的事给奖励。但如果奖励信号只来自特定工具环境下的表现模型学到的就不是如何正确调用工具这个通用能力而是如何在某个特定工具的 API 格式下拿到高分。这不是模型的错——这是训练目标的必然结果。Simon Willison 在转发这篇文章时评论说模型在自家工具上表现出色但在第三方工具上可能意外退化——这个问题短期内看不到解决方案。因为 AI 公司没有动力去优化模型在竞争对手工具链上的表现。对于整个 AI 编码工具生态来说这可能是比哪个模型更强更需要关注的问题。6. 参考资料Armin Ronacher: Better Models: Worse ToolsAnthropic: Text Editor Tool 文档Simon Willison 对此的讨论