腾讯混元智能体对接企业系统需用function call机制:先确认开通hunyuan-functioncall模型权限,再将erp/crm等接口封装为openai格式tool,调用时传tools数组和含意图的user消息,解析返回的tool_calls参数并执行真实接口,最后将结果以tool_response注入上下文生成自然语言回复。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

腾讯混元智能体需要与企业内部业务系统(如ERP、CRM、OA)打通时,必须通过函数调用(Function Calling)机制让大模型理解何时该触发哪个接口、传什么参数、如何处理返回结果。
确认混元是否支持当前业务场景的函数调用
登录腾讯云控制台 → 进入【混元大模型】服务页 → 查看左侧导航栏是否有「Function Call」或「工具调用」相关入口。若无此选项,说明当前账号未开通函数调用能力,需先提交工单申请权限或升级至企业版套餐。
注意:混元 functioncall 模型(如 【hunyuan-functioncall】)已独立上线,不兼容旧版 hunyuan-standard 或 hunyuan-turbos-latest 模型。直接在非 functioncall 模型上调用 tools 字段会报错 400 InvalidParameter。
定义业务系统接口为可调用工具
将你的业务系统接口封装成 OpenAI 兼容格式的 tool 描述对象,包含 name、description、parameters 三要素:
例如对接一个审批流查询接口:
name: "query_approval_status"
description: "根据单据编号查询当前审批节点、审批人和状态"
parameters: { "type": "object", "properties": { "bill_id": { "type": "string", "description": "单据唯一编号,如 AP202610001" } }, "required": ["bill_id"] }
这一步不能漏掉 required 字段,否则混元无法识别必填参数,会导致调用失败且不提示具体原因。
构造带 tools 的请求体并发送
使用混元 OpenAI 兼容接口发起调用,base_url 固定为 https://api.hunyuan.cloud.tencent.com/v1,请求路径为 /chat/completions:
① 在请求头中携带 Authorization: Bearer YOUR_HUNYUAN_API_KEY;
② 请求体中设置 model 为 hunyuan-functioncall;
③ 将上一步定义的 tool 对象放入 tools 数组;
④ messages 中至少包含一条 user 角色消息,内容需含明确动作意图,例如“查一下单据 AP202610001 的审批进度”。
这一步操作起来很简单,直接把 JSON 请求体 POST 到接口即可。但要注意:如果 messages 中没有 user 消息,或 content 为空字符串,接口会静默返回空 choices,不会报错也不会提示。
解析模型返回的 function_call 并执行真实接口
混元 functioncall 模型不会直接返回业务数据,而是返回一个 tool_calls 数组,每个元素含 name 和 arguments 字符串(JSON 格式):
例如:
{ "name": "query_approval_status", "arguments": "{ \"bill_id\": \"AP202610001\" }" }
你需要在自己的后端代码中做两件事:
— 用 json.loads 解析 arguments 字符串,提取参数;
— 根据 name 字符串匹配预设的业务接口 URL 和认证方式(如 OAuth2 Token、API Key),发起真实 HTTP 请求。
【arguments 是字符串而非对象,必须手动解析,否则会因类型错误导致调用失败】
将业务系统返回结果注入对话上下文
拿到业务接口的真实响应后(比如 { "status": "approved", "approver": "张经理", "node": "终审" }),需将其作为 tool_response 再次发给混元:
构造新请求,messages 数组追加三条消息:
— role: "assistant", content: "" + tool_calls 字段(原始模型返回)
— role: "tool", content: '{"status": "approved", "approver": "张经理", "node": "终审"}', tool_call_id: 从上一轮返回中提取
— role: "user", content: "请用中文总结审批结果"
此时混元会基于真实数据生成自然语言回复,完成闭环。











