Super-Agent【DeepSeek】

dsh-superagent-prototype 学习的项目地址

项目学习官方仓库

项目仓库 github.com/deepseek-ai/dsh-superagent-prototype

参考学习:

基本基础概念

Agent 能干的活越来越多了,但你的负担反而没轻多少?

来回切会话、手动派任务、挨个盯进度……

这篇文章要聊的,就是怎么把这些事从你手里接过去——从架构思路,到已经落地的能力,再到还在设想中的设计。

本文拆解的是 DeepSeek 公开的研究原型 dsh-superagent-prototype。注意:它只是个研究原型,不是正式产品,也不代表 DeepSeek 内部真正在用的实现。

双层架构

传统 Agent 架构里,一个工作区下挂着多个会话,每个会话各自跑一个任务。刚多开几个的时候很爽——效率直接拉满。

但很快瓶颈就来了:每个 Agent 跑到关键节点都会跳出来问你「这个怎么做?」「下一步往哪走?」。你刚在盯 A 的进度,B 又弹出来打断思路;你刚回复完 C,D 又卡住了。来回切换之下,同时开 3-5 个会话就差不多到顶了。

DeepSeek 推出的 Super-Agent 架构,就是冲着这个痛点来的——把你的注意力收敛到一个入口,同时接入外部消息源,让 Agent 真正能「自己跑下去」。

image.png 核心思路就一句话:把「协调」和「执行」彻底分开。

跨任务的交互、评估、分派,全归一层管;单个任务的具体执行,全归另一层管。

负责交互、评估与分派的那层,叫 Router(路由层);负责调查、写代码和验证的那层,叫 Worker(执行层)。Worker 碰到复杂任务时,还可以再开 Subagent 往下钻。

注意:这里说的「双层」是职责划分,不是说每层只能有一个会话,也不意味着要搞无限延伸的管理层级。

打个比方:就像一个主管带一个执行团队——你只跟主管对接,主管在底下组织好几条独立的工作线跑着;遇到关键决策、卡住了、或者结果要验收的时候,才把你叫过来。

image.png 模型也可以按角色配:Router 干的是轻量判断和协调的活,完全可以用更快、更便宜的模型;Worker 才是真正写代码、做执行的,按任务难度和质量要求选模型就行。

不过有两点要注意:公开原型支持分角色配置,但不会自动帮你选好模型,得自己调;另外多会话带来的额外上下文和调用开销,也可能把总 token 成本推上去。

一句话总结双层架构的精髓:职责稳定分离——Router 管交互、评估和跨任务协调,Worker 专注干具体活。

那它和常见的 Agent Team 有什么不一样?核心差别就在职责怎么分、活怎么组织。

很多 Agent Team 的主会话是「既当运动员又当裁判」——自己既要写代码干活,又要拆任务、管子智能体,两头的负担都压在一个会话上。

Super-Agent 的做法是让 Router 彻底不碰单任务的具体实施,把这部分活全甩给 Worker。

最后补个客观说明:Router 也不是真的「永远不会被打断」——它照样要处理新事件、Worker 汇报和人工消息,也有串行排队和吞吐上限。

它解决的,是「协调被耗时的执行工作堵住」这个问题,不是让 Router 变成完全不卡的神。说白了:普通 Agent Team 只要也把职责这么拆开,一样能做出双层架构。

image.png

事件驱动

不过光有双层架构还不够——它不会自己动起来。要让系统在环境变化时自动推进工作,还得给它接上「外部感官」。

理论上,聊天、邮件、日历、监控告警……各种信息源都能接进来,由规则和模型判断哪些事件值得处理。

但要注意:当前公开原型只内置了 GitHub 和可选的飞书两个 Source;微信、QQ、邮件、日历这些都还得自己写适配,不能算这个仓库已经做好的能力。

image.png

但真实信息流哪有那么干净——大部分消息根本不需要 Agent 插手。要是每条都丢给大模型从头判断一遍,不光慢,Token 成本也扛不住。

所以得做筛选,而且是两层筛选——先靠程序硬卡一道,再交给模型精判。

第一层走确定性代码:按来源、接收范围、发送人、白名单这些条件,先把明显不合格的事件直接筛掉,又快又便宜。剩下那些需要动脑子的,再交给模型——结合规则和上下文,判断这条到底是该接单、忽略,还是直接停掉。

把外部事件转成系统能认的格式,这个转换器就叫 Source;转出来的东西,就是 Trigger(触发事件)。

Trigger 不只是群消息——GitHub Issue、PR 评论、CI 状态变了……都能当 Trigger。理论上啥事件都能加个 Source 接进来。

但有一点要拎清楚:「收到事件」不等于「获准开工」。真要动手干活,还得过 Policy 和工单授权范围这一关。

image.png

订阅和直通

Worker 把结果交上来了,但事情没完——你可能要补充要求、要返工,CI 也可能又报了个新失败。

这些后续跟进,如果每次都重新走一遍 Router 分派,不光 Router 累,之前的工作上下文也容易断片。

怎么解决?公开原型用 Subscription(订阅) 把 Ticket(工单)和 Thread(讨论线程)绑在一起,而不是把「一串消息」永久钉死在某个 Worker 身上。

一个 Thread 可以关联多个 Ticket,一个 Ticket 也可以关注多个 Thread;就算后面换了 Worker,工单关系还在。

已经在工单范围内的人工跟进消息,直接送给对应的 Worker,不用重新跑一遍 Eval。主会话照样会收到通知;但如果你的请求超出了这个工单的范围,或者属于别的工单,Worker 可以退回来,让系统重新评估路由。

说白了:直通省的是反复分派的功夫,不是把边界判断也省了。

image.png Router 正在处理手上的活,新消息又涌进来了。每条都单独调一次模型?太浪费了。

解法就是攒一批一起算。

同一个 Thread 在一次 Eval 运行期间收到的新 Trigger,先攒着,等下一批评估的时候一起处理;主会话也会在后续推理步骤里集中消化积压的消息。

注意:不是等整个 Worker 任务全做完才处理,而是按评估批次和模型步骤一步步往前推。

实测数据很能说明问题:

· 流量低的时候(1条/分钟):单次判断耗时 2.5s

· 流量高的时候(40条/分钟):单次判断耗时 3.9s——只多了 1.4s

但分摊到每条消息上算总账:单条处理耗时从 6.4s 直接砍到 1.6s,效率翻了 4 倍。

说白了:多攒几条再一起判断,单次只多花一点点时间,平均到每条上便宜得多。

image.png

全双工

经典的同步 ReAct Loop 有个硬伤:Agent 发起一个耗时的工具调用,就得死等结果返回才能往下走。这段时间里,你说什么它都听不见。

(当然,这里说的是同步阻塞式的实现,不是所有 Agent 都这样。)

那「全双工」到底是什么?一句话:后台任务跑着的同时,前台照样能处理你的新输入;等后台干完了,结果再作为新事件送回来。

还是拿「让助手烧水」举例子,好懂。

水壶开始烧水,就相当于 Agent 在后台跑一个测试任务:

  • 水还没烧开,你突然想起什么补充一句——Agent 当场就能接住,不用等水开。

  • 发现方向不对,你喊停它就能停,不会闷头烧到底。

  • 等水真开了(测试跑完了),结果再递回来给你。

把烧水换成你实际用的场景——后台跑一个测试任务,逻辑一模一样:

  • 测试还没跑完,你突然补充个要求:系统会把你的消息塞进会话,等当前这步推理做完就响应,不用等整套测试结束。

  • 发现方向不对,你喊停:系统会去请求取消正在跑的工作。但注意——取消得看当前步骤和工具本身支不支持;已经发出去的外部操作,也不会自动撤销。

  • 测试跑完了:结果作为新消息自动弹回来,Agent 再判断接下来该干嘛,然后报告给你。

三个最容易搞混的概念,放一起对比一下就清楚了:

概念准确含义
同步阻塞当前调用等待工具结果,循环无法继续推进。
异步执行启动后不必阻塞等待结果;可以支持继续处理其他输入。
全双工交互后台执行期间,前台仍能处理新输入,并接收后台结果通知。

最后说下公开原型的实际情况:它是靠后台作业 + 消息注入来实现全双工体验的。Worker 的前台 shell 命令默认跑 5 秒就自动转后台,新输入会等当前推理步骤结束后再处理。

所以别神化它:全双工不是完全不排队,也不保证你说句话它就秒回——它只是把「必须等任务全做完才能说话」这个死限制拆掉了。

image.png

存算分离-未明确

传统 Agent 所有东西都绑在你这一台机器上:思考循环跑在本地、会话记录存在本地、运行环境也在本地。机器一关,整个 Agent 直接停摆——Trigger 消息收不到,任务全断。

image.png 现在 Super-Agent 把这层拆开了:

  • 思考循环 + 会话记录 → 搬上云端,存在云数据库里

  • 运行环境 → 留在你本地,不动

为什么不把环境也搬上去?因为本地环境太复杂了——里面有你的私人密钥、内网服务、还没提交的代码变动,迁移成本极高。所以每台机器上只跑一个很轻的小程序,负责把本地环境「接」上云端。

这就是存算分离:脑子和记忆在云上,手在你本地。

云端的 Agent 一直在线接活。就算你本地电脑关机了,不影响它在别的环境里继续干活;只有那些必须用你特定电脑才能做的任务,才会先挂着,等你开机上线了自动接着跑。

image.png

Watchdog-未明确

整套系统都在云上跑,Worker 数量一多、跑的时间一长,难免出状况:有的陷入死循环出不来,有的跑着跑着方向就偏了。

怎么办?在整个系统外面,放一个独立的 Watchdog Agent。它被定时唤醒,一轮一轮地巡检:用模型去检查每个 Worker 是不是有实质性进展、方向有没有跑偏,发现问题就及时介入修复。

image.png 普通 Agent 跑偏了怎么办?只能你自己盯着、手动拉回来。开多了会话根本顾不过来,等你发现的时候可能已经跑偏十万八千里了。

有了 Watchdog 就不一样——它帮你定期巡逻,自动发现问题、自动调整,不用你当那个盯梢的人。

总结

讲了这么多机制,现在可以拼出 Super-Agent 的完整图景了。

Super-Agent 的本质,就是把一群需要你分别盯着的 AI,组织成一个能统一接事、自动分工、持续跟进的「AI 管家」。你只需要做两件事:关键决策,以及结果验收。

它有四个核心特性:

  1. 连续:你始终感觉在跟同一个助手对话。背后 Router 帮你协调多个 Worker,不用你自己切会话、来回传话。

  2. 主动:群聊、GitHub、测试系统有新消息,系统自动按规则筛一遍,把相关信息送给对应的 Worker,任务自己往前推。

  3. 高效:多个 Worker 并行干活;加上全双工,跑任务的时候你照样能补充要求、随时插话。

  4. 持久:云端运行 + 多机连接,系统 7×24 小时在线,不绑死在你某一台电脑、某一个聊天窗口上。

最终效果就是——你不用再花精力盯进度、协调各个 AI,把注意力真正放在两件事上:决定要做什么,以及检查做得对不对。

最后补一句:目前公开的还是研究原型,上面说的这些设想,有些还没完全落地。

image.png

▼
mermaid
复制代码
flowchart LR S[Source] -->|Trigger| T[Thread] T -->|batch| E[Eval] T -->|Subscription fan-out| K[Ticket] E -->|accept with Mandate / stop| K E -->|ignore / unavailable| X[recorded] P[Policy change] -->|notice| K K -->|Assignment| W[Executor] K -->|Channel| S

使用体验

1. Token 消耗的隐藏巨兽

任务启动流程表面上很轻:消息源进来 → 生成 Trigger → 分发给订阅了对应 Ticket 的 Worker,没有匹配项就交给 Eval 评估,决定是创建工单还是直接忽略。

但真正跑起来才发现,Token 的黑洞藏在 Thread 与 Ticket 的多对多关系里——一个 Thread 可以挂多个 Ticket,一个 Ticket 又关联多条 Thread。一旦任务被中止后重启,主 Router 和所有分支 Worker 都会被唤醒一遍,各自核对"我这条线是不是完成了"。大量调用花在了状态对齐上,而不是业务推进,这部分开销完全是结构性浪费。

2. 轻量得意外:这就是下一代 Agent 的样子

抛开 Token 问题不谈,整体框架的设计相当克制:没有厚重的中间件,没有冗余的抽象层,每个组件都待在它该在的位置。跑通之后确实能感受到官方所说的"下一代 Agent 概念模型"的味道。

3. 毕业设计就选它了**-前言**

软件、论文、PPT 三件套,我打算整套用这个框架来搭。Token 开销直接走公司账面——也算是给它一次正式的实战检验。

4. 一个人驱动一个项目,太累了**-后话**

算了一个周末,结论很明确:单靠自己拍脑袋提需求,根本喂不饱这个框架。它更需要一个外部消息收集器,像 Magpie 那样从 Twitter、GitHub Issues 里自动捞用户反馈,作为源源不断的 Trigger 来源。

但这一切的前提是项目本身得有日活——不然连"被收集"的内容都没有。我的项目现阶段还做不到,那就老老实实干,自己一点点把需求磨出来吧。

image.png

(注:部分内容由豆包工作 AI 生成)

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
作者分享
从0构建一个Agent再深入
4
记录实习的Day1 实习两周了,感觉全天AI了,第一周就理解了下任务需求,然后自己去分析竞标产品,然后自己给自己提需求了,然后给组长看,感觉很豆腐渣工程,这个项目居然没有人来做产品经理,搞得我都好难受,从来没做过产品分析,然后里面的一些功能设计啥的都要我去出,然后第一周就让codex给我写代码了,公司不报销token很难受,然后公司只提供自己部署的ai模型,巨慢,根本用不了。然后第二周就要弄一个第一版本出来,我直接从plus升级到了pro,并且这周还用了两张重置卡,才基本做完了所有模块需求,哎,我们这个项目还是在其他开源项目二开出来的,我自己改根本时间就不够,然后要出六个模块功能出来,我真是谢了,原先这个功能模块从设计到开发完全能用,可能一个模块就要一周,现在直接两周弄了出来,花了快20亿的token,这周末我肯定要和组长说下报销token这个事情了,哪怕报销deepseek 4.1 falsh都行,自己真的扛不住了,pro账号也不够!!!
7
记录学习的Day 52 ✅ 今天做了:今天没做很多内容,就让Ai根据我的简历来问了一下面试题目。面试题就稍微看了几道就看不下去了 ⏰ 明天计划:开始投递+继续看下具体的评测手段 📚 今日感悟:加油吧!
2
记录学习的Day 51 ✅ 今天做了:复习了下面试题,然后看了下昨天做的增量更新和缓存限流的具体做法。 ⏰ 明天计划:继续面试题八股,复习面试题解 📚 今日感悟:加油
2
记录学习的Day 50 ✅ 今天做了:完成了Python + ai的所有内容,然后看了下面试题看完了第二阶段的内容,但是第一阶段的python面试题还没看完。哎,八股我恨你 ⏰ 明天计划:继续完成八股面试题! 📚 今日感悟:加油吧!
3
下载 APP