这两年模型越来越能打,单个 agent 已经能独立完成相当复杂的任务,很少需要人插手,于是很多人会一次开好几个,让它们同时干活;效率确实上去了,可你得在几个窗口之间来回切换,挨个推进每个 agent 的工作;它们并行,你串行,时间一长就会发现,同时开三五个 agent 已经是极限,你的注意力成了整个流程里最大的瓶颈

为了解决这个问题,DeepSeek 最近开源了一套下一代 agent 方案:Super-agent,原型代码在 GitHub 仓库 deepseek-ai/dsh-superagent-prototype;下面把它的关键设计一次讲清楚

双层架构:给你配一个主管

一个人同时盯几个 agent 顾不过来,最直接的解法就是加一层中间层:在人和 agent 之间放一个承接需求、往下分发任务的角色,有点像公司做大之后,老板不再直接管每个人,而是找主管替自己管人

这个中间层叫 Router,下面真正干活的 agent 叫 Worker;Router 自己不写代码,主要做判断和分发,用轻量模型就够;Worker 负责具体任务,用能力最强的模型干活;这上下两层,就是 Super-agent 的双层架构

普通 agent 架构里,你自己就是那个主管:开好几个会话,挨个看进度、做决定;双层架构把这份会话管理从你身上拿走,交给 Router,原先压在你身上的活,现在由它承接

那这跟常见的主 agent 加几个 subagent 有什么区别?主 agent 得吃透整个任务的逻辑,自己参与执行,再把其中几步拆给 subagent,并不停地协调、汇总结果;而 Router 主要做分发,每个任务交给一个 Worker 从头跟到尾,它只负责把 Worker 的结论转告给你;至于 Worker 内部要拆任务步骤,它自己也可以再开 subagent,这些细节 Router 不关心

事件驱动:让 agent 自己听见动静

到这一步,agent 还是被动的:你不发话,它就不动;怎么让它自己找活干?最直接的办法是把它接进团队每天都在用的群、GitHub 和 CI 通知里,让它一直听着

但这些地方一天几百上千条消息,大多跟它没关系,每条都让大模型判断一次,又贵又慢;所以筛选分两层:第一层是写死的规则,按来源、发消息的人和所在的群,把明显没用的挡掉;剩下的才交给大模型,判断值不值得动手

这些从群、GitHub、CI 传进来的消息叫 Trigger,用 Trigger 驱动 agent 干活的模式就是事件驱动;它带来的变化很直观:有人在群里随口说了句 "某个功能好像挂了",没有 @ 任何人,过一会儿就有一个 Worker 自己复现问题、修好、提了个 PR 上来

Trigger 还可以自定义新增,比如一条日程提醒、一封会议邀约邮件,都可以用不同的方式唤醒 AI 干活

订阅和直通:别让消息全堵在 Router

任务派出去不等于结束:PR 提上去之后,后面还会陆续来新评论、新的 CI 结果;要是每条都先回到 Router,让它判断该交给谁,Router 很快就成了卡点

所以 Router 把一条 Trigger 派给某个 Worker 时,会让这个 Worker 订阅同一串的后续 Trigger;所谓 "同一串",就是同一个 PR 下的评论和 CI 结果、群里同一个话题的回复、同一串往来的邮件;之后这一串再来新的 Trigger,程序直接送到这个 Worker 手里,不再经过 Router

实测下来,这套机制能让 Router 少做 30% 的判断,相应省下 30% 的 token

批处理:消息越堆积,单条成本越低

订阅和直通分走了后续消息,可新消息该派给谁,还是得 Router 判断;群里一下冒出几十条,它判断得过来吗?Router 的做法是:正忙的时候,新来的先攒着,等手上这批判断完,再把攒下的合进一次判断里,这就是批处理

实测数据很能说明问题:消息量从每分钟 1 条涨到 40 条,Router 单次判断的耗时只从 2.5 秒涨到 3.9 秒;摊到每条消息上,反而从 6.4 秒降到了 1.6 秒;也就是说,消息越堆积,Router 处理每一条消息的成本反而越低

全双工:后台干活,前台说话

Router 把活派给 Worker,Worker 跑一整套测试要十几分钟;要是 Router 派完就停在那等结果,这十几分钟里你再说什么,它都收不到

解法是把派活、跑命令这类耗时操作改成异步的:Router 把活派出去,马上收到一句 "已经开始了",接着就能听你说下一句;Worker 干完,结果作为一条新消息送回 Router

Worker 自己跑长命令也一样:测试在后台跑,这期间 PR 下面有人留言,它照样能收到;后台跑着任务、前台正常对话,两头同时进行,这就是全双工

大多数 agent 跑长任务时,你想补句话、想叫停,只能等它跑完;而在全双工里,你随时能插话,它也能随时把跑偏的任务停掉

存算分离:脑子在云上,手脚在本地

agent 跑在你这台机器上,驱动它一步步思考的循环、它的会话记录、它干活用的环境,全绑在这台机器上;机器一停,它也就停了,前面说的靠群消息触发任务的能力自然也停了;本质原因是它只能运行在一台机器上

Super-agent 的做法是把这两类东西拆开:把思考循环搬上云,会话记录存进数据库,这样不管你的机器开没开,它都一直在线

可思考搬上云了,命令最终还得在机器上跑;干活用的环境要是也搬上云,比如本地没提交的改动、只有内网能连的服务、一堆私人凭据,搬起来又麻烦又容易漏;所以环境留在本地,每台机器上只放一个很轻的小程序,听云上的指令在本地跑命令,再把结果传回去

这种把思考和会话记录搬上云、执行环境留在本地的拆法,就是存算分离;普通 agent 跟一台机器绑在一起,机器一睡它就停,也用不了别的机器;存算分离之后,它一直在云上在线,哪台机器开着就用哪台;你合上笔记本,它照样在群里接活,在别的机器上干活;需要你笔记本才能做的,等它重新上线,再自动接着做

Watchdog:外面再站一个检查员

Worker 一直在云上跑,时间一长难免出问题,比如陷进死循环,或者越干越偏;所以在整套系统外面,再挂一个独立的 agent,定时叫醒它做一轮检查;它可以用模型检测每个 Worker 有没有实质进展、方向有没有跑偏,发现问题就及时介入修复

这个在外面盯着的 agent 就是 Watchdog;普通 agent 卡住或跑偏,只能靠你自己发现、自己拉回来;有了 Watchdog,这件事也不用你操心了

合起来:连续、主动、高效、持久

现在可以把这些设计串起来了:Router 和 Worker 组成双层架构,你只跟 Router 对接,底下好几个 Worker 同时干活,感觉始终在跟同一个 agent 说话,这是连续;事件驱动把它接上群、GitHub 和 CI,它能自己听到动静、主动找活干,订阅和直通又让同一串的后续 Trigger 直达 Worker,Router 不被消息堆住,这是主动;Worker 跑着长任务时,全双工让 Router 照样能接你的话,这是高效;存算分离让它一直在线、还能用上不同的机器,最外面还有 Watchdog 盯着,卡住或跑偏都能及时恢复,这是持久

你一个人顾不过来的那些会话,现在有一个超级管家替你管着,你只需要在关键的地方做决定、做验收;这些能力共同构成一个能同时推进好几件事、自己找活干、还能一直在线的 agent 系统,也就是 Super-agent

最后要说明的是,DeepSeek 这次开源的只是一个研究原型,预期中的一些设计还没完全落地,完整方案可以再等等

Logo

更多推荐