聊天窗口是"你问一句,它答一句,一来一回"。Agent 是"你给一个目标,它自己拆解→计划→执行→观察→调整→继续,直到完成"。
Agentic Loop 的核心范式——每一步都有明确的推理、行动、观察和判断:
| 维度 | ReAct | Plan-and-Execute |
|---|---|---|
| 计划时机 | 边做边想 | 先想好再做 |
| 灵活性 | 高(随时调整) | 低(按计划执行) |
| 人类干预 | 难(循环中) | 易(计划阶段) |
| 适用场景 | 探索性任务 | 确定性任务 |
| Token 消耗 | 较高(每步都要推理) | 较低(计划只做一次) |
必须设上限,否则任务无法完成时会无限循环。常见上限:10-50 次,取决于任务复杂度。每次循环都要 LLM 推理 + 工具调用,10 步 = 10 次推理,成本和延迟线性增长。
| 介入时机 | 人类控制力 | Agent 自主性 |
|---|---|---|
| 执行前确认(Plan 阶段) | 强 | 低(必须等批准) |
| 执行中暂停(关键步骤前) | 中 | 中(自己跑,关键点确认) |
| 执行后验收(最终结果) | 低 | 高(自己跑完再说) |
Agent 在执行过程中维护"当前进度"——这和 Memory 不同,它是当前任务的工作记忆,不进长期记忆,但任务期间一直保持。
ops/ACTIVE_TASK.json 持久化长任务状态到磁盘。任务不依赖聊天上下文——即使 session 重启,状态文件上的进度依然保留。这就是"状态优先于内存"的核心原则。
| 维度 | 聊天窗口 | Agentic Loop |
|---|---|---|
| 交互模式 | 一问一答 | 多步自主循环 |
| 目标处理 | 一次性回复 | 持续追求目标达成 |
| 失败恢复 | 用户重新问 | 自我纠错重试 |
| 中间状态 | 无 | 维护进度追踪 |
| 终止判断 | 模型猜 | 明确的终止条件 |