Claude Code 学习站

任务分解策略

考点 1.6 · Task decomposition · 所属域权重 27% · 智能体架构与编排

本页目录5

这个考点是什么

任务分解(task decomposition)考的是:面对一个复杂目标,应该把它拆成几步、拆分方式在写代码时就定死,还是留给运行时的 LLM 自己判断。

Anthropic 在《Building Effective Agents》中把这类多步 LLM 系统统称为 agentic systems,并按控制流归属分成两类:workflow 是「LLM 和工具通过预定义的代码路径被编排」,agent 则是「LLM 动态地主导自己的流程和工具使用,自行决定如何完成任务、何时结束」。这条分界线只看控制权在谁手里,和调用了几次模型、部署在哪、用不用工具或 MCP 都无关。

在 workflow 一侧,文章给出五种可组合的模式,都建立在 augmented LLM(具备检索、工具、记忆能力的单次调用)之上:

  • prompt chaining 把任务拆成有先后依赖的固定步骤链式执行;

  • routing 先对输入分类再分发到专门路径;

  • parallelization 把任务拆成互不依赖的子任务并发执行(sectioning)或让同一任务跑多份取共识(voting);

  • orchestrator-workers 由一个中央 LLM 在运行时动态决定拆成哪些子任务并派发给 worker;evaluator-optimizer 则是生成—评估—反馈的迭代循环。

这个考点的核心是:分解策略的选择要看任务本身的性质——子任务边界能否在写代码时就确定、子任务之间是否存在数据依赖、是否需要迭代打磨——而不是死记模式名字对应哪句话。Anthropic 也强调应从最简单的方案开始,只有当它明确提升效果时才引入更复杂的分解或自主性。

为什么考

这个考点常以「给一段场景描述,让你判断该用哪种分解模式」的形式出题,而不是直接考定义背诵。

典型出题角度包括:

  • 根据子任务能否在运行前预先列出,区分 orchestrator-workersparallelization

  • 根据子任务之间是否存在前后数据依赖,区分 prompt chainingparallelization(sectioning);

  • 根据是否存在「生成—评估」反馈循环识别 evaluator-optimizer

  • 以及给出 workflow vs agent 的定义,用调用次数、托管位置、MCP 依赖等编造条件做干扰项。

还有一类「事故排查」式题目,考的是分解错误的根因定位——例如协调者把子任务拆得过窄导致覆盖不全,根源在分解阶段本身,而非下游执行是否正确。

核心辨析

  1. 1

    workflow 与 agent 的唯一判据是控制流的主导方

    预定义代码路径、步骤由开发者写死是 workflow,LLM 在运行时自主决定流程和工具使用是 agent。调用次数、是否部署在服务端、是否使用工具或 MCP 都不是判定标准,题目常用这些编造条件做干扰项。

  2. 2

    orchestrator-workersparallelization 都会把任务拆给多个执行者,区别在于子任务集合能否在运行前预先定义:能预先固定拆分的是 parallelization,拆分方式本身由中央 LLM 根据具体输入动态决定的才是 orchestrator-workers

  3. 3

    prompt chainingparallelization(sectioning)都涉及多步骤,但 chaining 的关键是后一步消费前一步的输出,存在顺序数据依赖;若各子任务互不依赖、只是并发执行后合并结果,即使描述里用了「链」这种字眼,本质仍是 parallelization

  4. 4

    evaluator-optimizer 的判定关键不是「有没有第二次调用」,而是是否存在明确的评估标准、且针对同一产出反复生成—评估—修订直至满足标准;只是简单分两步生成和检查、不循环打磨,不构成这一模式。

  5. 5

    routing 是先对输入分类、再整体转交给某个专门路径处理,分类之后该分支不会再被继续拆分或并发执行;若题干描述的是「分类后又并发处理多个子部分」,应重新判断是否叠加了 parallelization,而非直接套用单一模式。

  6. 6

    场景类题目考的是从描述中抽象出决策特征(子任务边界能否预知、是否有数据依赖、是否需要迭代反馈),而不是记住关键词映射;分解出错的根因也可能出在分解阶段本身(如协调者拆分范围过窄),而不是下游执行是否正确。

反模式对照

常见做法

用调用了几次 LLM、是否部署在服务端、是否依赖 MCP 来区分 workflow 和 agent

正确做法

只看控制流的主导方:预定义代码路径决定流程是 workflow,LLM 自主决定流程和工具使用是 agent

这条分界线只讲控制权归属,题目里凡是在此之外附加的条件(调用次数、托管位置、MCP)都是编造的干扰项。

常见做法

只要看到「中央 LLM + 多个子任务」就判为 orchestrator-workers

正确做法

先问子任务集合能否在运行前预先定义:能预先固定的是 parallelization,拆分本身由运行时 LLM 动态决定的才是 orchestrator-workers

这是两者的核心区分点;协调者把范围拆得过窄导致覆盖不全,根因也在这一步而非下游执行。

常见做法

把互不依赖、只是结果被合并的并行子任务称为 prompt chaining

正确做法

chaining 的本质是后一步消费前一步的输出,存在顺序数据依赖;互不依赖、可同时执行的子任务应识别为 parallelization(sectioning)

判定 chaining 必须能具体指出「谁消费了谁的输出」,否则只是术语上的牵强套用。

常见做法

客户一次提出多个独立诉求时,继续逐条串行处理或丢给一个笼统的单一环节兜底

正确做法

把独立诉求拆成不同调查项,基于共享上下文并发处理,再汇总成统一回复

独立、无先后依赖的子任务是 parallelization 的典型适用场景,并发能把总耗时压到接近最长单项的时长,而非各项耗时之和。

练这个考点