模型越强,工具调用越差:Armin Ronacher 发现了 AI 编程工具最尴尬的问题

OpenAI 和 Anthropic 都在告诉开发者:”我们的模型更强了。”但资深开发者 Armin Ronacher 最近的发现,让这个说法变得有点尴尬——新模型在某些工具调用场景下,比老模型更差

一篇 146 分的技术文章

Ronacher 是 Flask 和 Pocoo 的作者,在 Hacker News 上发布了《Better Models: Worse Tools》,获得了 146 分。他的核心发现:

新版 Claude(Opus 4.8 和 Sonnet 5)在调用 Pi 编辑器的 edits[] 嵌套数组工具时,会发明不存在的字段。比如 requireUniqueoldText2newText2typekindin_file 这样的键,schema 里根本没有,模型自己编出来的。

这个问题只在多轮 agentic 场景下出现,单轮简单提示词完全正常。而且老版 Claude 模型(Opus 4.5)根本没有这个问题。

为什么模型会”发明”工具参数?

Ronacher 挖得很深。他的分析指向了 Anthropic 的 RL 训练环境——Claude Code 本身

Claude Code 的客户端代码是闭源的,但可以从 minified 代码里看到它做了什么:

  • 参数别名容忍:既接受 old_str(旧版 schema),也接受 old_string(新版 schema),还接受 path 作为 file_path 的别名
  • 自动修复 Unicode:修复破损的 \uXXXX 序列
  • 静默过滤未知键:工具 call 里多了陌生的字段?直接忽略
  • 不使用 strict 模式:因为 strict 模式对工具定义有复杂度限制,会导致 API 请求失败

换句话说,Claude Code 的 harness 极度宽容,即使模型生成了略微畸形的工具调用,整个任务仍然能完成,RL 仍然会给 reward。

Ronacher 的核心判断:

“If reinforcement learning happens in a harness like that, or a simulation of one, then slightly malformed tool calls can still complete the task and receive reward.”

这就形成了一个非常反直觉的现象:Claude Code 越成功,Anthropic 的模型就越被训练成适应 Claude Code 特定 schema 的形状。其他工具 harness 如果 schema 不同,就变成了”离分布”(off-distribution),模型反而更难正确调用。

真正值得注意的几组事实

1. Opus 4.8 和 Sonnet 5 都退化了,但原因不同

Ronacher 观察到,这两个模型都有相同的工具调用退化问题,但退化方式不同。Opus 4.8 的”先验”是:编辑工具可能有一个额外可选字段,但不知道叫什么名字,所以每次随机生成一个。Sonnet 5 可能机制不同,但结果是类似的——同一技术方向的两代模型,都有同样症状

2. 开启 strict 模式可以修复,但 Anthropic 自己不用

严格模式下,Anthropic 服务端会拒绝采样 schema 不允许的键,退化完全消失。但 Claude Code 没有使用 strict 模式,原因是 strict 对工具定义的复杂度限制会导致 API 失败。换句话说:Claude Code 为了功能完整性,主动放弃了正确的工具调用。

3. Codex 模型没有这个问题

Ronacher 测试了所有可用的 Codex 模型,没有发现这种退化。OpenAI 的模型没有在 Claude Code 的环境里做 RL,所以没有学会”宽容 harness”的那些习惯。

这对整个 AI 工具生态意味着什么

Ronacher 提出了一个非常不舒服的问题:

“Tool schemas are somewhere in the distribution and some shapes are close to what the model saw during post-training and some are far away.”

过去我们假设:只要工具 schema 写清楚,模型是通用推理器,会老老实实按 schema 调用。但现在这个假设在动摇——模型不是在遵循 schema,而是在遵循它见过的最类似的训练样本

如果 Anthropic 的 RL 继续在 Claude Code 上迭代,其他工具 harness 将面临越来越大的适配压力。Ronacher 的原话是:

“The more post-training happens inside one dominant harness, the more every other harness will have to inherit its quirks.”

这意味着 AI 编程工具的战场,不只是模型能力的战场,也是谁能主导 RL 训练环境的战场。Claude Code 现在不只是一个产品,它正在成为事实上的标准工具 schema 定义者——不是因为它公开了标准,而是因为它主导了最强模型的 RL 环境。

Cursor 和 Copilot 接下来怎么应对,会是一个很有趣的观察角度。

我的判断

Ronacher 这篇文章最大的价值,是把一个很多从业者隐约感觉到但没有系统验证的现象,说清楚了。

“模型越强工具越差”这个现象,本质上是 RL 在特定环境里的过拟合。它不是 Claude 模型的能力问题,而是 Anthropic 的 post-training 策略选择问题——选择了让模型适应 Claude Code 的宽容 harness,而不是追求更通用的工具调用能力。

对于使用第三方工具的开发者来说,这意味着:如果你用的工具 schema 和 Claude Code 差异较大,你需要更主动地使用 strict 模式,或者在 prompt 里做更强的约束。不要默认模型会遵守你的 schema——它更可能遵守它 RL 时见过的那个版本。

对于 AI 编程工具的竞争格局来说:这场战争的胜负,可能不取决于谁发布了更强的模型,而取决于谁能成为其他工具的”RL 环境标准”。Anthropic 正在用 Claude Code 做到这件事,而这件事的影响会比任何一个新模型发布都更深远。


本文相关平台:

  • Roogoo 虚拟卡:0开卡费、0年费、0额度费,USDT出入金,ChatGPT/Claude订阅必备。查看申请教程
  • MiPay:免KYC消费USDT,OTC中文客服,出入金更灵活。了解 MiPay
上一篇 Claude Code 每月最高 200 美元,Goose 免费:AI 编程工具正在进入定价战
下一篇 更强的大模型,更差的工具调用:Anthropic 模型正在出现一次诡异的工具调用能力退化

站点性能

运行正常
实时心跳0 ms
页面加载
0
SQL 查询
0
服务端响应
0 ms
峰值内存
0 MB

探索站点内容

搜索文章、标签、分类

热搜 教程 主题