--- title: ReAct 循环 created: 2026-04-13 updated: 2026-04-13 type: concept tags: [agent, runtime, architecture] sources: [packages/backend/src/modules/netaclaw/runtime/agent.ts] --- # ReAct 循环 ReAct(Reasoning + Acting)是 NetaClaw Agent 的核心推理模式。LLM 交替进行"思考"和"行动",直到任务完成。 ## 工作原理 ``` 用户输入 → LLM 推理 ├─ 直接回答(无需工具)→ 结束 └─ 需要工具 → 输出 tool_use block → 执行工具 → 获取 tool_result → 将结果追加到对话历史 → 再次调用 LLM 推理(下一轮) → 重复直到 LLM 不再调用工具 ``` ## 关键约束 - **最大轮次**:`maxToolRounds` 限制循环次数,防止无限循环 - **流式输出**:每轮推理的 token 实时通过 WebSocket 推送 - **思考能力**:支持 Anthropic 的 `extended_thinking`,思考内容单独推送 ## 与传统 Chain 的区别 | | ReAct | 固定 Chain | |---|---|---| | 决策方式 | LLM 自主决定是否调用工具 | 预定义的步骤序列 | | 灵活性 | 高,可动态组合工具 | 低,固定流程 | | 适用场景 | 开放式任务 | 结构化流程 | ## 相关页面 - [[agent-runtime]] — 实现 ReAct 循环的代码 - [[tool-system]] — 循环中可调用的工具 - [[websocket-gateway]] — 流式推送通道