从 Andon 到 DAG:任务规划模式汇总

2026-06-05任务规划Agent架构模式

为什么需要任务规划

Agent 面对复杂任务时需要自动分解、排序、调度。不同的任务规划模式适用不同的场景。

五种规划模式

1. Andon Cord(拉绳模式)

最简单模式。Agent 执行过程中遇到能力边界时"拉绳"——触发一个预设的升级/转交动作。适合简单的人机协作场景。

用户提问 → Agent 尝试回答 → 不确定?→ 转人工

2. ReAct + 最大步数限制

每次迭代:Thought → Action → Observation。设定最大轮数(如 5-10 次),超限或达成目标时停止。适合单工具链、步骤数可控的任务。

3. 序列化工具链(Pipeline)

预定义的线性步骤序列,前一步的输出是后一步的输入。适合流程固定的任务(如:身份解析 → 记忆加载 → RAG → 生成)。

4. Plan-then-Execute(先规划后执行)

Planner 将任务分解为 DAG,Executor 按拓扑序执行。适合复杂、多步骤的任务。

用户: "帮我请年假 + 订机票 + 通知团队"
Planner 分解:
  t1: 检年假余额 ──→ t2: 提交请假申请 ──→ t4: 通知团队
                                         ↗
  t3: 查询航班 ────────────────────────┘

WorkflowEngine:
  拓扑排序: t1 → t3 (并行) → t2 → t4

5. 任务规划器(Task Planner)

动态规划模式。Planner 不预先生成完整 DAG,而是每步执行后重新评估下一步。适合步骤数不确定、需要动态调整的任务。

选型建议

任务复杂度推荐模式示例
单步直接问答查询天气
2-3 步固定流程序列化 Pipeline请假审批
多步不确定ReAct 循环客户服务对话
多步骤多分支Plan-then-Execute DAG旅行规划
动态复杂任务Task Planner编程助手

DAG 拓扑排序(Kahn 算法)

1. 计算每个节点的入度(依赖数)
2. 入度为 0 的节点入队(可以并行执行)
3. 出队时执行该节点
4. 执行后,减少下游节点入度
5. 入度为 0 的新节点入队
6. 重复直到所有节点执行完毕
7. 如果有节点未执行 → 存在循环依赖

关键工程考量

  • 超时控制:每个节点和整体都要有超时
  • 重试策略:节点失败后重试/跳过/降级
  • 状态持久化:DAG 执行中途崩溃可恢复
  • 并行度控制:避免太多并行任务打爆资源
未标记