什么都用动态分解听起来很聪明——“需要适应时它就能适应。“但在固定流水线任务上,动态多了 30% 延迟开销却零质量提升。策略匹配——固定的用链式、探索的用动态——同时优化效率和质量。
数据:策略匹配很重要
一个系统对所有任务都用动态分解:
| 任务类型 | 动态开销 | 质量提升 | 占比 |
|---|---|---|---|
| 固定流水线(代码审查) | +30% 延迟 | 0% | 60% |
| 探索型(研究) | 微量 | +25% | 40% |
总浪费开销:30% × 60% = 整体 18%。策略匹配消除了这个浪费,同时保留探索型任务 25% 的质量提升。
Prompt chaining:固定、可预测的步骤
安全扫描 → 性能审计 → 风格检查 → 集成总结。永远是这些步骤、同样的顺序、同样的输出向前流转。Prompt chaining 提供一致性、可审计性和效率。
一个阻止执行中途改计划的刚性链式对这种任务是正确的——步骤不需要变。在这里引入动态分解增加了分析开销(agent 评估是否要适应,但从不会适应)并降低了可预测性(可能在不同运行之间不必要地偏离)。
动态分解:依赖发现的规划
“理解这个遗留代码库并识别风险区域。“Agent 事先不知道结构。它探索、发现模块、识别耦合、根据发现调整焦点。固定计划无法考虑 agent 尚未发现的东西。
当研究 agent 在 4 步链式的第 1 步发现了一篇突破性论文时,刚性链式强制第 2 步按原计划进行——错过了那篇论文的含义。动态分解让 agent 重构自己的方法。
混合:一个流水线中链式 + 动态
CI 流水线有两个阶段:
- 阶段 1(代码审查):固定 4 步链式(安全 → 性能 → 风格 → 集成)
- 阶段 2(改进建议):探索型,取决于审查发现了什么
阶段 1 用链式(可预测、可审计)。阶段 2 切到动态(自适应、发现驱动)。每个阶段得到最优策略。
半结构化任务:先链后适应
调试遵循一个模式:前 2 步是固定的(复现 → 隔离),然后方法根据找到的根因进行适应。固定步骤用链式,然后切到动态做自适应阶段。
扩展点:可预测性 + 适应性
一个 CI 系统需要可审计的步骤(审查者期望一致的结构)和适应能力(某些发现需要更深入调查)。修复:一个 prompt chain 骨架带扩展点——agent 可以在发现需要时选择性触发更深入调查的地方。链式确保一致的基础行为;扩展允许定向适应而不破坏整体结构。
“动态包含链式”是错的
同事说:“永远用动态——任务固定时它能复刻链式。“技术上没错,但动态给固定任务增加了开销:不必要的分析、降低的可预测性、更难调试。瑞士军刀能拧螺丝,但螺丝刀更适合这个活。
决策框架
步骤 1:任务有可预测的固定步骤吗?→ Prompt chaining。 步骤 2:任务需要根据发现进行适应吗?→ 动态分解。 步骤 3:两者都有固定和自适应阶段?→ 混合。
任务的性质决定策略。选择前先分析特征——不要默认用任何一种。
一句话总结: 固定流水线用 prompt chaining(省 30% 开销),探索型任务用动态分解(+25% 质量),混合任务用混合——按任务类型匹配策略,不要什么都用动态。