Super-agent 架构拆解:Router 与 Worker
上一篇讲了多 Agent 并行:任务按产出拆成几份,几个 Agent 各干各的,最后拼起来。但并行跑起来之后会多出一个问题:谁来拆、谁来派、谁来收?几个人各干各的没人管,活派出去就没人盯,收回来也没人拼,并行还是会乱。
所以并行之上还要一层管事的,这就是 Super-agent:一个常驻的 Router,加上几个各干各的 Worker。Router 不干活,只管派活、收活、盯进度;Worker 不管别人,只干自己那一份。 分工一旦分清楚,并行才真的跑得动。
一、Router 是干什么的
Router 是整个架构里唯一常驻的那个。你每次说话,都是先到它手里。它只做三件事:
- 听明白要什么。 把你的话翻成一件具体的任务:要交的东西是什么,做到什么程度算完。听不明白就先问一句,而不是猜着往下派。
- 判断派给谁。 看任务是哪一类,对上哪个 Worker 的 Skill,再看那个 Worker 手里的材料够不够、有没有别的事在等。派错人比没派人更糟。
- 盯住进度收结果。 活派出去不是就完了,Router 要记着谁手里有什么、什么时候该交,收回来先对一遍格式,再拼成一份完整的交给你。
Router 有一条铁律:它自己不干活。 不写文件、不跑检查、不直接改东西。一旦 Router 下场干活,它就没空管别人,整个架构就退化成一个单打独斗的 Agent,只是名字好听一点。
反过来想也一样:你找 Router 帮忙,不用管背后有几个 Worker。你只跟 Router 一个人说话,拆活、派活、收活都是它的事,这就是 Super-agent 用起来像“一个 Agent”的原因。
二、Worker 怎么分工
Worker 是干活的,每一个只认一类活。分工按能力分,不按人头分:
- 一个 Worker 一类活。 比如一个专门查文字、一个专门查链接和图片、一个专门查分类和标签。活的类型和 Worker 一一对上,派的时候不用想,照着类型派就行。
- 每个 Worker 带着自己的 Skill。 查文字的那个带着文字检查的 SKILL.md,查链接的带着链接检查的 Skill,各自的脚本和参考资料也分开放。第三篇讲的渐进加载在这里正好用上:Router 派活的时候,只把要用的那个 Skill 交给对应的 Worker,不用的不给。
- 每个 Worker 只写自己那一份。 查文字的只改文字检查的结果,绝不顺手去动链接那份。只读可以重叠,写必须分开——这是上一篇的三条规矩,到了 Super-agent 里还是一样。
Worker 之间还有一条:互相不直接说话。 A 发现 B 的结果有问题,不直接去改 B 的那份,而是报给 Router,由 Router 决定是让 B 重做,还是换一个人做。横向一开口,责任就分不清了。
三、Router 和 Worker 怎么配合
架构搭起来,真正决定它转不转的,是派活和收活的那几下。派活的时候,Router 要把四样东西一次给齐:
- 做什么。 任务本身是什么,交出来的东西长什么样。
- 用什么材料。 看哪篇文章、哪份文件,材料在哪,别让 Worker 自己到处找。
- 交什么格式。 结果按什么格式交回来,一张表还是几行字,格式先定好,收回来才能直接拼。
- 什么时候交。 不用精确到分钟,但得有个说法,Router 才知道什么时候该去催、什么时候算超时。
收活的时候,Router 先做两件事:对格式,再拼结果。格式不对就退回去重交,不要在汇总表上顺手改数字;拼完之后回头看一遍,几份结果有没有互相矛盾,有矛盾就回到具体那一份去核对,不要在总表上直接改。
中间卡住了怎么办?Worker 做到一半发现材料不够、判断不下去,停下来报给 Router,不要猜着往下做。 Router 来决定:是补材料、换个人,还是这件事先放下。并行的时候,一个猜错的结论会顺着汇总表一路扩散,收拾起来比串行还贵。
四、动手:把一篇待发文章的检查跑一次
拿发文章前的检查练一次,目标是:你只跟 Router 说一句话,三个 Worker 各查一块,最后拼成一张表,全程没人改别人的东西。
- 你跟 Router 说一句话:“检查一下这篇待发文章。”Router 先听明白:要交的是一张检查总表,通过才算完。
- Router 把检查拆成三份:A 查文字、B 查链接和图片、C 查分类和标签。每份带齐四样东西:做什么、用什么材料、交什么格式、什么时候交。
- 三个 Worker 同时开工,各查各的。查的过程中,谁也不看别人的进度,谁也不改别人的结果。A 发现 B 那份可能有问题,记下来报给 Router,不自己上手改。
- 三份结果都交回来之后,Router 先对格式,再拼成一张总表:哪条通过、哪条不通过、不通过的要怎么改。拼完再回头看一遍有没有互相矛盾,有矛盾就回到具体那一份去核对。
练完这一次,对照一下:你只说了一句话,背后三个人干活、一张表收回来,中间你一次也没插手。如果哪一步还得你亲自下场,问题一般出在 Router 身上:要么拆得不干净,要么派活的时候四样东西没给齐。
练一次:给你的下一件大事画一张 Router 图
找一件你手头比较大的事,不用真的叫几个 Agent 跑,先在纸上把架构画出来:
- 中间画一个 Router,写下它要听明白的那句话:最后要交出来的东西是什么。
- 周围画两到三个 Worker,每个写上它负责的那一类活,和它要带上的 Skill。
- 每条连线上写清楚:Router 派过去四样东西是什么,Worker 交回来的是什么格式。
- 再写一行:如果中间卡住了,Worker 停下来报给 Router,Router 换人还是等,谁说了算。
画完之后问自己一句:如果 Router 今天请假,这张图还能不能转?如果不能,说明活还压在你自己身上,Router 只是个传话的;如果能,Super-agent 就搭起来了。
下一篇,我们讲给 Agent 立规矩:安全审计 Skill——Worker 再能干,也得先划清哪些事碰都不能碰。