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

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

## 14.2.1 ReAct 模式

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

![ReAct 循环流程图](/files/KLdvUBDYYf4Met1PECdm)

图 14-2：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-3 所示。

![多智能体协作架构图](/files/OqtX8vY0AAZpMMqovNYN)

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

**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 思考题

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://yeasy.gitbook.io/ai_beginner_guide/di-si-bu-fen-jin-jie-yu-zhan-wang/14_agents/14.2_planning_action.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
