你有没有遇到过这种情况:跟 ChatGPT 聊得热火朝天,让它帮你规划周末行程,它列了一份漂亮的清单——但到了周六,你发现其中一个景点今天闭馆,酒店价格也变了。你有点失落:它明明那么聪明,为什么不能自己查一下实时信息呢?
答案藏在 LLM 的底层工作原理里。今天这一篇,我们就来搞清楚:为什么聊天机器人不等于智能体(Agent),以及加上什么东西之后,一个只会“猜下一个词”的模型,就能变成帮你干活的智能体。
LLM 的真相:它只是一个“文字接龙机”
不管大模型看起来多聪明,它的核心能力只有一句话:根据已有上下文,预测下一个最合理的 token(词元)。
当你问“北京的天气怎么样?”,模型内部发生的事情不是去查天气预报,而是:从训练数据中学到的模式里,推算出“北京”“天气”“怎么样”这几个 token 后面,最可能出现的 token 序列——“北京今天晴,气温 15–22°C”。它生成的是 一个在语言上流畅、在训练数据里常见的回答,而不是一个事实核查的结果。
这意味着三个重要结论:
- 模型不能上网。 它不知道此时此刻的天气、新闻、股价——它的知识停留在训练数据截止日。
- 模型不能执行操作。 它不会调用 API、不会发邮件、不会写数据库。它只能输出文本。
- 模型一次回答完就结束。 它不会主动追问、不会自我纠错、不会说“等一下,我再查一个数据”——除非你在提示词里写了明确的指令。
这三个限制,就是聊天机器人的天花板。它像一个知识渊博但四肢瘫痪的学者:能回答问题、提出方案,但无法动手操作、无法感知实时变化、也无法在执行过程中调整行为1。
聊天机器人 vs. 智能体:谁来决定“下一步”?
如果把聊天机器人和智能体放在一起对比,最本质的区别只有一个:谁来决定下一步做什么。
在聊天机器人里,用户 决定下一步。用户问一个问题,模型回答一次;用户追问,模型再答——每一次交互都是独立的“你问→它答”。模型从来没有自己说“我需要先查一下资料再回答”的能力,因为它根本没有“下一步”这个概念。
在智能体里,模型自己 决定下一步。用户在开头给了目标(比如“帮我规划周末北京游”),然后模型进入一个循环:它看当前状态(已经知道什么、还缺什么),决定下一步动作(查天气?查酒店?查交通?),调用一个工具去执行,观察结果,然后再次决定下一步。这个循环一直持续到任务完成。
这就是智能体的最小定义:模型 + 循环 + 工具2。
套上循环之后:从“回答”变成“执行”
这个循环在学术上叫 ReAct(Reasoning + Acting),来自 2023 年的一篇论文3。它的结构很简单:
观察(Observe)→ 思考(Think)→ 行动(Act)→ 观察 → 思考 → 行动……直到任务完成。
每一步的具体含义是:
- 观察:模型读取当前上下文——用户的目标、之前工具调用的结果、对话历史。这是它“感知环境”的方式。
- 思考:模型推理下一步该做什么。它可能想:“我已经知道了天气,但还不知道酒店价格,所以我应该先查酒店。”
- 行动:模型输出一个结构化的工具调用指令(比如
{"tool": "search_hotel", "args": {"city": "北京", "date": "2026-03-15"}}),由外部的运行时(runtime)去真正执行这个调用。 - 观察结果:工具返回的数据(比如酒店列表)被追加到上下文中,模型再次进入“观察→思考”阶段。
这个循环把 LLM 从“一次回答完就停”变成了“持续执行直到任务完成”。模型不再是等用户追问,而是自己驱动下一步。
下图展示的就是这个循环的完整形态:
为什么这个循环是质变?
没有循环之前,聊天机器人能做的是 生成文本。有了循环之后,智能体能做的是 完成目标。这两个层次完全不同:
| 聊天机器人 | 智能体 |
|---|---|
| 每次输入触发一次回答 | 一次目标驱动多次迭代 |
| 输出是文本 | 输出是行动 + 文本 |
| 不执行任何操作 | 通过工具执行操作(搜索、查库、发请求) |
| 无法感知操作结果 | 观察结果后调整下一步 |
| 用户必须推进对话 | 模型自己推进执行 |
举一个具体的例子:你让助手“帮我查一下最新的 Python 3.13 新特性,并对比 3.12 的差异”。
- 聊天机器人模式:模型直接基于训练数据里的知识,写出一个回答。如果它的训练数据截止于 3.12 发布时,那它根本不知道 3.13 有什么新东西,但依然会流畅地编造一个答案(这就是“幻觉”的来源)。
- 智能体模式:模型先观察——“我缺少 3.13 的官方发布信息,需要查一下。”然后行动——调用搜索工具查找“Python 3.13 release notes”。观察结果——阅读搜索到的文档。再思考——“现在我有了 3.13 的信息,还需要与 3.12 对比。”再行动——调用另一个工具搜索或读取相关文档。观察结果后,最终生成一份基于真实数据的对比报告。
两次模式下,模型生成的文本看起来一样流畅,但智能体版本的每一条信息都有真实来源支撑。
小结
当你跟一个纯聊天机器人对话时,你面对的是一个 语言接口——它擅长理解你的问题并生成优美的回答,但它永远无法跨出文本的世界。
智能体做的就是 给这个语言接口装上手脚和传感器:用循环让它持续运转,用工具让它触碰真实世界。模型仍然只做一件事——预测下一个 token——但因为它每次预测时,上下文里都多了工具返回的真实数据,“下一个 token”就从“听起来合理的下一个词”变成了“基于真实信息的下一个行动”。
下一期我们会深入这个循环的内部,看看工具调用(Tool Calling / Function Calling)的具体机制——模型到底是怎么“说出”一个工具调用指令的,runtime 又是怎么执行的。