任务分解 —— 把"大象装冰箱"变成三步,让复杂任务不再可怕
Agent Task Decomposition(任务分解)是一种将复杂任务拆解为更小、更易管理的子任务的技术。就像把"做一顿年夜饭"分解为"买菜→洗菜→切菜→炒菜→摆盘"一样,AI Agent 通过任务分解,能够系统地处理那些"看起来无从下手"的复杂请求。
核心思想:没有解决不了的问题,只有拆得不够细的任务。
子任务按顺序执行,前一个任务的输出是后一个任务的输入。
// 顺序分解示例
任务: "搜索最新AI新闻并生成日报"
分解:
1. 搜索新闻来源 → 输出: 新闻列表
2. 筛选重要新闻 → 输入: 新闻列表 → 输出: 精选新闻
3. 撰写新闻摘要 → 输入: 精选新闻 → 输出: 摘要
4. 生成HTML页面 → 输入: 摘要 → 输出: 日报页面
多个子任务同时执行,最后合并结果。
// 并行分解示例
任务: "对比分析5个竞品网站"
分解(并行执行):
├── 子任务1: 分析竞品A
├── 子任务2: 分析竞品B
├── 子任务3: 分析竞品C
├── 子任务4: 分析竞品D
└── 子任务5: 分析竞品E
合并: 汇总所有分析结果
递归分解,直到子任务足够简单。
// 层级分解示例
任务: "开发一个电商网站"
├── L1: 前端开发
│ ├── L2: 首页设计
│ │ ├── L3: 导航栏
│ │ ├── L3: 轮播图
│ │ └── L3: 商品推荐
│ └── L2: 商品详情页
├── L1: 后端开发
│ ├── L2: 用户系统
│ └── L2: 订单系统
└── L1: 数据库设计
OpenClaw 支持通过 Plan 机制和 Sub-Agent 进行任务分解和并行执行。
// OpenClaw 自动任务分解
用户: "帮我分析竞品并生成报告"
OpenClaw Plan:
Step 1: 搜索竞品信息 [in_progress]
Step 2: 分析竞品特点 [pending]
Step 3: 生成对比报告 [pending]
Step 4: 发送到飞书 [pending]
// 使用 Sub-Agent 并行处理子任务
const subTasks = [
{ task: '分析竞品A', agent: 'analyzer' },
{ task: '分析竞品B', agent: 'analyzer' },
{ task: '分析竞品C', agent: 'analyzer' }
];
// 并行执行所有子任务
const results = await Promise.all(
subTasks.map(t => sessions_spawn(t))
);
// 合并结果
const report = mergeResults(results);
| 策略 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| 顺序分解 | 有依赖关系的任务 | 逻辑清晰 | 速度慢 |
| 并行分解 | 独立子任务 | 速度快 | 需要合并逻辑 |
| 层级分解 | 超复杂任务 | 结构清晰 | 分解开销大 |
| 动态分解 | 不确定任务 | 灵活适应 | 实现复杂 |
最后更新:2026-06-25 | 作者:妙趣AI
有问题?联系我们