工具调用是让大模型在回答过程中请求执行外部函数的能力,模型负责判断「该调什么、传什么参数」,真正的执行由业务系统完成。
本文由北京国信诚商互联网科技有限公司整理 · 更新于 2026-10-31基本定义
工具调用(Function Calling,也称 Tool Use)是指开发者预先向模型描述一组可用函数及其参数结构,模型在对话中判断需要调用哪个函数、生成符合结构的参数,由业务系统执行后把结果回传给模型继续生成答案。
它解决了大模型「只会说、不会做」的问题:查库存、下单、发邮件这类动作,模型本身没有能力执行,但可以决定何时调用、调用谁。
一次调用的完整流程
理解这条链路,才能判断问题出在哪一环。
- 注册:把函数名称、用途、参数结构告知模型
- 判断:模型根据用户意图决定是否调用、调用哪个
- 生成参数:模型输出结构化参数,通常为 JSON
- 执行:业务系统校验参数并执行真实操作
- 回传与生成:结果返回模型,模型组织自然语言答复
常见失败原因
工具调用出错,多数不是模型能力问题,而是设计问题。
- 函数描述含糊:模型不知道何时该用,导致该调不调
- 参数缺少约束:出现必填缺失、类型错误
- 工具过载:一次给几十个函数,选择准确率下降
- 缺少幂等与校验:重复调用造成重复下单等严重后果
设计原则
实践中有三条经验:函数粒度要小且语义单一,一个函数只做一件事;关键写操作必须加幂等键与二次确认;把高频场景拆成独立工具集,按对话场景动态挂载,避免全部堆给模型。工具调用做扎实,智能体才谈得上可靠。
常见问题
工具调用需要模型支持吗?
需要。主流大模型均已支持,但各家参数格式略有差异,通常由开发框架做适配层。
模型会自己编造参数吗?
会。必须做参数校验与白名单,不能把模型输出直接当作可信输入执行。
工具调用和MCP的关系?
工具调用是模型侧的能力机制,MCP 是工具接入的标准化协议,两者可以配合使用。