跳到正文

ReAct

高级通用

ReAct 是一种让 AI Agent 交替判断下一步、调用工具并根据返回结果继续行动的方法。它解决的是任务开始时信息不全、无法一次规划到底的问题,例如排查报错时先读日志,再决定查哪段代码。

你可能会说:「我想让 AI 先查实际情况,再根据查到的结果决定下一步,而不是一口气猜完整个方案。」

读之前建议先了解(这是一个高级概念)

动手看看

查报错排查助手先找线索日志工具订单代码
1

用户说下单页提交失败,但光看页面还不知道卡在哪。助手先决定读日志,不急着猜原因。

要点

  1. 1

    先判断当前缺少什么信息

    你让 Agent 排查订单提交失败,它不必立刻给结论。它可以先判断缺的是请求记录、服务端日志还是代码上下文,再选一个能缩小问题范围的动作。

  2. 2

    调用工具并读取真实结果

    选好动作后,Agent 才去查日志、搜索代码或运行测试。工具返回的是观察结果,不是最终答案;如果日志指向支付接口超时,后续调查就该围绕这条线索展开。

  3. 3

    根据观察调整下一步行动

    ReAct 的关键是让后续动作受前一步结果影响。查到接口没有报错,就换方向检查前端请求;证据足够时再回答。这样比预先写死一串操作更能适应意外情况。

容易混淆的地方

工具调用只是让模型能执行搜索、读文件等动作;ReAct 关注的是何时调用、读完结果后如何决定下一步。它也不是所有 Agent 循环的统称:循环可以按固定流程运行,而 ReAct 强调判断、行动和观察之间的交替反馈。

什么时候用

适合用

  • 排查线上接口异常时,让 Agent 先查日志,再根据报错位置选择代码或监控数据继续看。
  • 处理陌生代码库的改动请求时,让 Agent 边搜索相关文件边调整实现计划。
  • 做带工具的客服助手时,先查询订单状态,再决定回答用户还是继续核对物流记录。

不适合用

  • 只是把用户填写的表单按固定字段保存到数据库时,用明确的接口流程更直接。
  • 只是对一段已提供的文案做润色时,直接让模型改写即可,不需要工具反馈循环。
  • 步骤固定且每步都有确定规则的批量数据清洗,用脚本或工作流更容易检查和复现。

练一练

你让 Agent 排查网站结账失败。它查到前端请求返回成功,但订单仍未生成。哪种后续做法最符合 ReAct?

让 AI 帮你做

请用 ReAct 方式排查这个结账失败问题:先说明当前需要核实什么,再选择合适的工具读取日志或代码;每次根据工具返回结果决定下一步。证据不足时继续查证,最后给出结论及依据,不要臆测工具结果。

接下来学什么