ReAct
高级通用
ReAct 是一种让 AI Agent 交替判断下一步、调用工具并根据返回结果继续行动的方法。它解决的是任务开始时信息不全、无法一次规划到底的问题,例如排查报错时先读日志,再决定查哪段代码。
你可能会说:「我想让 AI 先查实际情况,再根据查到的结果决定下一步,而不是一口气猜完整个方案。」
动手看看排查下单页提交失败
1
用户说下单页提交失败,但光看页面还不知道卡在哪。助手先决定读日志,不急着猜原因。
要点ReAct 怎样带着工具一步步解决问题?
- 1
先判断当前缺少什么信息
你让 Agent 排查订单提交失败,它不必立刻给结论。它可以先判断缺的是请求记录、服务端日志还是代码上下文,再选一个能缩小问题范围的动作。
- 2
调用工具并读取真实结果
选好动作后,Agent 才去查日志、搜索代码或运行测试。工具返回的是观察结果,不是最终答案;如果日志指向支付接口超时,后续调查就该围绕这条线索展开。
- 3
根据观察调整下一步行动
ReAct 的关键是让后续动作受前一步结果影响。查到接口没有报错,就换方向检查前端请求;证据足够时再回答。这样比预先写死一串操作更能适应意外情况。
容易混淆的地方
工具调用只是让模型能执行搜索、读文件等动作;ReAct 关注的是何时调用、读完结果后如何决定下一步。它也不是所有 Agent 循环的统称:循环可以按固定流程运行,而 ReAct 强调判断、行动和观察之间的交替反馈。
什么时候用
适合用
- 排查线上接口异常时,让 Agent 先查日志,再根据报错位置选择代码或监控数据继续看。
- 处理陌生代码库的改动请求时,让 Agent 边搜索相关文件边调整实现计划。
- 做带工具的客服助手时,先查询订单状态,再决定回答用户还是继续核对物流记录。
不适合用
- 只是把用户填写的表单按固定字段保存到数据库时,用明确的接口流程更直接。
- 只是对一段已提供的文案做润色时,直接让模型改写即可,不需要工具反馈循环。
- 步骤固定且每步都有确定规则的批量数据清洗,用脚本或工作流更容易检查和复现。
练一练选一个答案,看看解释
你让 Agent 排查网站结账失败。它查到前端请求返回成功,但订单仍未生成。哪种后续做法最符合 ReAct?
让 AI 帮你做复制给 AI Agent 直接用
请用 ReAct 方式排查这个结账失败问题:先说明当前需要核实什么,再选择合适的工具读取日志或代码;每次根据工具返回结果决定下一步。证据不足时继续查证,最后给出结论及依据,不要臆测工具结果。