> For the complete documentation index, see [llms.txt](https://yeasy.gitbook.io/ai_beginner_guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yeasy.gitbook.io/ai_beginner_guide/di-si-bu-fen-jin-jie-yu-zhan-wang/14_agents/14.2_planning_action.md).

# 14.2 智能体是如何工作的？

我们可以通过一个简单的模型——**ReAct（Reasoning + Acting，推理+行动）**（由普林斯顿大学与 Google 团队于 2022 年首次发布于 arXiv，论文发表于 ICLR 2023）来理解智能体的工作流程。

## 14.2.1 ReAct 模式

ReAct 是智能体最经典的思考模式。它要求 AI 在每一步行动前，先进行推理（Reasoning），行动（Acting）后，再观察结果（Observation）。如图 14-1 所示，这三个步骤形成一个循环，直到得出最终答案。

![ReAct 循环流程图](https://2739399952-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaZyTkA2zdBnH8mlZ6JeQ%2Fuploads%2Fgit-blob-4b58c25da2dfd6a8d2107304299a185f8fb87d2b%2Freact_cycle.png?alt=media)

图 14-1：ReAct 循环流程——思考、行动、观察不断迭代，直到得出最终答案

**任务**：“周杰伦现在的年龄是多少？他的年龄乘以 2 是多少？”

**智能聊天机器人（Smart Chatbot）的做法**（可能瞎猜）：

“周杰伦今年 45 岁，乘以 2 是 90。”（如果你运气好，它蒙对了年龄；运气不好，它是拿 2021 年的数据算的）

**智能体（Agent）的做法（ReAct）**：

1. **思考（Thought）**：用户问周杰伦现在的年龄。我需要先查一下他的出生日期，然后根据今天的日期计算年龄。
2. **行动（Action）**：调用搜索工具 `Search(“周杰伦 出生日期”)`。
3. **观察（Observation）**：搜索结果显示 “周杰伦出生于 1979 年 1 月 18 日”。
4. **思考（Thought）**：好，知道了出生日期。现在需要获取当前日期。
5. **行动（Action）**：调用系统时间工具 `GetTime()`。
6. **观察（Observation）**：系统时间工具返回日期 `2026-02-13`（示例日期）。
7. **思考（Thought）**：出生日期是 `1979-01-18`，到 `2026-02-13` 已过生日，所以当前年龄是 `47`。
8. **行动（Action）**：调用计算器 `Calculate(47 * 2)`。
9. **观察（Observation）**：得到 `94`。
10. **最终回答 (Final Answer)**：按示例日期 `2026-02-13` 计算，周杰伦现在是 `47` 岁，他的年龄乘以 2 是 `94`。

智能体（Agent）不靠“猜”，它靠“查”和“算”。

## 14.2.2 规划能力

对于更复杂的任务（如写游戏代码），智能体需要更高级的规划。

* **任务分解**：把大任务拆成子任务（Sub-goals）。
* **反思（Reflection）**：如果一步做错了，它可以根据报错信息提出修正方案，再试一次。

这种 **基于反馈迭代** 的能力，是智能体最有价值的方向之一，但实际可靠性仍依赖测试、权限控制和人工审核。

## 14.2.3 多智能体

一个诸葛亮不如三个臭皮匠。有时候，我们需要组建一个智能体团队。

**软件开发团队**：

* **产品经理智能体**：负责把用户需求写成文档。
* **架构师智能体**：负责设计代码结构。
* **工程师智能体**：负责写代码。
* **测试智能体**：负责找 Bug，把 Bug 扔回给工程师。

用户只需要说一句：“帮我写个贪吃蛇游戏”，这几个智能体就会在后台互相聊天、互相通过文件协作，最终交付给你一个可运行的游戏。如图 14-2 所示。

![多智能体协作架构图](https://2739399952-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaZyTkA2zdBnH8mlZ6JeQ%2Fuploads%2Fgit-blob-e85f45857a0de97e3d808a460f93b6cc7d732b7b%2Fmulti_agent_collaboration.png?alt=media)

图 14-2：多智能体协作——各角色智能体分工合作，完成软件开发全流程

**MetaGPT** 和 **AutoGen** 就是这种多智能体框架的代表。

## 14.2.4 智能体安全与评测：从“能跑”到“可上线”

很多智能体 Demo 看起来很惊艳，但离在真实业务中上线运行，还差了至关重要的 **工程化与安全加固** 步骤。

> \[!IMPORTANT] **智能体生产基线与工具协议风险**
>
> 当企业基于 **MCP（Model Context Protocol）** 等标准化协议将内部知识库和系统工具大批量接入智能体后，系统的攻击面会指数级增加。例如，黑客可能通过在网页中隐藏恶意指令（提示词注入），诱骗智能体读取该页面后自动调用 MCP 工具执行删库命令（这被称为“链式工具利用”）。工业级部署必须满足三大基线：

1. **评测体系（Evals）**：传统的软件测试是给定输入看输出。但智能体每次的回答不同，解决问题路径也不同。需要建立一套专门的端到端测试集，评测其在这个任务上的 **成功率**、**平均耗时**、**Token 成本**。安全环节必须注入对抗性测试（Red-teaming）来验证它是否会被越狱骗走权限。
2. **行动边界与防护（Guardrails）**：
   * **工具沙盒化与最小权限**：确保给大模型的 API 密钥只拥有能完成任务的绝对最低权限（例如只读，而非读写）。
   * **人类介入拦截（Human-in-the-loop）**：对于诸如：转账、写库、发送公开邮件、执行系统命令等高危动作，禁止 AI 自动执行。在工具调用前，必须挂起进程并向人类发送通知进行 **二次批准**。
3. **审计与可观测性（Observability）**：必须像监控微服务一样监控智能体，全面记录：**时间戳、Trace ID、意图识别结果、完整的输入输出参数、以及原始 API 响应耗时**。一旦系统搞砸了或触发安全警报，工程师可以通过这些字段精准回放“案发现场”。

没有这三件套，智能体很容易停留在“演示可用、生产翻车”的隐患阶段。

## 14.2.5 思考题

如果你要把一个“演示版智能体”上线到真实业务中，你最担心的是评测、防护、还是可观测？为什么？
