🧩 第5章 组合用:搭建多技能工作流
📄 一句话概括

组合的本质不是画流程图,是排依赖:谁必须在谁之后,谁跟谁不相干。 排完依赖只有三种排法:串联(一条链)、并联(同层一起发)、循环(打回重做)。 同一个七步任务,一次一个要七轮,按层同时只要四轮。省下的三轮全来自「同层」这三个字。

📝 本章和前面几章的关系

上一篇把共用的能力拆出去了,这一篇讲拆完之后怎么排顺序。 第 4 章的五个技能是一条现成的链,这里拿它当例子排一遍。 下一篇讲并联的一个前提:主智能体只有一个,要同时催好几路,得派子智能体。

一、组合的本质是排依赖

先说清楚「组合」到底在做什么。不是把几个技能画成一排方框,是回答两个问题。 谁必须在谁之后?没有大纲写不了初稿,这是硬依赖,绕不过去。 谁跟谁不相干?第一节和第二节写的时候互不看对方,这是可并联。 两个问题答完,图就自己长出来了。先画方框再想依赖,是反的。 依赖只有两种:数据依赖(要上一步的产出)和判断依赖(要人点头)。 判断依赖常被忽略。写完大纲要人挑一个,这一步不进图,但它同样卡住后面所有步。

二、串联:一条链

最直觉的排法:做完一个接下一个。七步就七轮。 它的好处是简单、好排查。哪一步坏了,看最后一个产物就知道。 坏处是慢。而且慢得没必要——七步里有三步本来可以同时做。 串联该用在哪:有硬前后关系的那些步。素材分析到定大纲,必须串。 判断一句:如果下一步要看上一步的结果才知道怎么干,就必须串。

三、并联:同层一起发

把七步按依赖分层,同一层的可以一起发。这个任务分出来是四层。

层 几步 哪些
第 1 层 1 素材分析
第 2 层 1 定大纲
第 3 层 3 三节初稿
第 4 层 2 统一润色、配图方案

四层,最宽的一层三步。这就是「七轮变四轮」的来源——省下的三轮全在第三层。 并联有一条硬前提:同层的几个产物必须互不依赖。 如果第一节写到一半要看看第二节怎么写的,那它们就不能并行,得退回串联。 还有一条软代价:同层的结果要先合并,才能进下一层。合并本身要花一轮。

四、循环:打回重做

第三种不是排顺序,是加回头路。写完评一遍,不达标就打回重写。 润色这一步天然是循环:改完按清单评,不达标再改。 循环必须有出口,而且出口要写成数字:最多再改两轮。 没有上限的循环是工作流里最常见的坑。它会一直改下去,而且越改越偏。 出口有两种写法:按轮数(最多三轮)、按标准(密度降到 1.0 以下就停)。 两种都写最好:标准决定什么时候该停,轮数决定什么时候必须停。

五、一张表:什么场景用什么

方式 图上长什么样 什么时候用
串联 一条链,做完一个接下一个 步骤有硬前后关系
并联 同层几个一起发 几个产物互不依赖
循环 做→评→不达标→回去改 有明确的验收标准

三种不是互斥的,一条真实的工作流里三种都有。 以上面那条链为例:整体是串联(分层之后仍有先后),第三层内部是并联,润色那一步是循环。 所以别问「该用哪一种」,要问「这一段该用哪一种」。

六、导演口令:把排法说成四句话

排法想清楚之后,落到嘴上就是几句话。这几句话是要说给智能体听的。 第一句派活:「先做素材分析,做完把结论给我看一眼。」 第二句上闸:「我点头之后定大纲,大纲出三个方案让我挑。」 第三句并行:「挑完三节同时写,三节都要按同一份大纲的措辞。」 第四句收口:「三节齐了再润色,改完按清单评一遍,不达标最多再改两轮。」 四句话里有三处在派活,一处在上闸:三个方案、同一份措辞、最多两轮。 这三处闸门就是导演和操作员的区别。操作员一句一句喊,导演只定闸门。

七、动手 Demo:把七步排成四层,省下三轮

这一段拿一篇五节的文章当任务,拆成七个动作,按依赖算出层次,再比两种排法的轮数。 分层是真算的:反复挑出「依赖都已完成」的动作,挑一轮就是一层。

TASKS = [('A 素材分析', []),
         ('B 定大纲', ['A 素材分析']),
         ('C1 第一节初稿', ['B 定大纲']),
         ('C2 第二节初稿', ['B 定大纲']),
         ('D 统一润色', ['C1', 'C2', 'C3']), ...]

done, layers = set(), []
while len(done) < len(TASKS):
    cur = [n for n, deps in TASKS if n not in done and all(d in done for d in deps)]
    layers.append(cur)
    done |= set(cur)

实跑输出:

--------------------------------------------------------------------
把七步排成四层,省下三轮
--------------------------------------------------------------------


  ① 一篇五节的文章,拆成七个动作
  --------------------------------------------------------------------
| 动作 | 依赖谁 |
|---|---|
| A 素材分析 | 无 |
| B 定大纲 | A 素材分析 |
| C1 第一节初稿 | B 定大纲 |
| C2 第二节初稿 | B 定大纲 |
| C3 第三节初稿 | B 定大纲 |
| D 统一润色 | C1 第一节初稿、C2 第二节初稿、C3 第三节初稿 |
| E 配图方案 | C1 第一节初稿、C2 第二节初稿、C3 第三节初稿 |

  七个动作里,只有 C1、C2、C3 三个互不相干。
  其余四个都有明确的前后关系:没有大纲写不了初稿,没有初稿润不了色。

  ② 按依赖分层:同一层可以同时做
  --------------------------------------------------------------------
| 层 | 几步 | 哪些 |
|---|:---:|---|
| 第 1 层 | 1 | A 素材分析 |
| 第 2 层 | 1 | B 定大纲 |
| 第 3 层 | 3 | C1 第一节初稿、C2 第二节初稿、C3 第三节初稿 |
| 第 4 层 | 2 | D 统一润色、E 配图方案 |

  一共 4 层,最宽的一层有 3 步。

  ③ 两种排法的轮数差
  --------------------------------------------------------------------
| 排法 | 最少几轮 | 代价 |
|---|:---:|---|
| 一次一个 | 7 | 安全,但慢 |
| 按层同时 | 4 | 快,但同层的结果要先合并 |

  七轮变 4 轮,省 3 轮。
  ! 同层能同时做的前提是互不依赖。C1 写到一半要看 C2 写了什么,就得退回串行。

  ④ 第三种组合:循环(打回重做)
  --------------------------------------------------------------------
| 方式 | 图上长什么样 | 什么时候用 |
|---|---|---|
| 串联 | 一条链,做完一个接下一个 | 步骤有硬前后关系 |
| 并联 | 同层几个一起发 | 几个产物互不依赖 |
| 循环 | 做→评→不达标→回去改 | 有明确的验收标准 |

  润色这一步天然是循环:写完评一遍,不达标就打回上一节重写。
  循环必须有出口。没有「最多改几轮」的约定,它会一直改下去。

  ⑤ 导演口令:把排法说成一句话
  --------------------------------------------------------------------

  [派活口令 · 逐字可用]
  | 先做素材分析,做完把结论给我看一眼。
  | 我点头之后定大纲,大纲出三个方案让我挑。
  | 挑完三节同时写,三节都要按同一份大纲的措辞。
  | 三节齐了再润色,改完自己按清单评一遍,不达标最多再改两轮。
  这四句话就是一条工作流的全部指令

  四句话里有三处在派活,一处在上闸:三个方案、同一份措辞、最多两轮。
  ! 不给上限的循环,是工作流里最常见的坑。

第一段七个动作摆开,只有 C1、C2、C3 三个互不相干,其余四个都有明确的前后关系。 第二段按依赖分层,算出四层:素材、大纲、三节初稿、润色加配图。最宽的一层三步。 第三段比轮数:一次一个要七轮,按层同时只要四轮,省三轮。 省下的三轮全在第三层。这也说明并联的收益取决于「最宽那层有多宽」,不是「步数有多少」。 第四段讲循环:润色天然是循环,但必须有出口,出口要写成数字。 第五段是导演口令,四句话里三处在派活、一处在上闸。三处闸门是导演和操作员的区别。

30 秒实验

  1. 把你手上的一个多步任务写成「动作加依赖」两列,然后算出层次。你会发现层数远少于步数。
  2. 给每一步标一下:这步的产出下一步是不是必须看。标完就知道哪些能同时发。
  3. 给你现有的循环加一个数字上限。没有上限的那个,就是你最容易卡住的地方。

常见误区

  1. 先画方框再想依赖。方框是结果不是起点。先答「谁在谁之后」,图自己会长出来。
  2. 忽略判断依赖。「写完大纲要人挑一个」不进图,但它同样卡住后面所有步。 不算进去,排出来的轮数永远是错的。
  3. 循环不设出口。没有「最多再改几轮」的约定,它会一直改下去,而且越改越偏。 标准决定什么时候该停,轮数决定什么时候必须停,两个都写。
自测三问(点开对答案) 1. 组合的本质是在做什么? —— 排依赖:谁必须在谁之后,谁跟谁不相干。两问答完,图自然就出来了。 2. 并联省下的时间取决于什么? —— 取决于最宽的那一层有多宽,不是总步数有多少。七步里最宽的一层三步,就只省三轮。 3. 循环的出口为什么要写成数字? —— 没有上限的循环会一直改下去。标准决定什么时候该停,轮数决定什么时候必须停。

下一篇讲并联的前提:主智能体只有一个,要同时催三路,得先派三个分身出去。

相关笔记