Repository navigation
Bug:Code Mode 下无参工具调用被拒绝(binding arguments must be lossless JSON) #129
Replies: 1 comment
|
Same defect, one step wider: MCP-registered tools reject even Environment: DSH Desktop app 2.0.2 (macOS arm64), Code Mode (PTC preset). Confirming this report on the Desktop build, with an extension. For tools whose parameter schema is an open object with no required keys (in our case MCP-registered tools, schema shape await tools.ddb_status() // ToolCallError: binding arguments must be lossless JSON
await tools.ddb_status(null) // invalid arguments: "arguments" must be an object
await tools.ddb_status({}) // ToolCallError: binding arguments must be lossless JSON <- newOnly a non-empty object passes: await tools.ddb_status({ _: true }) // OKSo for these tools the Happy to provide worker-side logs or a fuller repro if useful. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
核心问题
mode: code),run_code内调用无参工具(job_list、list_agents、get_goal等)报ToolCallError: binding arguments must be lossless JSON。parameters: {}(参数可省略),但 worker 绑定层拒绝顶层undefined参数;错误信息无指引(不知道应传{})。tools.job_list()必然报错,且会重复重试浪费轮次。上游状态
worker.cjs:819与源码bootstrap.ts:336拒绝逻辑逐字节一致,无 undefined 归一化。问题描述
Code Mode 下模型经
run_code调用工具。对参数全可选/无参的工具,省略参数调用被 worker 绑定层拒绝:tools.job_list()≡tools.job_list({})(schema 表明参数可省略)。binding arguments must be lossless JSON,错误无修复指引,模型反复同法重试。原因:
bootstrap.ts:328-337对顶层undefined判非法)。code-mode.ts:159"call the tool with an arguments object, e.g. `{}`"),但 worker 侧先拦截,模型只能看到无指引的拒绝文本。复现
相关位置
packages/code-runtime/code-runtime-worker-thread/src/bootstrap.ts:328-337packages/core/tools/src/code-mode.ts:151-167packages/jobs/tool-jobs/src/index.ts:342-346(parameters: {})lib/worker.cjs:810-830All reactions