前面四篇,你已经在和模型"对话"了。但 Agent 不是对话,是做事。这一篇不写代码,只建立正确的概念地图------什么是 Agent、它和聊天机器人差在哪、由哪几部分组成。概念清楚后,后面三篇手写代码会非常顺。

一、一个例子看出区别
任务:查一下北京明天的天气,如果低于 10 度,提醒我穿外套。
聊天机器人怎么做?
它没有查天气的能力。它只能基于训练数据编 一个答案:"北京明天大约 5 度,建议穿外套哦。"------数字是瞎编的,看起来却很自信。这叫幻觉(hallucination) ,根源是:模型唯一的能力是"预测下一个 token",它没有渠道获取真实世界的实时信息。
Agent 怎么做?
arduino
1. 模型思考:这个任务需要先查天气 → 我有"查天气"工具可用
2. 发起调用:get_weather("北京") → 返回真实数据:8℃
3. 结果喂回模型,模型思考:8 < 10,需要提醒
4. 输出:明天北京 8℃,低于10度,记得穿外套。
区别一目了然:Agent 可以调用真实的功能(工具),并根据工具返回的真实结果决定下一步。
二、Agent 的定义:一个公式
Agent = LLM + Planning(规划) + Memory(记忆) + Tools(工具),跑在一个循环里
拆开看每一项:
| 部件 | 干什么 | 对应系列篇目 |
|---|---|---|
| LLM | 大脑:理解、思考、决策 | 01~04 已学 |
| Tools | 手:查数据、算数、执行代码、发邮件 | 06~08 |
| Planning | 拆解复杂任务、动态调整 | 09~10 |
| Memory | 记住历史、偏好、中间状态 | 14 |
| 循环(Loop) | 心脏:把上面的一切转起来 | 07 |
新手最常见的误解是把 Agent 理解成"很会聊天的高级机器人"。错。判断标准只有一条:它能不能在循环中调用工具、并根据结果调整行为。 没有循环和工具,就不是 Agent。
三、Agent Loop:一张图看懂
Agent 的核心是一个不断重复的循环,学名 ReAct(Reasoning + Acting,推理与行动):
markdown
┌──────────────────────────────────────┐
│ │
▼ │
① 接收任务 │
│ │
▼ │
② 模型思考下一步 ┌── 思考完毕,给出最终答案 ──→ ⑤ 结束
│ │
▼ │
③ 需要信息?→ 调用工具 │
│ │
▼ │
④ 工具结果喂回模型 ────────────┘(回到②继续思考)
用"新员工上岗"类比:
-
LLM 是聪明但哪儿都没去过的员工(只读过书,没碰过你们公司的系统)
-
工具是他工位上的电话、电脑、打印机
-
循环就是他的工作方式:接到任务 → 想想缺什么信息 → 打电话问(调用工具)→ 拿到答复 → 继续想 → ...... → 干完了,汇报结果
关键在第④步:工具结果要"喂回"给模型。模型看到新信息后重新思考------这就是"根据结果调整策略"。如果调用完工具不喂回去,等于员工打了电话不听答复,白打。
四、Agent 和聊天机器人的三步演进
makefile
阶段1: 聊天机器人
用户问 → 模型答 → 结束
能力: 只能靠训练时学过的知识回答
阶段2: 聊天机器人 + 记忆(02篇实现的多轮对话)
历史重传 → 模型知道你们聊过什么
能力: 记得住对话,但依然做不了事
阶段3: Agent
循环 + 工具 + 规划 + 记忆
能力: 能查真实数据、执行真实操作、能拆解多步任务
← 本系列的目标
你现在处于阶段 2。接下来三篇(06、07、08)把你带到阶段 3。
五、主流 Agent 产品都在这个框架里
用这个公式套一套你听过的产品,会有通透感:
| 产品 | 工具是什么 | 循环怎么表现 |
|---|---|---|
| ChatGPT(带联网/代码执行) | 搜索引擎、Python沙箱 | 你看到它"正在搜索..."就是在循环 |
| Claude Code / Cursor | 读写文件、执行终端命令 | 编码 → 运行 → 看报错 → 改 → 再运行 |
| Coze / Dify 搭的 Bot | 平台提供的插件 | 插件节点按需触发 |
它们看起来很神秘,拆开都是同一个 Loop。第 07 篇你将亲手写出这个 Loop 的原型------大概 100 行,是这些产品的骨架。
六、为什么 Agent 是现在这个架构(一点设计思想)
三个"为什么",帮你想通而不是背下来:
为什么工具不由模型直接执行? 模型只是文本生成器,它在物理上碰不到你的数据库。所以协议设计成:模型"申请"调用(输出结构化请求),你的代码"批准并执行"。附带的好处是安全------权限控制在你的执行层,模型想干什么都得经过你(08 篇详解)。
为什么需要循环? 复杂任务无法一次想清楚。比如"对比三个产品价格":先查 A,看到结果才知道 B 查什么口径。信息是逐步浮现的,决策必须跟着信息走,所以需要"做一步、看一步、再决定"的循环。
为什么需要记忆? 循环每转一轮、每开一个新会话,LLM 都是无状态的(02 篇)。记忆系统(14 篇)负责把该留的信息留下来、在合适的时机塞回上下文。
七、本篇小结(记住这几句)
-
判断是不是 Agent:有没有"循环 + 工具调用 + 根据结果调整" ,会聊天不算
-
Agent = LLM + Planning + Memory + Tools,跑在循环里
-
ReAct 循环五步:接收任务 → 思考 → 调工具 → 结果喂回 → (完成则)回答
-
工具是"模型申请、代码执行",安全边界在你手里
-
循环存在的原因:信息逐步浮现,决策跟着信息走
八、思考题(下篇揭晓)
-
模型只会输出文本,它怎么"告诉"你的程序该调用哪个工具、传什么参数?(提示:想想 02 篇说的"结构化数据")
-
循环怎么知道该停了?如果模型永远"再查一下"怎么办?
下一篇:06 手写 Agent Loop(上):准备工具 ------ 先把"手"造出来:工具函数、工具描述、以及模型怎么看懂它们。