腾讯混元智能体工具调用报“参数格式错误”主因是schema含非法嵌套字段或tool_calls中content为空,需精简schema至name/description/parameters三层、补全content、确保消息流含assistant过渡消息。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

腾讯混元智能体在调用工具(如搜索、计算、API对接)时,若提示“工具参数格式错误”,通常是因为你配置的function schema或运行时传入的tool_calls参数违反了混元对工具定义的强制规范,导致请求被服务端直接拦截并返回400错误。
检查并修正工具定义中的非法字段
混元不支持 OpenAI 风格的 function.strict、function.description 等嵌套字段。如果你从其他平台(如 LlamaIndex、LangChain)导出工具定义后直接复用,极易触发此错误。
第一步:打开智能体「工具管理」页面,定位出错的工具条目,点击「编辑 Schema」。
第二步:删除所有以 function. 开头的字段,只保留顶层的 name、description、parameters 三项。例如,把:{"function": {"name": "get_weather", "description": "查询城市天气", "parameters": {...}, "strict": true}}
改为:{"name": "get_weather", "description": "查询城市天气", "parameters": {...}}
第三步:确认 parameters 字段是标准 JSON Schema v7 格式,且 required 数组中列出的每个字段名,都必须在 properties 对象中明确定义类型。【缺失 required 字段的定义会导致参数校验失败,但错误提示不明确】
修复运行时 tool_calls 中 content 为空的问题
当智能体决定调用工具但未生成有效 reasoning 内容时,混元会拒绝接收 role="assistant" + tool_calls + empty content 的组合,这是硬性校验规则。
方法一:在智能体「推理设置」中启用「强制填充工具调用说明」开关。启用后,系统会在每次生成 tool_calls 前自动补全 content 字段,值为“我将调用工具:{tool_name}”。
方法二:手动在 prompt 模板末尾添加约束指令:“当你准备调用工具时,必须在 assistant 消息的 content 字段中写明调用意图,例如‘我将调用天气查询工具获取北京今日温度’。”
注意:若使用自定义推理链(如 LangGraph),需确保每个 invoke 后的 message 构造逻辑中,content 字段不为 None 或空字符串,否则 LiteLLM 层无法自动补全。
验证工具调用序列是否符合混元消息流规则
混元要求工具调用链必须满足:user → assistant(含 tool_calls)→ tool → assistant(过渡消息) → user。缺少中间的 assistant 过渡消息,就会报格式错误。
第一步:在智能体调试面板开启「显示完整消息流」,提交一次测试请求,复制全部 messages 数组。
第二步:逐条检查角色顺序。重点看 tool 消息后是否紧跟一个 role="assistant" 的消息——哪怕 content 为空也不行,必须存在该消息对象。
第三步:若发现 tool 后直接是 user,说明你的智能体逻辑跳过了过渡响应。此时需在工具执行回调函数中显式插入一条 assistant 消息,内容可设为“工具已返回结果”,再将 control 流交还给主推理循环。
第四步:使用腾讯云 API Explorer 提交最小化测试请求,仅包含两条消息:第一条为 user 提问,第二条为带 tool_calls 的 assistant 消息。确认能成功返回 tool_id 和调用状态,再逐步加入后续消息。











