Agent 规划与任务分解

agent_planning2026-09-03 00:08:33

Agent 规划与任务分解是把目标转化为可执行步骤,并根据执行结果持续调整步骤的机制。规划的价值不在于生成一份看起来完整的清单,而在于帮助 Agent 管理依赖、验证中间结果并在环境变化时重新决策。

为什么需要规划

简单任务可能一次模型调用就能完成;复杂任务通常包含多个依赖步骤,例如先收集资料、再修改文件、运行检查,最后汇总结果。缺少规划时,Agent 更容易遗漏约束、过早结束、重复执行或在错误方向上持续消耗资源。

常见方式

  • 反应式执行:每获得一次新观察就决定下一步,不预先生成完整计划;适合步骤少、环境变化快的任务;
  • 先计划后执行:先拆分任务,再按顺序执行;适合依赖关系清晰的任务;
  • 动态重规划:保留高层目标,但在每个关键结果或错误后更新后续步骤;
  • 搜索式规划:同时探索多个候选路径,进行评分、回溯或剪枝;适合解空间复杂但成本也更高的任务;
  • 分层规划:先确定阶段性目标,再为当前阶段生成更细步骤,避免一次计划过长。

实际 Agent 经常采用混合方式:先建立简短计划,再以“行动—观察—更新计划”的闭环推进。

好的任务分解

一个可执行步骤应当:

  • 只有一个清晰目标,并能映射到具体工具或模型操作;
  • 写明所需输入、预期产物和完成条件;
  • 显式表达与前后步骤的依赖;
  • 把高风险写操作与只读调查分开;
  • 在关键边界安排验证,而不是等到最后才检查;
  • 控制粒度,既不笼统到无法执行,也不细碎到增加无意义调用。

计划不是事实来源

“计划中写着完成”不代表外部任务真的完成。Harness 应根据工具结果、测试、文件状态或人工审批更新步骤状态。模型提出计划,环境证据决定步骤是否完成。

重规划时机

  • 工具返回新事实,使原假设失效;
  • 某个步骤失败且重试不能解决;
  • 用户补充或修改目标;
  • 发现新的依赖、风险或权限要求;
  • 已达到时间、步骤数或成本预算;
  • 验证结果表明产物仍不满足完成条件。

重规划应保留已验证成果,撤销失效假设,并说明计划为什么改变。

最小状态结构

type PlanStep = {
  id: string;
  goal: string;
  status: "pending" | "in_progress" | "completed" | "blocked";
  dependsOn: string[];
  completionEvidence?: string;
};

结构化计划便于界面展示、程序校验和恢复执行。对于很短的任务,不必强行生成计划;规划本身也有 Token、延迟和维护成本。

相关词条

参考资料

本页目录