跳转至

ReAct(Reason → Act → Observe)

解决的问题

当下一步必须依赖“观测”(工具输出/环境反馈)时,你需要一个控制 loop:

  • 决定下一步做什么
  • 调工具
  • 写回 observation
  • 重复直到完成

什么时候用

  • 工具调用次数不确定
  • 环境是交互式的(检索/API/文件等)
  • 你需要明确的终止条件(final)

核心流程(Action Schema)

flowchart TD
  S["State(messages)"] --> D["Decide action (JSON)"]
  D -->|tool| T["Call tool"]
  T --> O["Observation"]
  O --> S
  D -->|final| F["Final answer"]

演化路径

  • 基于:Tool calling + Structured output + Loop controller
  • 常见特化:
  • Agentic RAG = ReAct + retrieval tool + evidence ledger
  • Governance = 在 tool call 前后加 policy/guardrails/HITL

本仓库对应

  • 代码:src/agent_patterns_lab/patterns/react.py
  • 示例:examples/21_react_loop.py
  • 测试:tests/test_react.py