更好的模型,更差的工具:为何最新大模型在调用自定义工具时反而退步?
阿明分享了自己在对 Pi 进行黑客攻击时遇到的一个奇怪问题:
简而言之,较新的 Claude 模型有时会在嵌套编辑数组[]中,向 Pi 的编辑工具传递额外的、虚构的字段。而且,这可不是 Haiku 或者其他小型模型——而是 Opus 4.8。编辑本身通常没有问题,但参数与模型所定义的模式并不匹配:模型会自创一些无中生有的键值, 因此 Pi 会拒绝该工具调用,并要求重新尝试。
仅凭这一点其实也并不令人意外——因为模型有时会发出格式错误的工具调用,尤其是那些规模较小的模型。 令我惊讶的是,随着 Anthropic 新型模型的不断升级,这一问题反而愈发严重:无论是 Opus 4.8 还是 Sonnet 5 都出现了类似情况,而旧型号却并未出现同样的问题。 换句话说,这个家族中的最新一代 SOTA 模型,在这种特定的工具模式上,表现得比它们的老一辈兄弟姐妹还要差。
阿明推测,这可能是因为 Anthropic 的最新模型经过了专门训练(大概通过强化学习的方式),以更好地利用内置在 Claude Code 中的编辑工具。
然而,这一做法却带来了令人遗憾的后果:其他编码工具,比如 Pi,可能会发现自己的自定义编辑工具更容易被误用。
Claude 的编辑工具1 采用搜索与替换的方式。 OpenAI 的 Codex 则2改用了“apply_patch”机制,而 OpenAI 也曾公开表示,其模型正是通过这种方式进行训练,以有效运用这一工具。
那么,这意味着像 Pi 这样的第三方编码工具是否应该实现多种编辑工具,以便用户能够选择最适合其所选基础模型的工具,从而获得最佳性能?
标签:armin-ronacher, ai, openai, generative-ai, llms, anthropic, llm-tool-use, coding-agents, pi