工具调用
工具调用(Tool Calling),通常也称为函数调用(Function Calling),是大型语言模型(LLMs)中的一项能力,它允许模型判断何时以及如何调用外部函数或 API 来满足用户的请求。模型不是生成直接答案,而是输出一个结构化的请求,指定要使用哪个工具以及需要传递哪些参数。
LLMs 本质上擅长语言理解,但受限于其训练数据。它们无法访问实时信息、执行代码或与专有业务系统交互。工具调用弥补了这一差距,将一个被动的语言生成器转变为一个能够执行现实世界中操作的积极代理。
该过程涉及三个主要步骤。首先,开发者向 LLM 提供一个模式(schema)——即可用工具的描述,包括它们的名称、描述和所需参数。其次,当接收到用户提示时,LLM 会根据提供的工具定义对其进行分析,并决定是否需要使用工具。如果是,它会返回一个详细说明函数调用的结构化 JSON 对象。第三,应用程序框架会拦截此调用,执行实际的外部函数(例如调用天气 API),并将结果反馈给 LLM,以便最终合成一个自然语言响应给用户。
工具调用在各个行业解锁了强大而实用的应用。这些包括实时数据检索(查询股票价格或天气)、复杂工作流自动化(预订预约或处理订单)以及系统交互(发送电子邮件或更新 CRM 记录)。
主要优势在于提高了准确性、可信度和能力。通过依赖外部权威来源,AI 减少了“幻觉”(hallucinations)。此外,它允许 AI 在现有企业系统的约束和逻辑内运行,超越了简单的对话任务。
实现稳健的工具调用需要精心设计。挑战包括管理 API 延迟、确保安全处理传递给工具的敏感参数,以及设计清晰、无歧义的工具模式,以便 LLM 正确地解释意图。
此能力与 AI 智能体(AI Agents)密切相关,AI 智能体是围绕 LLM 构建的自主系统,它们利用工具调用来实现多步骤目标。它也与检索增强生成(RAG)有所重叠,尽管 RAG 侧重于检索文档,而工具调用侧重于执行操作。