真正的执行链路其实不是这样。
模型负责判断、选择和生成调用请求;应用负责真正执行;执行结果再回到模型,由模型继续推理或组织最终回答。Tool Use / Function Calling 的本质,不是“模型自己动手”,而是模型输出一份结构化的动作意图,外部程序替它把动作落地。
OpenAI 把这件事明确拆成五步:给模型工具、收到工具调用、应用侧执行、把工具结果再发回模型、模型再产出最终回答或继续调用工具。Anthropic 对这个闭环的描述也很接近:客户端工具由你的应用执行并回传tool_result,服务端工具则由平台侧直接执行。
这也是为什么,工具调用不是一个“小功能”,而是 Agent 和普通聊天模型之间最关键的分水岭。普通模型只能在参数里“知道”世界,Agent 则可以借助工具去碰真实世界:查实时数据、访问数据库、执行代码、调用业务 API、操作外部系统。LangChain 官方也把 tools 定义为一种让 Agent 获取实时数据、执行代码、查询数据库并对外部世界采取行动的机制。
工具调用机制,本质上是“模型决策 + 程序执行”
如果把整个链路压缩成一句话,那就是:
用户提需求,模型决定要不要调工具、调哪个工具、参数填什么;你的程序拿着这份结构化调用去执行;再把结果喂回模型;模型基于新信息继续判断,直到结束。这就是典型的 agent loop:模型调用返回“答复”或“工具请求”,工具执行返回结果,这个循环持续到模型决定结束。
所以,Tool Use 不是单次 API 技巧,而是一种运行时机制。真正的 Agent,不是“有工具列表”,而是“有工具调用闭环”。
第一步:先把工具翻译成模型能理解的语言
模型之所以能调用工具,不是因为它天生认识你的内部 API,而是因为你先把工具“描述”给了它。
这一步通常要提供三类信息:工具名、工具说明、输入参数 schema。OpenAI 的 function calling 文档里明确说,函数是一类由 JSON Schema 定义的工具,定义中通常包括name、description、parameters和可选的strict;Anthropic 这边则是name、description、input_schema。两边的核心思想是一样的:你要先把工具能力、使用时机和参数格式,翻译成模型能消费的结构化提示。
这里最容易被低估的,其实不是 schema,而是 description。
Anthropic 文档里专门强调,工具描述应尽可能详细,因为模型越清楚“这个工具是干什么的、该怎么用”,调用效果就越好;还可以用自然语言去强化 schema 里比较关键的约束。OpenAI 文档对description的定义也很直接:它描述的是什么时候用、怎么用这个函数。
这背后其实是一个很重要的产品结论:
工具不是给人看的 API 文档,而是给模型看的操作手册。
很多团队工具调用不稳定,不是模型不行,而是工具定义写得太“程序员”,比如名字很抽象、描述太短、参数语义不清、枚举值没有解释。模型当然也就更容易选错工具、补错参数。
第二步:模型怎么决定“要不要调用工具”
很多人会把这件事理解成“只要给了工具,模型就会优先去调”。其实不是。
LangChain 官方文档的说法很清楚:模型会基于对话上下文决定是否调用工具,以及传什么参数。Anthropic 也明确写到,Claude 会根据用户请求和工具描述决定何时调用工具。OpenAI 则提供了默认自动决策模式,也就是让模型自己判断这轮是直接回答,还是调用零个、一个或多个工具。
换句话说,模型通常在做一个隐性的判断:
这个问题我靠已有上下文能不能直接答?
如果不能,是否需要借助外部能力?
借助外部能力后,答案会不会更准、更完整、更可执行?
例如“帮我总结一下 TCP 三次握手”,通常不需要调工具;但“查一下今天苹果股价”“把这封邮件发给张三”“帮我从 CRM 里拉出客户信息”,天然就更适合进入工具调用链路,因为这些任务依赖实时数据或外部系统。这个判断机制,本质上就是 Agent 比普通问答更“行动化”的地方。
当然,工程上你也可以不把决定权完全交给模型。OpenAI 提供了tool_choice机制:默认是auto,也可以强制required、强制指定某个函数、限制只能在某个子集工具里选,甚至直接none禁止调用。也就是说,工具调用既可以完全放权给模型,也可以被产品策略半约束、强约束。
这对产品经理很重要。因为很多场景里,“是否允许模型自己决定”本身就是一个产品策略问题,而不是纯模型问题。
第三步:模型怎么决定“调用哪个工具”
决定要调用工具之后,下一步才是“选哪个”。
本质上,模型是在当前上下文里做一次语义匹配 + 约束匹配。它会结合用户意图、工具描述、参数 schema、以及前面对话信息,去判断哪个工具最贴近当前任务。LangChain 的定义非常直白:工具是带有清晰输入输出定义的可调用函数,模型会根据上下文决定调用哪一个以及传入什么参数。
所以在实际系统里,工具选择准确率往往取决于三件事:
第一,工具边界是不是清楚。
如果两个工具描述高度重叠,比如一个叫search_order,一个叫query_order_info,模型就很容易混。
第二,工具数量是不是太多。
OpenAI 官方已经明确建议:如果你的应用里函数很多、schema 很大,可以配合tool_search,把不常用工具延迟加载,只在模型真正需要时再把相关工具拉进当前回合。Anthropic 也支持defer_loading这类思路,本质都是在减少无关工具对当前决策的干扰。
第三,工具说明是不是面向模型写的。
工具选择错,很多时候不是“模型笨”,而是你把工具组织成了一个模型很难 disambiguate 的工具箱。
从工程角度看,这一步最像搜索排序。模型不是“看见工具就点”,而是在做一轮轻量的能力检索。
第四步:参数是怎么生成出来的
这是产品经理和工程师都特别关心的一点:参数到底从哪来?
最直接的答案是:从用户输入、对话历史、系统提示、以及前序工具结果里来。模型会结合当前可见上下文,把信息映射到参数 schema 对应的字段上,再输出一份结构化参数对象。OpenAI 和 Anthropic 的文档都把这一点写得很清楚:工具输入是由 schema 定义的,而模型会据此生成对应形状的输入。
比如用户说:“帮我查一下北京明天的天气。”
如果工具 schema 是location和date,模型就会尝试把“北京”映射到location,把“明天”解析成合适的日期字段。
再比如用户说:“帮我把这条工单指给王磊。”
如果模型前文已经知道“这条工单”的工单 ID,或者前一步工具刚返回了工单列表,那它就会从上下文中抽取对应 ID,再补进参数里。
所以参数生成并不是“只从当前一句话抠关键词”,而是一个基于上下文的结构化槽位填充过程。这也是为什么多轮对话和中间结果回传,在 Agent 里特别重要。
但这里必须强调一个工程事实:模型生成参数,不等于参数一定可信。
Schema 能帮助模型按格式输出,但不自动保证业务正确。OpenAI 和 Anthropic 都支持strict模式,用来更严格地保证工具名和输入符合 schema;OpenAI 也明确建议在很多场景下开启 strict mode。可即便 schema 对了,业务值仍可能错,比如把“上海分公司”误当“上海市”,把模糊时间理解错,或把用户没授权的数据字段补进去。
所以,schema 解决的是“长得像不像”,不是“业务上对不对”。
第五步:模型输出的是一份“调用请求”
这是最关键、也最容易被误解的一点。
当模型决定调工具时,它输出的通常不是“最终答案”,而是一条或多条结构化工具调用请求。OpenAI 的工具调用流程里,第二步就是“收到 tool call”;LangChain 的文档也明确说,AI message 里会包含工具名、参数和一个把调用与结果关联起来的唯一 ID。Anthropic 这边则是返回tool_useblock,然后你的应用去执行,再回传tool_result。
这意味着,模型并没有真的“查到天气”或“发出邮件”。
它只是说:
我建议现在调用get_weather,参数是{...}。
或者:
我建议调用search_docs和fetch_order,这是它们各自的参数。
真正动手的是 orchestrator,也就是你的应用层。
这也是为什么 Tool Use 系统里,一定会有一层模型外的执行器。没有这层,工具调用就只是“看起来很像能做事”的文本。
第六步:真正执行工具的是你的程序,不是模型
收到工具调用请求后,应用层才会开始真正做事:
解析工具名和参数;
做 schema 校验和业务校验;
检查权限、配额、风控和人工确认策略;
调用真实 API / 数据库 / 代码执行环境;
拿到结果后,再封装回模型能读懂的格式。
Anthropic 把工具分成 client tools 和 server tools:前者由你的应用执行,后者由平台执行;OpenAI 也区分了 function calling 和平台内建工具。无论哪种模式,核心都是:模型负责提出动作,系统负责执行动作。
这一层在工程上极其重要,因为它决定了系统是不是安全、可靠、可控。
一个成熟 Agent,不会把模型生成的参数原封不动直接打到生产系统上。通常至少会做几件事:
参数校验。防止格式对了、值却不合法。
权限校验。模型“想做”不等于“允许做”。
幂等控制。避免重复下单、重复发信、重复写库。
超时与重试。工具失败时要有恢复策略。
审计日志。谁触发了什么动作,要能追踪。
所以,Tool Use 的本质不是 prompt engineering,而是模型决策层和业务执行层之间的一次协议对接。
第七步:工具结果怎么回到模型里
工具执行完,并不代表任务就结束了。
下一步是把工具结果再发给模型。OpenAI 的五步流程里,第四步就是“把工具输出再次发给模型”,第五步才是最终回答或更多工具调用。Anthropic 也是同样的 agentic loop:应用执行后把tool_result发回,模型再继续。LangGraph 的 quickstart 甚至把这件事写成了显式循环:如果上一条消息里有 tool call,就执行工具,把ToolMessage加回消息列表,再继续让模型判断。
这一步特别像人类工作时的“读回执”。
比如模型先调用搜索工具,拿到三条搜索结果;
然后它基于这三条结果再判断,要不要继续点进详情页;
详情页看完后,再决定要不要总结给用户。
所以工具结果不是系统的终点,而是模型下一轮推理的输入。
工具是 Agent 的手脚,模型仍然是大脑。
如果是 reasoning model,OpenAI 还特别建议在多轮 function calling 里,把相关 reasoning items、function call items 和 function call output items 一并保留进上下文,避免模型在链路中“断片”。这说明多步工具调用不是几次孤立 API 调用,而是一条连续推理链。
为什么有的 Agent 调一次工具就结束,有的会连调很多次
因为工具调用本来就不是单步机制,而是循环机制。
一次调用结束后,模型会再次判断:
我现在信息够了吗?
可以直接回答了吗?
还是还要继续调下一个工具?
这就是标准的 agent loop。LangChain 的官方描述就是:模型调用与工具执行两步循环往复,直到模型决定结束。支持多个顺序工具调用、并行工具调用、基于前一步结果的动态工具选择,本质上都只是这个 loop 的不同展开方式。OpenAI 的 function calling 和 Assistants/Responses 文档也都明确支持一轮触发多个工具调用,以及并行 function calling。
所以你看到一个 Agent 能先检索、再读文件、再执行代码、最后写总结,本质上不是“模型突然变复杂了”,而是这个工具调用循环被跑了多轮。
总结
Function Calling / Tool Use 不是模型自己去执行工具,而是模型先输出“该怎么调用”的结构化请求,外部程序替它执行,再把结果送回模型完成闭环。
模型决定要不要调、调哪个、参数怎么填;
系统决定能不能调、怎么调、结果怎么回;
两者合起来,才构成一个真正能“做事”的 Agent。
说真的,这两年看着身边一个个搞Java、C++、前端、数据、架构的开始卷大模型,挺唏嘘的。大家最开始都是写接口、搞Spring Boot、连数据库、配Redis,稳稳当当过日子。
结果GPT、DeepSeek火了之后,整条线上的人都开始有点慌了,大家都在想:“我是不是要学大模型,不然这饭碗还能保多久?”
我先给出最直接的答案:一定要把现有的技术和大模型结合起来,而不是抛弃你们现有技术!掌握AI能力的Java工程师比纯Java岗要吃香的多。
即使现在裁员、降薪、团队解散的比比皆是……但后续的趋势一定是AI应用落地!大模型方向才是实现职业升级、提升薪资待遇的绝佳机遇!
这绝非空谈。数据说话
2025年的最后一个月,脉脉高聘发布了《2025年度人才迁徙报告》,披露了2025年前10个月的招聘市场现状。
AI领域的人才需求呈现出极为迫切的“井喷”态势
2025年前10个月,新发AI岗位量同比增长543%,9月单月同比增幅超11倍。同时,在薪资方面,AI领域也显著领先。其中,月薪排名前20的高薪岗位平均月薪均超过6万元,而这些席位大部分被AI研发岗占据。
与此相对应,市场为AI人才支付了显著的溢价:算法工程师中,专攻AIGC方向的岗位平均薪资较普通算法工程师高出近18%;产品经理岗位中,AI方向的产品经理薪资也领先约20%。
当你意识到“技术+AI”是个人突围的最佳路径时,整个就业市场的数据也印证了同一个事实:AI大模型正成为高薪机会的最大源头。
最后
我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。
我整理出这套 AI 大模型突围资料包【允许白嫖】:
- ✅从入门到精通的全套视频教程
- ✅AI大模型学习路线图(0基础到项目实战仅需90天)
- ✅大模型书籍与技术文档PDF
- ✅各大厂大模型面试题目详解
- ✅640套AI大模型报告合集
- ✅大模型入门实战训练
这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
①从入门到精通的全套视频教程
包含提示词工程、RAG、Agent等技术点
② AI大模型学习路线图(0基础到项目实战仅需90天)
全过程AI大模型学习路线
③学习电子书籍和技术文档
市面上的大模型书籍确实太多了,这些是我精选出来的
④各大厂大模型面试题目详解
⑤640套AI大模型报告合集
⑥大模型入门实战训练
👉获取方式:
有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓