把核心循环「感知-规划-行动-观察」打开看,会发现它背后站着四个角色:一个定调子的「人设」、一个管账本的「记忆」、一个出主意的「规划」、一个动手的「行动」。这就是单体智能体最经典也最通用的四模块拆解——Profile、Memory、Planning、Action。
第 1.2 节定义了 Agent 的核心循环。但循环是一个「过程」,要把过程落到工程,需要回答四个具体问题:
| 问题 | 谁来回答 | 对应模块 |
|---|---|---|
| 这个 Agent 是谁?目标是什么?行为边界在哪? | Profile(人设) | 定身份与约束 |
| 它现在知道什么?过去发生了什么? | Memory(记忆) | 提供上下文与经验 |
| 下一步该做什么? | Planning(规划) | 决策与推理 |
| 怎么真的去做?做完看到了什么? | Action(行动) | 执行与观察 |
这四个问题覆盖了一个 Agent 运转所需的全部信息维度——身份、状态、决策、执行。少任何一个,循环都转不起来:
注意四模块的依赖关系:Profile 是前提(决定其他模块的调性)→ Memory 提供 Input → Planning 做决策 → Action 做执行 → Action 的观察回到 Memory。这是一个有方向的环流,不是平铺的四块。
下表给出四模块的功能定位、核心问题与本书详细展开的章节:
| 模块 | 核心职责 | 关键问题 | 详细章节 |
|---|---|---|---|
| Profile(人设) | 定义角色、目标、约束、语气 | 「我是谁?我该做什么?不该做什么?」 | 第 2.1 节 |
| Memory(记忆) | 管理短期上下文与长期经验 | 「我现在知道什么?过去发生过什么?」 | 第 2.2 + 第 5 章 |
| Planning(规划) | 任务分解、推理、策略选择 | 「下一步做什么?为什么?」 | 第 2.3 + 第 3-4 章 |
| Action(行动) | 工具调用、代码执行、动作执行 | 「怎么去做?做完看到什么?」 | 第 2.4 + 第 6 章 |
本节只给全景与定位,让读者建立「地图感」。每个模块的内部机制将在后续章节展开——这正是全书后面 6 章的主题。
Profile 模块回答「这个 Agent 是谁」。它通常以一段系统提示词(System Prompt) 的形式注入 LLM,决定 Agent 的:
| 维度 | 例子 |
|---|---|
| 角色身份 | 「你是一位资深的财务分析师」 |
| 任务目标 | 「帮助用户分析财报、识别风险」 |
| 行为约束 | 「不提供具体投资建议;不确定时必须声明」 |
| 语气风格 | 「专业、简洁、用数据说话」 |
| 可用工具 | 「你可以调用财报查询、股价查询、计算器」 |
| 输出格式 | 「结论先行,附数据来源」 |
Profile 的工程价值常常被低估,但它其实是 Agent 一致性的根基。同一个 LLM,配上「严谨的审计师」和「活泼的推销员」两套 Profile,行为差异会大到像两个模型。第 2.1 节会专门讨论 Profile 的设计方法与 System Prompt 工程。
💡 Profile 的隐藏作用:它不仅是「人设」,更是约束边界。一个没有约束的 Agent 会乐于回答任何问题、调用任何工具,这是安全灾难。Profile 里写明「不做 X、不调 Y 工具」,是 Agent 安全设计的第一道闸门。
Memory 模块回答「Agent 现在知道什么、过去发生了什么」。它分两层:
┌─────────────────────────────────────────────┐ │ 短期记忆 (Short-Term / Working Memory) │ │ - 当前对话上下文 │ │ - 最近 N 步的观察与行动 │ │ - 实现: LLM 上下文窗口 │ │ - 容量: Token 有限(几K到几百K) │ └─────────────────────────────────────────────┘ ↑ 溢出/检索 ┌─────────────────────────────────────────────┐ │ 长期记忆 (Long-Term Memory) │ │ - 历史对话、用户偏好、事实知识 │ │ - 跨会话的经验积累 │ │ - 实现: 向量数据库 / 知识图谱 / 文档库 │ │ - 容量: 近似无限 │ └─────────────────────────────────────────────┘
两层记忆的关系是「工作台 vs 档案柜」:短期记忆是 LLM 当前能看到的工作台,长期记忆是按需调取的档案柜。当工作台装不下时,旧内容被压缩或转移到档案柜;当需要历史信息时,从档案柜检索回工作台。
⚠️ 常见误区:把上下文窗口当万能记忆。即便窗口有 200K Token,也装不下数小时任务的完整历史,更装不下跨会话的经验。长期记忆不是可选项,是 Agent 超越单轮对话的必需品。这是第 5 章的全部主题。
Planning 模块回答「下一步做什么」。它是 Agent 智能含量的核心,也是全书最厚的部分(第 3-4 两章)。
Planning 有几个层次,从简单到复杂:
| 层次 | 思考方式 | 代表方法 | 适用场景 |
|---|---|---|---|
| 直接回答 | 不规划,直接生成 | Zero-shot | 简单问答 |
| 分步推理 | 把思考过程写出来 | 思维链 CoT | 多步推理题 |
| 边想边做 | 思考与行动交替 | ReAct | 工具调用任务 |
| 多路径探索 | 多条思路并行评估 | 思维树 ToT | 创意/搜索类问题 |
| 任务分解 | 大任务拆成小任务 | Decomposed Prompting | 复杂长程任务 |
| 先规划后执行 | 一次规划全部,再执行 | Plan-and-Execute | 步骤明确的任务 |
一个关键认知:Planning 不是一个固定算法,而是一个策略空间。同一个 Agent 面对不同任务,应该路由到不同规划策略——简单任务用直接回答,复杂任务用 ReAct,创意任务用 ToT。第 3 章讲各种规划算法,第 4 章专攻 ReAct,第 2.3 节则讨论「怎么在不同策略间路由」。
💡 过度规划的陷阱:不是所有任务都需要复杂规划。给「今天天气如何」配一套 ReAct + 任务分解,既慢又贵。优秀的 Agent 设计懂得让规划粒度匹配任务难度——简单任务轻装上阵,复杂任务才上重型武器。
Action 模块回答「怎么真的去做」。它把 Planning 输出的「下一步动作」翻译成对真实世界的操作。
Action 的形态主要有三类:
| 行动类型 | 实现方式 | 例子 |
|---|---|---|
| 工具/函数调用 | 调用预注册的 API/函数 | 查天气、查数据库、发邮件 |
| 代码执行 | 在沙箱里运行生成的代码 | 数据分析、复杂计算 |
| 直接回答 | 不调工具,直接生成文本 | 解释、建议、闲聊 |
Action 模块的核心工程问题有三个,都留到第 6 章详解:
⚠️ Action 是 Agent 风险最高的模块。规划错了顶多绕远路,行动错了可能转错账、发错邮件、删错数据。Action 的设计原则是「能力最小化 + 高危确认」——给 Agent 的权限刚好够完成任务,多余的一点不给;任何不可逆操作都要人类点头。
把四模块串起来看一个完整的数据流。任务:「帮我把昨天的销售数据算个同比,发到我的邮箱」。
可以看到,四模块不是顺序执行一次就结束,而是在每一轮循环里都重新走一遍:Profile 每轮都在调子上把关、Memory 每轮都更新状态、Planning 每轮都重新决策、Action 每轮都执行并观察。循环往复,直到任务完成。
Profile-Memory-Planning-Action 是单体智能体的参考架构,不是唯一模板。实际系统常见两类变体:
简单 Agent 会合并模块以降低复杂度:
结果是「LLM + 工具循环」的最小 Agent,适合简单任务。这是 LangChain ReAct Agent、OpenAI Assistants 等很多框架的默认形态。
复杂 Agent 会把单个模块拆得更细:
结果是多层级 Agent 架构,适合长程复杂任务。
💡 设计原则:架构粒度应匹配任务复杂度。简单任务用轻量架构,过度设计反而增加故障面;复杂任务用重型架构,模块化才能管理复杂度。第 8 章会给出框架选型的决策树。
最后,把四模块与第 1.2 节的核心循环对应起来,形成全书统一的视图:
| 核心循环环节 | 主要负责模块 | 辅助模块 |
|---|---|---|
| 感知 Perceive | Memory(读取状态与历史) | Profile(决定关注什么) |
| 规划 Plan | Planning | Profile(约束规划方向) |
| 行动 Act | Action | Planning(提供动作指令) |
| 观察 Observe | Action(提取结果)→ Memory(写回) | Planning(判定是否完成) |
四模块是「横向的功能切片」,核心循环是「纵向的时间流转」。两者交叉,就构成了单体智能体的完整运转图景。后续章节都会落在这张坐标系上:
下一节《1.4 发展脉络与里程碑》将从历史维度梳理 Agent 概念的来路,看清 LLM Agent 在 AI 发展长河中的坐标。