在前面的章节中,我们已经了解了大语言模型(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 的基础能力。

下一章预告
下一章,我们将继续回答一个自然产生的问题:

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐