Tool Calling 也常被叫作 Function Calling,中文可以叫“工具调用”或“函数调用”。它是让大语言模型请求外部工具帮忙的机制,也是 Agent 能执行任务的重要基础。
模型本身主要擅长理解和生成语言。它可以解释“明天天气怎么样”这个问题,但如果没有外部工具,它并不真的知道你所在地明天的实时天气。Tool Calling 就是在这种时候出现:模型判断自己需要工具,然后输出一个结构化请求,让应用程序去调用天气 API、日历、数据库、搜索或计算器。
先用一句话抓住它
Tool Calling 像 AI 举手说:“这个问题我需要查日历、搜资料、算一下或调用某个工具。”
真正执行动作的通常不是模型本身,而是外部工具。模型负责决定要不要用工具、该传什么参数、拿到结果后如何继续回答。
更日常一点说,它像一个不会亲自进仓库拿货、但会填写取货单的店员。店员知道你要什么,也知道该填什么信息;仓库系统负责真正查库存、出结果,再把结果交回店员继续服务你。
为什么它重要
很多教程都会强调一点:模型本身主要生成文字,并不直接执行真实世界动作。Tool Calling 让模型输出结构化请求,再由应用程序执行工具,最后把结果交还给模型继续回答。
flowchart LR
User["用户问题"] --> Model["模型"]
Model --> Call["工具调用请求"]
Call --> Tool["外部工具 / API"]
Tool --> Result["工具结果"]
Result --> Model
Model --> Answer["最终回答"]这个机制让模型从“会说”向“能办事”迈了一步。查询天气、搜索知识库、调用计算器、创建日历事件、查询订单状态、读取文件、调用业务系统,都可以通过工具调用接入。
和 Agent 的关系
Agent 之所以能执行多步骤任务,常常就是因为它能反复进行“思考、调用工具、观察结果、决定下一步”。Tool Calling 是这个循环里的关键环节。
但 Tool Calling 不等于 Agent。一次工具调用可能只是查询天气;Agent 则通常涉及目标规划、多轮工具使用、状态跟踪和错误恢复。可以说,工具调用是 Agent 的基础能力之一,但不是完整的 Agent 系统。
容易误解的地方
最常见的误区,是以为模型自己真的执行了操作。很多系统里,模型只是生成一个结构化调用请求,真正执行的是外部程序。这个区别很重要,因为权限、安全和审计都发生在应用层。
另一个误区是所有问题都需要工具。简单解释、改写、总结,模型直接回答就可以;只有需要实时信息、外部数据、计算结果或实际操作时,工具才有意义。工具越有权限,越需要确认和日志。
怎么判断它该不该用
如果问题依赖最新数据、私有数据库、精确计算或外部动作,就应该考虑 Tool Calling。如果问题只是概念解释或文本改写,直接让模型回答通常更简单。
使用工具调用时,要明确工具能做什么、参数是什么、权限边界在哪里、失败时如何处理。特别是发送消息、付款、删除文件、改配置这类动作,最好让用户确认。