Damn AgentBeta

规划、反思与任务分解

长任务 Agent 中的规划、执行、反思、停止条件和人工接管边界。

这个页面用于承载长任务 Agent 的任务拆解和自我检查机制。它关注 Agent 如何把一个模糊目标拆成可执行、可验证、可停止的步骤。

建设边界

  • Task Decomposition:把目标拆成可执行、可验证、可回滚的小步骤。
  • Planner、Executor、Critic、Reviewer 的职责边界。
  • ReAct、Plan-and-Execute、Reflection、Self-Refine 等模式的适用场景。
  • 动态调整:执行过程中如何根据工具结果修正计划。
  • 停止条件:完成标准、最大步数、预算、风险阈值、人工接管。
  • 失败模式:无限循环、过度反思、计划漂移、验证缺失。

从目标到计划

规划的第一步不是列 todo,而是把用户目标改写成可验收标准:

问题例子
目标是什么补齐一组文档页面
成功如何证明文件已修改、lint/build 通过、commit 已推送、issue 有证据
有哪些约束中文写作、只改本组文件、不要覆盖他人改动
哪些动作有风险推送代码、修改 issue、删除文件
什么时候停止所有验收项满足,或遇到凭据/权限阻塞

没有成功标准的计划,很容易变成“看起来做了很多事”,但无法证明任务完成。

计划模式对比

模式适用场景风险
ReAct每一步都依赖工具观察结果可能陷入局部循环
Plan-and-Execute目标较清楚、步骤可预估初始计划错误会放大
Reflection需要自检、纠错、复盘过度反思导致成本上升
Self-Refine文案、总结、代码片段等可迭代产物没有外部验证时可能自我强化错误
人工确认计划高风险、长任务、外部副作用交互成本更高

工程实现里通常会混用这些模式:先计划,再执行;每步执行后观察;关键节点反思;高风险动作前交给人确认。

职责边界

角色应该负责不应该负责
Planner拆目标、排顺序、识别风险编造未观察到的事实
Executor调用工具、修改文件、收集证据跳过权限和 schema 校验
Critic对照成功标准找问题无限提出主观改进
Reviewer检查质量、测试和交付证据代替工具结果做事实判断
Human确认高风险动作和业务取舍手动弥补系统缺失的 trace

这些角色可以由同一个模型在不同提示下扮演,也可以由不同模型或规则模块实现。关键是职责要被记录和验证。

任务 DAG

长任务可以从线性 todo 升级为 DAG:

正在渲染图表…

DAG 的价值是明确依赖关系:没有读取现状就不该编辑;没有验证就不该提交;没有推送就不能把 commit 当成交付证据。

反思的输入

反思不应该只问模型“你觉得做得好吗”。有效反思需要证据:

  • 当前计划和成功标准。
  • 工具结果、测试输出、diff、截图或日志。
  • 已知失败和重试记录。
  • 用户明确约束和风险偏好。
  • 预算、步数、权限和时间限制。

反思输出也要结构化:继续执行、修改计划、请求确认、降级、停止失败或交付完成。

停止条件

停止条件建议写成可机器判断的规则:

type StopReason =
  | "success"
  | "needs_human_confirmation"
  | "blocked_by_missing_input"
  | "budget_exceeded"
  | "repeated_failure"
  | "unsafe_action";

不同停止原因对应不同产品行为。success 可以交付;needs_human_confirmation 应暂停等待;repeated_failure 应报告证据和已尝试路径;unsafe_action 应拒绝或升级审批。

常见失败模式

失败模式现象修正方式
计划漂移执行中忘记原始目标每步带上成功标准和当前计划
过度拆解简单任务被拆成大量无意义步骤给计划粒度设上限
过度反思每一步都生成长篇自评只在关键节点反思
自我确认没有运行工具就说通过反思必须引用外部证据
失败重试无上限同样动作反复失败记录失败签名并触发降级

检查清单

  • 是否先定义了可验收成功标准。
  • 是否把高风险动作标记为需要人工确认。
  • 是否能在工具失败后重规划,而不是重复同一步。
  • 是否有最大步数、最大预算和重复失败阈值。
  • 是否把反思输出转成下一步动作,而不是只写总结。
  • 是否在交付前运行了与风险匹配的验证。

延伸阅读

  • Agent Loop:规划与反思在 Loop 中的位置。
  • 评测与回归:用固定样例验证计划策略是否真的更好。
  • ReAct:推理与行动交替。
  • Reflexion:通过语言反馈和记忆改进后续尝试。
  • Self-Refine:生成、反馈、改写的迭代式自我改进。

On this page