1. Why?为什么需要任务拆分?
- LLM Context Window 有上限。
- 任务越大 → 中间状态越多 → 越容易出错。
- 执行过程可能超出上下文窗口。
2. How?如何拆分与执行?
2.1 静态执行(Workflow)
定义: 提前把流程设计好,形成固定式 Workflow。
- 优点(Adv): 执行可预测,问题好排查。
- 缺点(Dis): 灵活性低。
2.2 动态拆分(Plan-and-Execute)
定义: 任务直接交给 LLM,给出目标,由 LLM 输出计划。
flowchart LR
P["规划"] --> E["执行"] --> S["汇总"]
- 优点(Adv): 灵活性强。
- 缺点(Dis): 规划质量不能保证。
3. 步骤间依赖:有向无环图(DAG)
按原笔记关系:
Step 1 → Step 3 → Step 4Step 2 → Step 4
flowchart LR
S1["Step 1"] --> S3["Step 3"] --> S4["Step 4"]
S2["Step 2"] --> S4
- 原子化拆分: 每个子任务尽量按照原子操作拆分。
4. RePlan
- 每步结束后,将当前结果与剩余计划交给规划模块。
- 由规划模块判断是否需要调整后续计划。
flowchart LR
P["计划"] --> E["执行当前步骤"]
E --> F["执行结果 + 剩余计划"]
F --> R["RePlan:重新规划"]
R --> P