Tool Calling
Tool Calling(工具调用)是大型语言模型(LLM)与外部工具或API进行交互的一种能力机制。模型在生成响应过程中,能够识别用户意图并输出结构化的工具调用指令,由运行时环境执行相应函数或服务后将结果返回给模型,从而完成信息检索、代码执行、数据操作等超出纯文本生成范畴的任务。该机制是构建AI Agent和复杂自动化工作流的基础能力之一。
核心事实
时间轴 (近 90 天)
代理依据每个工具的 description 判断调用哪个工具,这本质上是一个零样本语义匹配的分类问题
不同框架对工具调用的格式定义不同(OpenAI格式、Anthropic格式、Ollama自有格式),未针对特定格式训练的模型会产生格式错误的调用
LangChain 的 Agent 与工具调用链路中,每个工具调用通常会被分配一个唯一的 Tool ID
模糊的工具授权提示词描述容易引发不同模型截然不同的执行策略
工具调用比直接让模型输出代码并 eval 更安全
工具调用中模型本身不执行代码,只负责决策调用哪个工具,真正的执行权留在开发者控制的宿主程序中
AI SDK 是一套帮助开发者构建 AI 应用的工具集,抽象了与大语言模型交互的通用逻辑,例如流式响应、消息状态管理、工具调用
工具调用机制将模型的意图与实际系统操作解耦,使开发者可以在中间层加入权限校验、沙箱隔离或人工确认步骤
很多Agent教程开篇就大量堆砌工具调用(Tool Calling)、ReAct框架等专业术语,却不梳理整体知识框架
传统的工具调用(Tool Calling)依赖结构化的API接口,需要开发者预先定义好每个工具的输入输出格式
还有 13 条时间轴事件
全部知识事实 (20)
Tool Use(工具调用)的底层机制是开发者预先定义工具的名称、描述和参数结构(Schema),模型在推理时判断何时调用哪个工具并输出结构化调用指令
90%已验证2024年以来,OpenAI、Anthropic、Google等公司纷纷推出Agent框架
90%已验证工具调用的实现机制是模型输出结构化的函数调用请求,宿主程序执行对应操作并将结果返回给模型
80%已验证Agent通过工具调用(Tool Calling)机制,允许模型以结构化JSON格式输出调用意图,由外部程序执行真实操作后将结果反馈给模型
80%已验证客户端拿到工具执行结果后需构造role为tool的消息,携带对应的tool_call_id和执行结果回传给模型
75%已验证深度研究功能将单次用户查询分解为多步骤自主研究任务,调用网络搜索和文档分析等工具,由大语言模型推理综合输出结构化报告
75%已验证工具本质上是对外部能力的函数封装,配合JSON Schema描述让模型理解工具的功能与参数格式
75%已验证LangChain是一个开源框架,核心能力是将大语言模型与外部计算资源和数据源结合
75%已验证工具的命名、描述和参数说明是Agent决定何时调用工具的关键上下文,可理解为一种提示词工程
70%已验证OpenAI的function calling/tool use机制属于硬约束,由模型推理引擎在解码阶段直接约束输出token的合法集合,从而在协议层保证格式合规
70%已验证工具调用(Function Calling / Tool Use)能力使LLM得以输出结构化的意图指令,由外部执行层捕获并实际操作系统
65%已验证工具调用(Function Calling/Tool Use)是Agent系统的核心能力,允许模型动态调用搜索引擎、代码解释器、数据库查询、API接口等外部资源
65%待验证Tool Calling存在三大核心痛点:描述繁复、调用不稳定、缺乏统一标准
85%待验证智能体工具调用能力允许语言模型判断是否需要调用工具、生成符合API规范的调用参数并根据执行结果继续推理
70%待验证模糊的工具授权提示词描述容易引发不同模型截然不同的执行策略
60%待验证OpenAI的Tool Calling协议要求消息严格遵循assistant message → tool message的配对顺序,且每个tool message必须通过tool_call_id与对应的assistant message中的工具调用请求精确匹配
60%待验证代理依据每个工具的 description 判断调用哪个工具,这本质上是一个零样本语义匹配的分类问题
50%待验证不同框架对工具调用的格式定义不同(OpenAI格式、Anthropic格式、Ollama自有格式),未针对特定格式训练的模型会产生格式错误的调用
50%待验证LangChain 的 Agent 与工具调用链路中,每个工具调用通常会被分配一个唯一的 Tool ID
50%待验证工具调用比直接让模型输出代码并 eval 更安全
50%