ReAct 框架:思考与行动的结合
什么是 ReAct?
ReAct = Reasoning + Acting
传统方法的问题:
- •纯推理:无法获取外部信息
- •纯行动:缺乏规划和反思
ReAct 的创新:
- •交替进行推理 and 行动
- •每步行动前先思考
- •根据结果调整策略
ReAct 循环
Thought: 分析当前情况,决定下一步
Action: 执行具体操作
Observation: 观察操作结果
... (重复直到解决问题)
Final Answer: 给出最终答案
ReAct 提示模板
你是一个能够使用工具的 AI 助手。
可用工具:
1. search(query) - 搜索互联网
2. calculate(expression) - 计算数学表达式
3. lookup(term) - 查询知识库
解决问题时,请遵循以下格式:
Thought: 我需要...
Action: 工具名(参数)
Observation: [工具返回结果]
Thought: 根据结果,我发现...
Action: 工具名(参数)
Observation: [工具返回结果]
... (继续直到找到答案)
Thought: 我现在有足够信息回答问题了
Final Answer: [最终答案]
问题:{用户问题}
实战示例
问题:比较 iPhone 16 和 Pixel 9 的价格
Thought: 我需要先查询 iPhone 16 的价格
Action: search("iPhone 16 官方价格 2024")
Observation: iPhone 16 起售价 5999 元,Pro 版 7999 元
Thought: 现在需要查询 Pixel 9 的价格
Action: search("Google Pixel 9 官方价格 2024")
Observation: Pixel 9 起售价 4999 元,Pro 版 6999 元
Thought: 我现在有两款手机的价格,可以进行对比
Final Answer: iPhone 16 起售价 5999 元,Pixel 9 起售价 4999 元。
Pixel 9 便宜 1000 元(约 17%)。Pro 版本差价同样是 1000 元。
ReAct 的思考技巧
1. 分解问题
Thought: 这是一个复杂问题,我需要分步解决:
1. 首先确定 X
2. 然后计算 Y
3. 最后验证 Z
2. 反思结果
Thought: 搜索结果似乎不完整,我需要换个关键词再搜索
或
Thought: 计算结果与预期不符,让我验证一下输入是否正确
3. 调整策略
Thought: 这个工具无法解决问题,我需要尝试其他方法
ReAct vs 其他范式
| 范式 | 特点 | 适用场景 | |-----|------|---------| | Chain-of-Thought | 纯推理 | 逻辑推理、数学 | | ReAct | 推理+行动 | 需要外部信息 | | Reflexion | 带反思 | 需要自我纠错 |
常见问题
Q: 行动循环不停止怎么办?
A: 设置最大迭代次数,超过后强制输出答案
Q: 工具返回错误怎么办?
A: 在 Thought 中处理错误,尝试替代方案
练习
使用 ReAct 框架解决:
问题:北京和上海,哪个城市今天更热,热多少度?
提示:需要模拟使用天气查询工具
小结
- •ReAct 交替进行推理和行动
- •Thought-Action-Observation 循环
- •适合需要外部工具的复杂任务
- •每步都要反思和调整
下一课我们将学习 Prompt Chaining。