人类解决问题时,通常是“思考→行动→观察→再思考”的循环过程。现在,有一种名为ReAct的框架让AI也学会了这种思维方式,它将推理与行动无缝结合。这使得AI不再是单纯的“问答机器”,而是能够主动探索和解决问题的智能体。

为什么需要ReAct框架?
想象一下这个常见的场景:
你:北京今天的天气怎么样?
ChatGPT:抱歉,我无法获取实时信息,建议您查看天气预报应用。
问题 在于,像ChatGPT这样的传统大语言模型只能“思考”,无法“行动”。
如果AI能像人类一样,通过以下步骤解决问题呢?
- 思考:用户想知道北京天气。
- 行动:调用天气API查询。
- 观察:获取到天气数据。
- 再思考:将数据整理成易读的答案。
这正是 ReAct框架 的核心思想。
一、什么是ReAct框架?
名称由来
ReAct = Reasoning(推理)+ Acting(行动)
这个由普林斯顿大学研究人员提出的框架,旨在让AI具备以下能力:
- 推理:分析问题,制定计划。
- 行动:执行具体操作。
- 观察:获取执行结果。
- 循环:基于结果继续推理和行动。
核心思想
传统AI:仅有推理,缺乏行动能力。
用户提问 → AI理解 → AI回答
↑
只能基于已有知识
ReAct AI:推理与行动相结合。
用户提问 → AI推理 → AI行动 → 观察结果 → 再次推理 → 继续行动 → 得到答案
↑
可以获取新信息
二、ReAct的完整循环

Thought(思考)
用户:帮我查一下GitHub上OpenAI仓库的星标数
AI思考:
- 用户想要获取GitHub仓库信息
- 需要调用GitHub API
- 仓库是 openai/openai
- 应该查询 stargazers_count 字段
Action(行动)
AI行动:
调用 github_api.get_repo(“openai/openai”)
Observation(观察)
观察结果:
{
“name”: “openai”,
“stargazers_count”: 185000,
“language”: “Python”
}
下一个循环
AI思考:
- 获取到了星标数:185000
- 用户可能还想了解其他信息
- 提供完整回答
AI回答:
OpenAI的GitHub仓库有18.5万颗星,使用Python开发。
三、ReAct vs 传统方法
对比图示

| 传统 Chain-of-Thought |
ReAct |
| 只能推理 |
推理+行动 |
| 无法获取外部信息 |
可以调用工具 |
| 知识截止到训练时间 |
可以获取实时数据 |
| 静态思考 |
动态交互 |
实际例子
任务:分析一个网站的SEO。
传统方法:
AI:我无法直接访问网站,您可以提供网站URL,然后我教您如何分析…
ReAct方法:
AI思考:需要分析网站SEO,首先获取网站内容
AI行动:调用 http_get(“https://example.com”)
AI观察:获取到HTML内容
AI思考:需要分析标题、描述、关键词
AI行动:调用 analyze_seo(html_content)
AI观察:得到SEO分析结果
AI思考:整理成用户易读的格式
AI回答:[提供完整的SEO分析报告]
四、ReAct的应用场景
1. 数据分析

用户:分析这个销售数据,找出Top 10产品
AI思考:
- 需要读取销售数据文件
- 可能需要数据清洗
- 按销售额排序
- 取前10名
AI行动:file_read(“sales_data.csv”)
AI观察:获取到10000行销售记录
AI思考:
- 数据量较大,需要用Python处理
- 按产品汇总销售额
- 排序并取Top 10
AI行动:python_exec(code=“…汇总和排序代码…”)
AI观察:得到Top 10产品列表
AI思考:
- 用户可能想要可视化
- 生成图表会更直观
AI行动:python_exec(code=“生成图表代码…”)
AI观察:图表生成成功
AI回答:
[提供Top 10产品列表和可视化图表]
2. 代码调试
用户:我的代码报错了,帮我看看
AI思考:
- 需要先读取代码文件
- 运行代码获取错误信息
- 分析错误原因
- 提供修复方案
AI行动:file_read(“app.py”)
AI观察:获取到代码内容
AI行动:run_command(“python app.py”)
AI观察:错误 “NameError: name ‘config’ is not defined”
AI思考:
- 缺少 config 模块导入
- 需要检查是否有 config.py
- 或需要创建配置文件
AI行动:file_search(“config”, directory=“.”)
AI观察:找到 config.py
AI思考:
- config.py 存在但没有导入
- 需要添加 import 语句
AI行动:file_write(“app.py”, content=“添加了 import config 的代码”)
AI观察:文件已更新
AI行动:run_command(“python app.py”)
AI观察:代码运行成功 ✓
AI回答:
问题已修复!原因是没有导入 config 模块。
已添加 `import config` 语句,现在可以正常运行了。
3. 信息检索
用户:最新的AI模型有哪些进展?
AI思考:
- 这是一个时效性问题
- 需要搜索最新信息
- 可以用搜索工具
AI行动:search_web(“AI模型最新进展 2026”)
AI观察:找到相关文章和新闻
AI思考:
- 获取到了多个信息源
- 需要整理和总结
- 提取关键进展
AI行动:read_article([文章URL1, 文章URL2])
AI观察:获取到详细内容
AI回答:
[整理出2026年AI模型的最新进展,包括GPT-5、Claude 4等]
五、ReAct的技术实现
核心循环逻辑
class ReActAgent:
def solve(self, query):
thoughts = []
observations = []
# 初始思考
thought = self.think_about(query)
thoughts.append(thought)
while not self.is_solved(thought, observations):
# 选择行动
action = self.select_action(thought, observations)
# 执行行动
observation = self.execute(action)
observations.append(observation)
# 基于观察重新思考
thought = self.think_about(thought, observation)
thoughts.append(thought)
return self.format_answer(thought, observations)
行动空间定义
# AI可以执行的行动
actions = {
“search”: “搜索信息”,
“read”: “读取文件”,
“write”: “写入文件”,
“run”: “运行命令”,
“api_call”: “调用API”,
“code”: “执行代码”,
“finish”: “完成任务”
}
观察处理逻辑
def process_observation(observation):
# 提取关键信息
key_info = extract_keys(observation)
# 判断是否需要继续行动
if is_complete(key_info):
return “complete”
else:
return “continue”
六、ReAct的最佳实践
1. 清晰的思考过程
# ✅ 好的思考:结构化、步骤清晰
thought = “”“
用户想要查询天气信息。
我需要:
1. 确定用户所在城市
2. 调用天气API
3. 解析返回数据
4. 格式化输出
”“”
# ❌ 不好的思考:过于简略,无法指导行动
thought = “查天气”
2. 原子化行动
# ✅ 好的行动:每个行动只做一件事
action1 = {“tool”: “search”, “query”: “北京天气”}
action2 = {“tool”: “parse”, “data”: result}
# ❌ 不好的行动:功能混杂,难以调试和复用
action = {“tool”: “search_and_parse_and_format”}
3. 验证观察结果
# ✅ 验证观察,处理异常
if observation[“status”] == “error”:
# 错误处理
thought = f“行动失败:{observation[‘error’]}”
# 尝试其他方法
# ✅ 检查数据完整性
if required_fields not in observation:
# 继续收集信息
七、ReAct的限制与改进
当前限制

- 循环次数限制
- 行动失败处理
- 思考质量
改进方向
1. 自我反思
思考 → 行动 → 观察 → 反思 → 调整 → 再行动
2. 多路径探索
同时尝试多个行动
选择最成功的结果
3. 记忆机制
记住之前的成功经验
避免重复失败
八、ReAct与其他技术结合
ReAct + 工具调用
现代AI开发框架,如 LangChain,已经将ReAct模式与丰富的工具调用能力深度整合,使得构建功能强大的AI Agent变得更加便捷。
思考:需要发送邮件
行动:调用邮件工具
观察:邮件发送成功
ReAct + 多Agent
Agent 1(思考者):制定计划
Agent 2(执行者):执行行动
Agent 3(观察者):收集结果
共同协作完成任务
ReAct + 记忆系统
思考:我之前解决过类似问题吗?
行动:查询长期记忆
观察:找到相关经验
基于历史经验优化当前行动
九、总结:ReAct让AI“活”起来
没有ReAct的AI:
- 只能被动回答已知问题。
- 无法获取训练数据之外的新信息。
- 知识受限于模型训练的时间点。
有ReAct的AI:
- 能够主动探索和解决复杂问题。
- 可以调用工具获取实时信息。
- 实现了推理和行动的结合。
- 更接近人类“思考和做事”的方式。
这正是现代 AI Agent 的核心能力所在——它们不是简单的问答系统,而是能通过“思考-行动-观察”循环与环境交互的智能体。
对于想深入了解 AI Agent 开发实战、探索更多优秀项目实现(例如 GitHub 上的相关开源项目)的开发者,掌握ReAct框架的原理与实现是至关重要的第一步。