news 2026/7/10 16:49:53

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Armin Ronacher 的警告:为什么 Opus 4.8 和 Sonnet 5 写代码反而更“挑工具“了?

TL;DR

Flask 作者 Armin Ronacher 发现一个反直觉现象:最新的 Claude Opus 4.8 和 Sonnet 5 在使用自定义编辑工具时,正确率反而不如旧模型。它们会在 tool call 中发明不存在的字段。原因很可能是 RL(强化学习)训练过度优化了 Claude Code 内置工具的行为模式,导致第三方工具"水土不服"。

1. 一个让人困惑的 bug

Armin 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_string+new_string的精确替换。经过大量 RL 优化后,模型学会了高效使用这个特定工具。

但问题是:Pi 的 edit 工具虽然功能类似,但 API schema 不同。新模型在 RL 训练中"背下"了 Claude Code 工具的参数结构,当遇到 Pi 的不同 schema 时,它会不自觉地"补齐"那些在 Claude Code 里存在、但在 Pi 里不存在的字段。

这本质上是一种schema overfitting——模型学会了工具的具体实现细节,而不是工具的抽象语义。

Armin 还指出了一个对称的现象:OpenAI 的 Codex 使用的是apply_patch机制(类似 git diff),OpenAI 同样在训练中优化了模型对这个工具的使用。这意味着 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 Tools
  • Anthropic: Text Editor Tool 文档
  • Simon Willison 对此的讨论
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/10 16:47:53

ARM与X86平台性能优化:Msnhnet Neon/AVX加速技术原理解析

ARM与X86平台性能优化:Msnhnet Neon/AVX加速技术原理解析 【免费下载链接】Msnhnet 🔥 (yolov3 yolov4 yolov5 unet ...)A mini pytorch inference framework which inspired from darknet. 项目地址: https://gitcode.com/gh_mirrors/ms/Msnhnet …

作者头像 李华
网站建设 2026/7/10 16:46:13

Blade宏系统详解:简化图形编程的5个高级技巧

Blade宏系统详解:简化图形编程的5个高级技巧 【免费下载链接】blade Sharp and simple graphics library 项目地址: https://gitcode.com/gh_mirrors/blade3/blade Blade作为一款Sharp and simple graphics library,其宏系统为开发者提供了强大的…

作者头像 李华
网站建设 2026/7/10 16:45:42

ArkTS Icons文件图标主题:如何美化你的VSCode开发环境

ArkTS Icons文件图标主题:如何美化你的VSCode开发环境 【免费下载链接】arkTS 🧩 VSCode鸿蒙ArkTS插件 ✨✍️ 支持各种补全/跳转 ⛺️ 支持codelinter检测代码错误 🎵 VSCode HarmonyOS ArkTS plugin for personal use ✨✍️ supports sour…

作者头像 李华
网站建设 2026/7/10 16:45:11

Msnhnet模型转换全攻略:Pytorch/Keras模型一键迁移实战

Msnhnet模型转换全攻略:Pytorch/Keras模型一键迁移实战 【免费下载链接】Msnhnet 🔥 (yolov3 yolov4 yolov5 unet ...)A mini pytorch inference framework which inspired from darknet. 项目地址: https://gitcode.com/gh_mirrors/ms/Msnhnet M…

作者头像 李华
网站建设 2026/7/10 16:44:24

iir1低通、高通、带通、带阻滤波器配置完全指南

iir1低通、高通、带通、带阻滤波器配置完全指南 【免费下载链接】iir1 DSP IIR realtime filter library written in C 项目地址: https://gitcode.com/gh_mirrors/ii/iir1 想要在C项目中实现高性能的实时数字信号处理吗?iir1库为您提供了完整的解决方案&…

作者头像 李华