ReAct是一种将推理(Reasoning)与行动(Acting)相结合的智能体(Agent)设计模式,常见于大语言模型(LLM)应用开发(如 LangChain、AutoGPT)。
它的核心思想是让模型在解决复杂任务时交替进行:
- 思考(Thought):分析当前状态,规划下一步。
- 行动(Action):调用外部工具(如搜索、计算器、API)。
- 观察(Observation):接收工具返回的结果。
| 步骤 | 名称 | 核心职责 | 功能描述 |
|---|---|---|---|
| 1 | Thought 思考 | 规划 | 思考用户问题,制定行动方案 |
| 2 | Action 行动 | 执行 | 调用工具 |
| 3 | Observation 观察 | 接收 | 获取原始结果,作为推理依据 |
| 4 | Thought 思考(评估) | 判断决策 | 评估信息是否足够(如果不满足回答,决定下一步 Action 行动做什么事情),决定循环或结束 |
| 5 | Answer 回答 | 输出 | 向用户输出最终答案 |
典型流程示例(用户问:“今天XX公司股价是多少?”):
- Thought 思考:我需要查找今天的股价。# 思考用户问题,制定行动方案
- Action 行动:Search[XX公司 股价 2026-04-21]# 调用工具
- Observation 观察:收盘价 125.30 元# 获取工具返回的原始结果,作为下一步推理的依据
- Thought 思考(评估):已获得答案。# 评估当前积累的观察结果是否足以回答用户问题。若信息不足,指定下一步行动任务 返回第2步循环执行。
- Answer 回答:XX公司今日收盘价为 125.30 元。# 向用户输出最终答案
ReAct 的核心循环是:
行动 → 观察 → 思考(评估)。若信息不足则继续行动,直至积累的信息足以回答用户问题,最后输出答案。
优势:
- 提高事实准确性(结合外部数据)
- 增强可解释性(推理过程可见)
- 处理需要多步交互的复杂任务
典型应用:代码生成、生成文档、数据分析、自动化操作等。
Trae 内置的 ReACT 模式回答用户问题
用户问题:重构这个函数并添加错误处理
Trae 内部执行流程:
- Thought(思考):需要先读取当前代码 → Action(行动):读取文件
- Observation(观察):获得代码内容
- Thought(思考/评估):需要理解函数逻辑 → Action(行动):分析依赖
- Observation(观察):发现有3个依赖函数
- Thought(思考/评估):信息充足,可以开始重构 → Action(行动):生成新代码
- Answer(回答):输出重构后的代码