opencode 约半数工具调用被拒:参数被当成字符串而非对象

meijin4 · ghdev · 2026-10-12

anomalyco/opencode 的 issue #54792 报告:agent 发出的工具调用中约有一半在执行前被拒绝,报错为 The tool call arguments failed to parse: expected object, received string at the root。同一条调用原样重放却能成功,因此失败看起来是随机的,在长会话中严重影响效率。

环境:opencode 2.0.27,WindowsNT 10.0.26300 (win32 x64),shell 为 cmd.exe(命令经 pwsh 执行),latest 渠道,无插件。

复现:在编辑大量文件的长会话中,发出参数较复杂的工具调用(多行代码含 \n、转义引号 \"、重音字符、${} 模板字面量),可观察到大量调用在解析层被拒且无副作用。

预期:工具调用参数被解析为 JSON 对象并执行。

实际:参数以原始字符串(截断或双重编码的 JSON)形式发出/送达,而非对象。

补充信息:

原文链接 →

「编程与Agent」频道最新

更多「编程与Agent」频道 AI 资讯 →