renxuai.com
03 · 自主循环

从一问一答到自主完成:Agentic Loop

聊天窗口是"你问一句,它答一句,一来一回"。Agent 是"你给一个目标,它自己拆解→计划→执行→观察→调整→继续,直到完成"。

ReAct 循环:推理 → 行动 → 观察

Agentic Loop 的核心范式——每一步都有明确的推理、行动、观察和判断:

用户目标 │ ▼ ┌───────────────────────┐ │ 1. 推理(Reason) │ ← 分析目标,制定计划 └──────────┬────────────┘ ▼ ┌───────────────────────┐ │ 2. 行动(Act) │ ← 调用工具,执行操作 └──────────┬────────────┘ ▼ ┌───────────────────────┐ │ 3. 观察(Observe) │ ← 获取工具返回结果 └──────────┬────────────┘ ▼ ┌───────────────────────┐ │ 4. 判断(Judge) │ └───┬──────────────┬────┘ │是 │否 ▼ ▼ 完成 回到 1. 推理 返回结果 调整计划

两种主要范式

维度ReActPlan-and-Execute
计划时机边做边想先想好再做
灵活性高(随时调整)低(按计划执行)
人类干预难(循环中)易(计划阶段)
适用场景探索性任务确定性任务
Token 消耗较高(每步都要推理)较低(计划只做一次)

关键工程决策

最大迭代次数

必须设上限,否则任务无法完成时会无限循环。常见上限:10-50 次,取决于任务复杂度。每次循环都要 LLM 推理 + 工具调用,10 步 = 10 次推理,成本和延迟线性增长。

人类在环的三个位置

介入时机人类控制力Agent 自主性
执行前确认(Plan 阶段)低(必须等批准)
执行中暂停(关键步骤前)中(自己跑,关键点确认)
执行后验收(最终结果)高(自己跑完再说)

中间状态维护

Agent 在执行过程中维护"当前进度"——这和 Memory 不同,它是当前任务的工作记忆,不进长期记忆,但任务期间一直保持。

💡 OpenClaw 的实际做法:ops/ACTIVE_TASK.json 持久化长任务状态到磁盘。任务不依赖聊天上下文——即使 session 重启,状态文件上的进度依然保留。这就是"状态优先于内存"的核心原则。

与聊天窗口的本质区别

维度聊天窗口Agentic Loop
交互模式一问一答多步自主循环
目标处理一次性回复持续追求目标达成
失败恢复用户重新问自我纠错重试
中间状态维护进度追踪
终止判断模型猜明确的终止条件