需使用【hunyuan-functioncall】模型、sdk≥3.0.1216,构造含tools的messages请求;解析tool_calls后,按id严格匹配插入role="tool"消息,再调用api获取最终回答。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让腾讯混元模型在调用外部工具后,把工具返回的结构化数据正确送回模型继续推理,否则模型无法基于真实结果生成后续回答。
确认模型支持 function call
使用 【hunyuan-functioncall】 模型 ID,不是 hunyuan-pro 或 hunyuan-standard。其他模型不解析 tools 字段,也不会触发 tool_calls 返回,强行传入 tools 会被静默忽略。
检查 SDK 版本是否 ≥ 3.0.1216,旧版本未适配 function call 协议,会抛出 UnknownParameter 错误。
构造带 tools 的请求消息
在 messages 数组末尾添加用户问题,例如:{"role": "user", "content": "查一下北京今天天气怎么样?"}
同时传入 tools 参数,定义函数签名,字段必须包含 type、function.name、function.description、function.parameters(JSON Schema 格式)。
注意:parameters 中的 required 字段必须显式列出必填项,漏写会导致模型无法生成有效 tool_calls 参数。
捕获并解析 tool_calls 响应
发送请求后,响应中若含 choices[0].message.tool_calls 字段,说明模型决定调用工具。
逐个提取 tool_calls[i].function.name 和 tool_calls[i].function.arguments(字符串),用 json.loads 解析为 dict —— 【arguments 是 JSON 字符串,不是 dict】。
若 arguments 解析失败,说明模型输出格式异常,需丢弃该条响应,不可直接传给下游工具。
把工具结果塞回 messages 继续对话
第一步:将原始 user 消息和 model 的 tool_calls 消息原样保留在 messages 中;
第二步:追加一条 role="tool" 的消息,格式为:{"role": "tool", "tool_call_id": tool_calls[i].id, "content": ''};
第三步:再次调用 API,传入更新后的完整 messages 数组 —— 模型会读取 tool 消息内容,并据此生成最终回答。
注意:tool_call_id 必须与上一轮响应中的 tool_calls[i].id 完全一致,大小写和符号都不能错,否则模型无法关联上下文。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











