第十章 Tool Calling:让 AI 第一次拥有行动能力
目录
零基础认识大语言模型(LLM)工作原理目录 - GuZhenYin - 博客园
本章导读
在前面的章节中,我们已经了解了大语言模型(LLM)的工作原理。
无论模型多么强大,它始终只能完成一件事情:根据已有上下文,预测下一个 Token。
因此,对于模型来说,整个世界只有两件事情:
输入文本
↓
生成文本
如果只是聊天、翻译、总结、写代码,这已经足够了。
但是,当我们开始尝试让 AI 帮助完成真实工作时,很快就会遇到一个问题
当我们问模型:
帮我查询今天武汉天气。
模型知道武汉吗?
知道。
模型知道天气是什么吗?
知道。
但是它知道今天武汉到底有没有下雨吗?
不知道。
因为今天的天气属于实时信息,训练模型的时候还没有发生。
再比如:帮我计算下面 Excel 的销售总额。
模型会计算吗?
当然会。
但是它能够直接打开你的 Excel 文件吗?
不能。
又比如:帮我查询数据库中库存不足的商品。
模型懂 SQL 吗?
懂。
但是它能够直接连接你的 MySQL 数据库吗?
仍然不能。
于是,一个越来越明显的问题出现了:LLM 很聪明,但它无法直接与现实世界交互。
10.1 LLM 为什么不会使用工具?
这一点其实很好理解。
回忆一下第二章介绍过的内容。
模型看到的输入其实并不是:
今天天气怎么样?
而是经过 Tokenizer 处理之后的一串 Token ID。
例如(示意):
[4512,10345,821,...]
模型最后输出的也不是:
今天武汉小雨。
而是另一串 Token ID。
整个推理过程中,Transformer 从头到尾处理的都是数字向量。
模型既不会访问互联网,也不会打开浏览器,更不会执行操作系统命令。
换句话说,对于 LLM 来说:
世界上不存在"API""数据库""浏览器"这些概念,它只认识 Token。
因此,下面这些动作:
-
查询天气
-
调用地图
-
执行 Python
-
打开浏览器
-
查询数据库
-
发送邮件
对于模型来说,本质上都是模型之外发生的事情。
10.2 如果让模型自己完成,会发生什么?
来看一个简单的例子。
假设用户输入:
今天武汉天气怎么样?
模型开始推理。
根据训练数据,它可能知道:
-
武汉夏天比较热;
-
七月份经常下雨;
-
天气回答通常包含温度、湿度等内容。
于是,它可能生成:
今天武汉多云,最高气温33℃......
问题是,这是真的吗?
模型根本不知道。
它只是根据历史统计规律,生成了一段最像天气预报的文字。
这就是我们第八章提到的幻觉(Hallucination)。
如果模型能够真正访问天气 API,它就不需要猜了。
因此,工具调用(Tool Calling)的本质,就是让模型停止猜测,转而获取真实数据。
10.3 Tool Calling 到底是什么?
很多人第一次接触 Tool Calling,会觉得非常好用。
例如:
你在 ChatGPT 中输入:北京今天会下雨吗?
几秒钟后,它真的告诉你:今天北京有小雨......
甚至还能给出未来几天的天气。
很多人以为:ChatGPT 学会了查询天气。
实际上,并不是它学会了某项技能。
真正调用的流程其实是:
用户输入
│
▼
LLM 判断:
需要查询天气
│
▼
调用天气 API
│
▼
获得真实天气数据
│
▼
再次交给 LLM
│
▼
生成最终回答
这里,请注意真正查询天气的不是 LLM,而是外部程序。
LLM 做的事情只有两件:
-
判断是否需要调用工具;
-
根据工具返回的结果重新组织语言。
这就是 Tool Calling 的本质。
10.4 Tool Calling 是谁调用谁?
很多初学者容易产生一个误区:是不是模型自己调用 API?
答案是否定的。
真正调用工具的是 Agent Runtime(或者聊天应用)。
模型只是生成了一段特殊的信息,例如:
{
"tool":"weather",
"city":"北京"
}
程序看到这段内容之后,会根据返回的值做下面的事情:
-
调用天气接口;
-
获得返回结果;
-
再把结果放回上下文;
-
继续让模型推理。
因此,一个完整流程其实是:
用户
│
▼
LLM
│
是否需要工具?
│
┌──────┴──────┐
│ │
否 是
│ │
▼ ▼
直接回答 Agent Runtime
│
▼
调用真实工具
│
▼
返回执行结果
│
▼
再次调用 LLM
│
▼
输出最终答案
这里有一个非常重要的角色第一次出现了:
Agent Runtime(智能体运行时)
它就像整个系统的"调度中心"。
模型负责思考,Runtime 负责执行。
10.5 Tool Calling 为什么如此重要?
Tool Calling 的出现,可以说是 AI 应用发展的一个重要分水岭。
在它出现之前,大模型更像一个知识渊博的顾问:
-
能解释概念;
-
能回答问题;
-
能写文章;
-
能生成代码。
但所有能力都停留在"说"的层面。
有了 Tool Calling 之后,大模型第一次拥有了与外部世界交互的能力:
-
查询实时天气;
-
搜索互联网;
-
调用企业 API;
-
查询数据库;
-
执行 Python 程序;
-
控制浏览器;
-
操作本地文件。
虽然真正执行这些动作的依然是外部程序,但从用户的角度来看,AI 已经不再只是一个聊天机器人,而开始像一个真正能够"做事"的助手。
因此可以说Tool Calling 并没有改变 LLM 的工作原理,却极大扩展了 LLM 的能力边界。
本章总结
本章我们回答了三个问题:
-
为什么 LLM 无法直接操作现实世界?
- 因为模型本质上只能处理 Token,无法直接访问外部系统。
-
Tool Calling 到底是什么?
- 模型负责判断"是否需要工具",真正执行工具的是外部程序(Agent Runtime)。
-
为什么 Tool Calling 如此重要?
- 它让 AI 从"只会说"迈向了"能够做",成为现代 AI Agent 的基础能力。
下一章预告
下一章,我们将继续回答一个自然产生的问题:
如果每个 AI 平台都要重新开发一套工具接口,为什么不制定一套统一标准?
这正是 MCP(Model Context Protocol) 出现的原因。下一章我们将从"为什么需要 MCP"开始,一步步讲清楚它如何成为 AI 世界连接工具和模型的通用协议。