AI Agent 工具调用 (Function Calling)

依靠思维链技术,Agent 在面对复杂任务时,会自己把它一步步拆成 n 个小步骤,然后制定执行计划。但 “想清楚” 不等于 “做得到”:大模型说到底只是一串跑在服务器里的代码,它本身既不能浏览网页,也不能查数据库,更发不了邮件。

为了让 Agent 真正能接触现实世界、并在现实世界里把事办成(比如打开网页查资料),各大 AI 科技巨头(如 OpenAI、Google 等)推出了一项关键技术——工具调用。

什么是工具调用?

工具调用,也叫做 “函数调用(Function Calling)。” 所谓的 “工具调用”,简单来说就是:让大模型能够理解并使用,开发者提前提供的外部 API 或函数。

提示: 这里说的 “工具”、“函数”、“API”、“接口”,它们其实是一回事——都指的是那段你提前写好、能让大模型 “差遣” 去干活的后台代码。因此,小伙伴们不需要纠结它们的区别。

这里得先帮大家澄清一个误区:不少初学的小伙伴以为,给 AI Agent 配上一个搜索工具之后,大模型就会自己连上网、自己去发 HTTP 请求。

这种理解是完全错误的!大模型本身根本没有执行代码的能力。在整个工具调用的过程中,它只扮演一个 “指挥官” 的角色,真正动手干活的,依然是你(开发者)写在后台的 Python、Go 或 Node.js 代码。

也就是说,开发工程师必须手动编写了相关代码,并为大模型提供可调用的函数(或接口),然后大模型才会去调用这些函数。大模型本身并不会编写这些函数,然后自己去调用。

大模型工具调用误区纠正:大模型不直接发送网络请求,而是由开发者后台代码执行

我们可以这样去理解:大模型是老板,你的后台代码是执行部门。老板(大模型)不知道怎么具体干活,但他能听懂客户的需求,然后给执行部门(后台代码)下发一份 “任务工单”。执行部门(后台代码)干完活之后,把结果填在工单上交回给老板,老板(大模型)再转述给客户(用户)。

工具调用的工作流

在真实的商业级项目里,想完整地跑通一次工具调用,必须严格走完下面这 4 步。

1. 开发者提供 “工具说明书”

首先,开发者要在后台把各种功能的函数准备好,比如查天气的函数、查数据库的函数等等。

然后,把这些函数的名字、作用、需要哪些参数,写成一份 JSON 格式的“说明书”,连同用户的提问一起发给大模型。

提供工具说明书图解:开发者将提前准备好的后台函数,封装成包含名称、作用与参数的 JSON 说明书,并与用户提问一起发送给大模型

2. 大模型决定使用工具,并输出 JSON 参数

大模型收到用户提问(比如:“帮我查一下广州今天的天气”)之后,会先翻一翻你给的这份 “工具说明书”。

它发现自己算不出天气,但 “工具说明书” 里正好有个叫 get_weather() 的函数。于是,大模型会停止输出普通的对话文字,转而输出一个 “我要调用 get_weather()” 的请求,并附上这个函数需要的参数(一般是 JSON),比如:

 { "city": "广州" }

大模型选择工具并输出参数图解:大模型决定调用查天气函数,并输出包含城市信息的纯净 JSON 格式参数

3. 后台执行真实操作

你的后台系统接收到了大模型传递过来的 JSON 数据,然后解析出参数,才真正地去调用外部的天气 API,或者向数据库发起一条真实的 SQL 查询,比如:

SELECT temperature, condition FROM weather_data WHERE city_name = '广州'

拿到结果(比如:“32 度,晴天”)之后,后台代码就会将结果暂存起来。

后台执行真实操作图解:系统接收大模型的 JSON 参数后,在后台发起真实的 SQL 查询或天气 API 请求以获取准确数据

4. 大模型总结并回复用户

你的后台系统把刚刚拿到的真实天气结果,回传给大模型。

大模型结合前面的上下文,发挥它组织语言的本事,生成一句通顺的人话,最终展示给前端用户:

“您好,广州今天的天气是晴天,气温大约 32 度,出门别忘了做好防晒哦。”

看着步骤挺多的,但实际开发里我们通常不用手写这一整套来回。因此 LangChain 这类框架已经把 “发说明书 → 收参数 → 执行 → 回传” 自动串好,我们只要专心写好每个工具函数就行。

大模型总结并回复用户图解:大模型接收后台回传的真实天气结果后,将其组织成通顺的人类语言回答给前端用户

为什么工具调用是 AI Agent 的灵魂?

在没有工具调用(Function Calling)这门技术之前,要想让大模型乖乖输出指定格式的数据去对接 API,我们只能写又长又复杂的提示词去 “恐吓” 它,比如:

“你只能输出 JSON,绝对不许加任何废话”

可即便这样,大模型还是经常不老实,比如有时多嘴在 JSON 数据后面加上一句 “好的”,这样肯定会导致后端无法解析数据,然后直接报错。

而工具调用技术的出现,从根本上解决了这个问题。它主要有以下 3 个显著的优点。

1. 绝对稳定的参数提取

目前顶尖的大模型,在训练阶段就专门针对 Function Calling 做过微调。

所以只要它决定调用工具,就能非常稳定地输出后端代码需要的纯净 JSON,几乎不会掺杂任何自然语言废话,完美贴合工程化落地的需求。

工具调用稳定提取参数优势图解:相比仅靠提示词容易产生多余废话,工具调用能让经过微调的大模型稳定输出纯净的 JSON 方便后端解析

2. 打破信息孤岛,连接万物

有了工具调用之后,AI Agent 就变得无所不能了,比如:

  • 连接办公软件:赋予它操作钉钉、飞书的 API,它就能自动建群、发通知、拉取会议纪要。
  • 连接企业数据库:赋予它执行 SQL 的能力,它就能自动把你说的大白话变成查询语句,完成各种复杂的数据统计。
  • 连接物理世界:如果后台代码对接的是物联网(IoT)接口,Agent 甚至可以帮你关灯、锁门、调节空调温度。

AI Agent 通过工具调用连接万物:打通办公软件、企业数据库与物理世界 IoT 接口

3. 并行工具调用

在真实的业务场景中,用户很多时候会下达 “复合型指令”。比如:

帮我查一下北京、上海、广州这 3 个城市今天的天气。

在早期的工具调用中,大模型只能 “串行” 工作:先查完北京,再查上海,最后查广州,导致用户等待的时间很长。

而现在的顶尖大模型,普遍支持 “并行工具调用”。当它发现需要查 3 个城市时,能一次性输出 3 个独立的 JSON 参数块。

大模型并行工具调用 (Parallel Function Calling) 优势:同时输出多个 JSON,提升多任务处理效率

你的后端代码拿到这 3 个任务后,就能并发地发起 3 次 API 请求,从而大大压缩响应时间,让 Agent 的执行效率产生质的飞跃。

上一篇:

下一篇:

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号