跳转到正文
收录 AI 工具提交开放中 免费提交

工具参数 JSON 无效

Agent 调用外部工具时生成的 JSON 参数格式不合法,导致工具调用失败。

错误代码
INVALID_TOOL_ARGUMENTS
当前状态
已解决
影响环境
Agent Runtime
浏览
3.9k

症状

Agent 执行 Function Calling 或工具调用时,后端返回参数校验错误(如 invalid_tool_arguments 或 JSON parse error)。表现为:

  • Agent 流程在工具调用环节中断,返回 JSON 解析失败的错误信息。
  • 日志中可见模型生成的 JSON 包含语法错误——如尾随逗号、未闭合的引号或非法转义字符。
  • 同一工具在手动构造参数时可以正常调用,排除工具本身的故障。

常见原因

  • 模型生成质量不稳定:模型在复杂参数结构下容易生成不合法的 JSON,尤其在参数包含嵌套对象或数组时。
  • 工具描述不够精确:Function schema 中的参数描述模糊、缺少类型约束或示例,导致模型理解偏差。
  • 参数值包含特殊字符:用户输入中的引号、换行符或 Unicode 字符未经转义,被模型直接嵌入 JSON。
  • 并发调用冲突:模型尝试同时调用多个工具时,生成的 JSON 结构出现混乱。

排查步骤

  1. 从日志中提取模型实际生成的 JSON 字符串,使用 JSON 校验工具(如 jq . 或在线 JSON Validator)定位具体的语法错误位置。
  2. 审查工具的 Function schema 定义,确认每个参数都有明确的 typedescriptionenum(如适用),为复杂参数提供 example
  3. 在工具调用层添加 JSON 修复中间件,处理常见的格式问题(如去除尾随逗号、补全缺失的闭合括号)。
  4. 针对高频出错的工具,简化参数结构——将嵌套对象拍平为独立的顶层字段,降低模型生成复杂 JSON 的难度。
  5. 如果问题持续出现,启用结构化输出模式(Structured Output / JSON Mode),强制模型按照预定义的 JSON Schema 生成输出。

预防

  • 所有工具定义遵循最小化参数原则,仅暴露模型必须填写的字段。
  • 在每次工具调用前加入 JSON Schema 校验层,不合法的参数自动触发重试而非直接报错。
  • 对用户输入进行预处理,转义可能破坏 JSON 结构的特殊字符。
  • 建立工具调用的成功率监控,定期优化低成功率工具的参数设计。