文章目录
- 1 问题的起点:Session为什么成为多任务Agent的瓶颈
-
- 1.1 单Session的四种硬伤
- 1.2 四个标准不是并列功能,而是对四种失败模式的分别回应
- 2 连续性的落地:Router作为唯一的“认知锚点”
-
- 2.1 连续性不能靠“更大的上下文窗口”解决
- 2.2 Router的职责边界:只做“该推给谁”的判断
- 2.3 Chain of Recall:连续性在“窗口装不下”时的退路
- 2.4 连续性的工程代价:Router的上下文就是成本
- 3 高效性的落地:隔离执行与异步交互
-
- 3.1 Worker隔离解决的是“语义污染”,不只是“并发”
- 3.2 异步ReAct:把“等待工具返回”从交互路径上摘出去
- 3.3 投机执行:用后台计算换前台等待
- 4 主动性的落地:先于“能不能主动”,是“该不该主动”
-
- 4.1 主动性的危险在于它扩大了Agent的行动表面
- 4.2 两级过滤:Fast Path写死在代码里,Slow Path才交给模型
- 4.3 影子模式:主动性不是一次性开启的开关
- 5 持久性的落地:状态不丢不等于任务不跑偏
-
- 5.1 存算分离:把“计算/状态”和“执行环境”拆开
- 5.2 Watchdog:一个在Agent Loop之外的控制回路
- 5.3 一个必须标注的落差:Watchdog在开源原型中并未实装
- 6 实验读法:尾部稳定性是买来的,账单是token
-
- 6.1 消融实验的数字与读法
- 6.2 成本结构的敏感性
- 7 从“能跑的架构”到“敢托付的同事”:治理缺口在哪里
-
- 7.1 授权模型:原型里最值钱的不是架构图
- 7.2 长程依赖深度:架构管理的是并发,不是认知状态跟踪
- 7.3 一个诚实的定位
- 8 总结:四个标准的落地程度,比“Super”这个词更重要
-
- 参考资料
2026年10月31日,DeepSeek Harness团队发布技术长文《Super-agent 设计探索:迈向更自主的 Agent 系统》,同日开源研究原型 dsh-superagent-prototype(MIT / TypeScript)。三天之内,这个仓库冲到GitHub第一,单日涨星超过3700。但比star数更值得读的,是文章开头那句自我限定——“这是一篇面向工程实践的架构思路探讨,并非对现有产品功能的介绍” 。
这份工作的出发点几乎所有人都能在日常使用中体感到:当模型执行单个任务已经不太需要人盯着,瓶颈就转移到了人的注意力上。DeepSeek团队的观察是,一个人通常只能同时跟进3到5个活跃Session;超过这个数量,人就从“指挥者”退化成“上下文搬运器”。Super-agent要做的不是训练一个更聪明的模型,而是把“维护会话、同步上下文、分派任务”这些原本压在用户身上的工作搬到系统层,让Agent从一个“你戳一下它走一步”的工具,变成一个持续在线、并行推进、主动找活、故障自愈的“同事”。
这个目标被拆成四个可检验的标准——连续、高效、主动、持久——并为每一个标准给出了对应的架构机制:Router/Worker双层架构、事件驱动两级过滤、存算分离与Watchdog。本文沿着这四个标准逐一拆解:每一个标准试图解决什么工程失败模式,架构用什么机制去接住它,机制的代价是什么,以及——同样重要——开源原型里哪些能力真正落地了、哪些还停留在设计文档和内部系统中。
1 问题的起点:Session为什么成为多任务Agent的瓶颈
1.1 单Session的四种硬伤
现有主流Agent几乎都以单个Session为运行单元。Session内部包含一次任务的全部上下文、工具状态和环境配置,Session之间彼此独立。这个设计在一个任务上是自洽的,但当任务数量增加、任务之间需要协作时,失效的就不是模型,而是Session之间的协调层。
DeepSeek团队列出了四种典型的失效模式。第一种是单会话同步阻塞:标准ReAct循环在发起一个耗时工具调用后,整个循环阻塞在等待结果上,用户在此期间无法得到响应,也无法下达新指令。第二种是多任务上下文混乱:不同任务的状态散落在多个Session中,A会话里得出的结论B会话不知道,用户必须手动切换并自己记住每条上下文。第三种是设备离线即停:本地Agent的运行状态与用户设备绑定,电脑关机或进程崩溃,任务就永久终止。第四种是切换后丢失跨会话连续性:历史进度不容易自然恢复,用户被迫承担“上下文搬运”的角色。
这四种失效模式指向同一个结构性结论:“维护全局连续性”和“高并发执行”是两件不同的事,不该由同一层承担。如果强行让一个Session同时做这两件事,就会在连续性和吞吐量之间陷入不可调和的权衡。把任务都塞进一个Session,上下文会爆炸,任务只能排队;反过来每条事件都新开Session,并发最高,但全局上下文割裂,结果互不相通。
1.2 四个标准不是并列功能,而是对四种失败模式的分别回应
“连续、高效、主动、持久”在架构评审里不是四个形容词,而是四个可检验的验收条件。它们各自对应一种工程失败模式,也各自有一个反例——即现有方案的短板:
| 连续 | 在IM、GitHub等熟悉界面与同一个Agent交互,感觉始终只有一个Agent | 需要自己记“Session X的上下文里有没有Y信息” | Router全局上下文 + Chain of Recall |
| 高效 | 响应快,且能并行高质量完成多个复杂任务 | 单ReAct Loop串行,等上一个跑完才能接下一个 | Worker隔离 + 异步ReAct |
| 主动 | 持续观察环境事件,主动推进值得处理的事,不需要时保持安静 | 必须人逐条下达指令,被动执行一次 | 事件驱动Fast/Slow Path + 投机执行 |
| 持久 | 始终在线,长期运行遇异常能自恢复 | 设备离线即停,异常后需人工重启 | 存算分离 + 外部Watchdog |
表1:四个标准与各自的失败模式、支撑机制
理解这张表的含义,是理解后面每一个架构组件为什么被设计成那个样子的前提。四个标准不是四个可以独立打勾的功能点,而是四种失败模式的分别回应;它们之间存在真实的张力,而Super-agent的架构选择本质上是在这些张力中做取舍。DeepSeek自己也承认,单个ReAct Loop无法同时支撑这四个特征,底层必须换一套架构。这套架构借用的全部是操作系统里已经验证几十年的经典抽象——进程调度、Page Cache、存算分离、看门狗——新颖之处不在于发明了新理论,而在于把这些模式指向了写代码的Agent。
2 连续性的落地:Router作为唯一的“认知锚点”
2.1 连续性不能靠“更大的上下文窗口”解决
一个直觉的解法是把所有渠道的消息塞进同一个超长上下文,连续性自然就实现了。这个解法在工程上不成立,原因不在窗口大小,而在上下文污染和成本结构。Agent是“读多写少”的系统,绝大部分token消耗在重复读取不断增长的上下文上。把所有历史保留在活跃窗口中,会让延迟和成本同时失控;而如果为了控制成本而截断历史,跨渠道的连续性又会断裂。
DeepSeek的选择不是扩大单一上下文,而是把“全局认知”和“执行上下文”分离。Router维护一份跨渠道的全局视图,但不承担具体执行;Worker拥有各自隔离的会话和工具环境,只看到与当前任务相关的上下文。连续性由Router的全局视图保证,执行效率由Worker的隔离保证,两者不再互斥。
2.2 Router的职责边界:只做“该推给谁”的判断
Router的职责可以被精确地划为五项:事件接收、任务识别、任务分派、全局上下文维护、对外统一沟通。它不深入执行代码修改、测试或资料分析。DeepSeek在文章中甚至提到,Router“甚至可以不配备Bash工具”,它的角色是“项目主管”,而不是“干活的人”。一个内部实例可以说明这个分工:团队成员在群聊里说“这个项目有BUG”,没有人@它,Super-agent在后台静默复现,确认问题存在并找到简单修复方法后才提交PR,交给人验收;后续有人在GitHub评论里要求换一种修法,它又能从聊天软件的上下文切到GitHub继续做。
这个边界的设计含义是:Router的延迟直接决定用户的交互体验,因此它必须保持“薄”。如果Router自己去做耗时的执行工作,用户在等待期间无法得到任何响应,连续性的“交互响应迅速”这一层就破了。一个容易被忽略的细节是:Worker之间不直接互相通信,也不直接向用户回复;Worker将状态和结果汇报给Router,由后者统一对外沟通。冲突的发现靠Worker订阅同一个Thread来“自行发现”,而不是靠Router充当消息总线。Router层的任务常常没有想象中复杂,用较轻量的模型往往就能兼顾速度与效果。
2.3 Chain of Recall:连续性在“窗口装不下”时的退路
连续性最棘手的情形不是“当前窗口够不够”,而是历史任务的信息在很久之后被重新需要,但已经不在活跃上下文中。DeepSeek为此设计了链式召回(Chain of Recall) :通过Trigger、Thread和Worker Session等对象之间的引用关系,让模型沿着关联ID逐步找回历史任务信息。
与链式召回配套的是Inline & Spill:将近期可能用到的信息直接放入模型上下文窗口,将超出预算或低频使用的内容保留在窗口之外,供模型按需读取。这两项机制的组合,本质上是把上下文窗口当作缓存来管理——窗口是热的、有限的一层,历史信息按引用链在冷存储中按需调页。
#mermaid-svg-84mACaMWtGnuvMEr{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-84mACaMWtGnuvMEr .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-84mACaMWtGnuvMEr .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-84mACaMWtGnuvMEr .error-icon{fill:#552222;}#mermaid-svg-84mACaMWtGnuvMEr .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-84mACaMWtGnuvMEr .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-84mACaMWtGnuvMEr .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-84mACaMWtGnuvMEr .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-84mACaMWtGnuvMEr .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-84mACaMWtGnuvMEr .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-84mACaMWtGnuvMEr .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-84mACaMWtGnuvMEr .marker{fill:#333333;stroke:#333333;}#mermaid-svg-84mACaMWtGnuvMEr .marker.cross{stroke:#333333;}#mermaid-svg-84mACaMWtGnuvMEr svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-84mACaMWtGnuvMEr p{margin:0;}#mermaid-svg-84mACaMWtGnuvMEr .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-84mACaMWtGnuvMEr .cluster-label text{fill:#333;}#mermaid-svg-84mACaMWtGnuvMEr .cluster-label span{color:#333;}#mermaid-svg-84mACaMWtGnuvMEr .cluster-label span p{background-color:transparent;}#mermaid-svg-84mACaMWtGnuvMEr .label text,#mermaid-svg-84mACaMWtGnuvMEr span{fill:#333;color:#333;}#mermaid-svg-84mACaMWtGnuvMEr .node rect,#mermaid-svg-84mACaMWtGnuvMEr .node circle,#mermaid-svg-84mACaMWtGnuvMEr .node ellipse,#mermaid-svg-84mACaMWtGnuvMEr .node polygon,#mermaid-svg-84mACaMWtGnuvMEr .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-84mACaMWtGnuvMEr .rough-node .label text,#mermaid-svg-84mACaMWtGnuvMEr .node .label text,#mermaid-svg-84mACaMWtGnuvMEr .image-shape .label,#mermaid-svg-84mACaMWtGnuvMEr .icon-shape .label{text-anchor:middle;}#mermaid-svg-84mACaMWtGnuvMEr .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-84mACaMWtGnuvMEr .rough-node .label,#mermaid-svg-84mACaMWtGnuvMEr .node .label,#mermaid-svg-84mACaMWtGnuvMEr .image-shape .label,#mermaid-svg-84mACaMWtGnuvMEr .icon-shape .label{text-align:center;}#mermaid-svg-84mACaMWtGnuvMEr .node.clickable{cursor:pointer;}#mermaid-svg-84mACaMWtGnuvMEr .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-84mACaMWtGnuvMEr .arrowheadPath{fill:#333333;}#mermaid-svg-84mACaMWtGnuvMEr .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-84mACaMWtGnuvMEr .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-84mACaMWtGnuvMEr .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-84mACaMWtGnuvMEr .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-84mACaMWtGnuvMEr .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-84mACaMWtGnuvMEr .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-84mACaMWtGnuvMEr .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-84mACaMWtGnuvMEr .cluster text{fill:#333;}#mermaid-svg-84mACaMWtGnuvMEr .cluster span{color:#333;}#mermaid-svg-84mACaMWtGnuvMEr div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-84mACaMWtGnuvMEr .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-84mACaMWtGnuvMEr rect.text{fill:none;stroke-width:0;}#mermaid-svg-84mACaMWtGnuvMEr .icon-shape,#mermaid-svg-84mACaMWtGnuvMEr .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-84mACaMWtGnuvMEr .icon-shape p,#mermaid-svg-84mACaMWtGnuvMEr .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-84mACaMWtGnuvMEr .icon-shape rect,#mermaid-svg-84mACaMWtGnuvMEr .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-84mACaMWtGnuvMEr .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-84mACaMWtGnuvMEr .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-84mACaMWtGnuvMEr :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
Worker 隔离层 · 厚执行,不对话
Router 全局层 · 薄协调,不执行
Fast Path 准入
Router 归属判断
状态 / 结果汇报
状态 / 结果汇报
唯一面向人的出口
Chain of Recall沿引用 ID 回溯
订阅直通后续事件绕过 Router
Trigger外部事件
Thread同一业务对象的事件流
Ticket需跟踪的工作任务
Assignment某次具体执行安排
Worker Session A独立上下文 / 独立目录
Worker Session B独立上下文 / 独立目录
Router 统一对外
用户
图1:Router/Worker双层架构与Chain of Recall的引用链
这张图的读法是:全局层负责“知道”,执行层负责“做到”。Trigger按业务归属汇入Thread,Router只在初始事件时做一次归属判断,后续事件通过订阅直通绕过Router。Chain of Recall是全局层在窗口装不下历史时的退路,它沿着已经建立的对象引用走,而不是重新做语义搜索。
2.4 连续性的工程代价:Router的上下文就是成本
Router要维持全局视图,就必须拥有长上下文;而长上下文的成本直接决定了这个“办公室主任”角色养不养得起。DeepSeek的消融实验给出了一个具体的量级:去掉订阅直通后,Router的决定数增加约30%,读缓存token从2323万上升到3177万,增幅37%。直通机制不提升速度,也不提升质量,它只省钱——如果所有已归属事件都经过Router转发,Router的上下文会被反复重读,成本会以Router调用次数为乘数放大。
这组数据的架构含义是:连续性不是免费的,它的经济性依赖于缓存价格。如果Router所依赖的模型缓存价格较高,维持全局视图的账就算不过来。这是Super-agent架构在商业上能否成立的前提条件之一,而不是一个纯粹的工程优化问题。
3 高效性的落地:隔离执行与异步交互
3.1 Worker隔离解决的是“语义污染”,不只是“并发”
把多个任务放进不同Worker并行执行,表面上是一个并发问题,实质上是语义污染问题。如果两个Worker共享上下文,任务A的中间假设会渗入任务B的推理过程,模型可能在任务B中引用任务A的错误前提而不自知。Worker的上下文隔离是对这种污染的工程防御:每个任务一个独立会话和工作目录,“修Bug的专心修Bug,写报告的专心写报告”。Worker A和Worker B读取的文件、产生的测试日志和中间结果都保留在各自的Session中,避免不同任务的执行信息相互干扰。
隔离的代价是全局一致性需要额外机制来维持。一个任务在Worker A中产出的中间结果,如果Worker B需要作为输入,不能靠“共享上下文”自动传递,而必须通过Router的显式协调或对象引用链来传递。这是用显式的协调成本换取隐式的污染风险下降。在长程任务中,这个交换通常是划算的,因为语义污染的代价是任务级的失败,而协调成本的代价是延迟和token。
3.2 异步ReAct:把“等待工具返回”从交互路径上摘出去
标准ReAct循环的瓶颈在于工具调用的同步性。Super-agent引入的异步ReAct Loop将耗时工具调用改为异步的 start() 和 stop():Agent启动后台任务后立即返回 Started 状态,不必等待完成;后台结果随后作为新事件进入会话,前台对话可以继续接收用户的新消息。
这个改动的实质是把“同步阻塞”转化为“事件驱动的状态推进”。用户感知到的是一个始终可响应的Agent,而不是一个在工具调用期间“卡住”的系统。但需要诚实标注的是:DeepSeek团队特别说明,异步任务机制已经在DeepSeek Harness中实现,但尚未默认开启。这意味着“高效”标准在交互层面的完全落地,在公开可用的默认形态中还不是既成事实。
3.3 投机执行:用后台计算换前台等待
投机执行是高效性与主动性的交叉机制。系统根据环境信号在后台提前开展工作:收到会议邀约后先检查日程冲突、搜集背景资料并准备回复草稿;在研发协作中,群聊讨论问题时尝试复现故障、寻找修复方案,只有确认问题且找到简单修复方式后才向用户交付结果。
这本质上是一种用后台计算换前台等待时间的策略。它的风险也很直接:如果投机方向判断错误,消耗的token和工具调用就是沉没成本。DeepSeek在实验中承认,Super-agent整体上是“用更多token来换取更短、更稳的完成时间”。效率的提升不是免费的,它有一个明确的token账单。
4 主动性的落地:先于“能不能主动”,是“该不该主动”
4.1 主动性的危险在于它扩大了Agent的行动表面
“主动”在工程上比“响应”危险得多。一个响应式Agent只在被调用时消耗资源、只在被授权范围内行动;一个主动Agent会自行判断什么值得做,并在无人@的情况下发起动作。如果这个判断出错,后果不是“回答得不好”,而是“在用户不知情时做了不该做的事”。因此,主动性的架构核心不是“让Agent看到更多事件”,而是在事件进入Agent的判断之前,先经过一层不由Agent控制的过滤。
4.2 两级过滤:Fast Path写死在代码里,Slow Path才交给模型
接入真实群聊和代码平台后,事件流有一个残酷特征:高噪音、低触发率。一个研发群一天几百条消息,闲聊占九成以上;真正该让Agent动手的触发,一天可能一两次。如果每条消息都调LLM判断“要不要动”,延迟和成本都不可接受。
Super-agent的事件处理采用Fast Path / Slow Path两级过滤。第一级是程序层的确定性准入:事件来源、群组范围、用户/Bot白名单,纯代码判断,毫秒级完成,在调用模型之前就滤掉大部分噪音。第二级才是语义层:通过程序层准入的候选事件交给LLM,按提示词策略判断“随口吐槽还是真问题”。工程上的好处很实际:Fast Path改代码,Slow Path改提示词;想调整语义策略,改一句话就行,不用发版。
这个设计里最重要的一条原则是:“规则没允许的,不动” ——“哪些消息算数”是写死的代码,不是提示词里的一句话。它的安全含义是:模型不能通过“巧妙地解释提示词”来扩大自己的事件可见范围。白名单、群组归属、来源合法性这些边界由代码强制,提示注入可以影响“这一单怎么干”,但不能改变“这一单为什么被授权”。
原型中的准入矩阵甚至区分了“名单内用户不@时进入推断候选”和“陌生人@也不理”两种情形——显式呼叫不等于授权,防止任何人拉群就能指挥Agent。鉴权还贯穿任务全生命周期:挂起的任务唤醒时重新拉取主体状态,触发者若被移出名单,执行权限即刻失效;授权不是一次性门票。
4.3 影子模式:主动性不是一次性开启的开关
即使一个事件通过了Fast Path和Slow Path,主动行为也不是默认执行的。开源原型中,白名单内但没有人显式@的推断类请求,默认只记录“would accept”——记账,不执行;人工复核记录后才能切换到 auto 模式。接单模式分 off / observe / auto 三档,默认影子模式运行。
这是一条“先影子、后放行”的灰度路径。它的工程价值在于:主动性的可信度需要先用观测数据证明误报率可接受,再逐步放量。DeepSeek在设计中承认了主动性可能出错,并用影子模式把“出错的成本”限制在“记录了一条本可以执行但没执行的动作”,而不是“执行了一个本不该执行的动作”。这也是整个原型中落地最完整、安全边界最清晰的一项机制。
#mermaid-svg-tJKIi2H3AmBcZuDE{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-tJKIi2H3AmBcZuDE .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-tJKIi2H3AmBcZuDE .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-tJKIi2H3AmBcZuDE .error-icon{fill:#552222;}#mermaid-svg-tJKIi2H3AmBcZuDE .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-tJKIi2H3AmBcZuDE .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-tJKIi2H3AmBcZuDE .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-tJKIi2H3AmBcZuDE .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-tJKIi2H3AmBcZuDE .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-tJKIi2H3AmBcZuDE .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-tJKIi2H3AmBcZuDE .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-tJKIi2H3AmBcZuDE .marker{fill:#333333;stroke:#333333;}#mermaid-svg-tJKIi2H3AmBcZuDE .marker.cross{stroke:#333333;}#mermaid-svg-tJKIi2H3AmBcZuDE svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-tJKIi2H3AmBcZuDE p{margin:0;}#mermaid-svg-tJKIi2H3AmBcZuDE .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-tJKIi2H3AmBcZuDE .cluster-label text{fill:#333;}#mermaid-svg-tJKIi2H3AmBcZuDE .cluster-label span{color:#333;}#mermaid-svg-tJKIi2H3AmBcZuDE .cluster-label span p{background-color:transparent;}#mermaid-svg-tJKIi2H3AmBcZuDE .label text,#mermaid-svg-tJKIi2H3AmBcZuDE span{fill:#333;color:#333;}#mermaid-svg-tJKIi2H3AmBcZuDE .node rect,#mermaid-svg-tJKIi2H3AmBcZuDE .node circle,#mermaid-svg-tJKIi2H3AmBcZuDE .node ellipse,#mermaid-svg-tJKIi2H3AmBcZuDE .node polygon,#mermaid-svg-tJKIi2H3AmBcZuDE .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-tJKIi2H3AmBcZuDE .rough-node .label text,#mermaid-svg-tJKIi2H3AmBcZuDE .node .label text,#mermaid-svg-tJKIi2H3AmBcZuDE .image-shape .label,#mermaid-svg-tJKIi2H3AmBcZuDE .icon-shape .label{text-anchor:middle;}#mermaid-svg-tJKIi2H3AmBcZuDE .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-tJKIi2H3AmBcZuDE .rough-node .label,#mermaid-svg-tJKIi2H3AmBcZuDE .node .label,#mermaid-svg-tJKIi2H3AmBcZuDE .image-shape .label,#mermaid-svg-tJKIi2H3AmBcZuDE .icon-shape .label{text-align:center;}#mermaid-svg-tJKIi2H3AmBcZuDE .node.clickable{cursor:pointer;}#mermaid-svg-tJKIi2H3AmBcZuDE .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-tJKIi2H3AmBcZuDE .arrowheadPath{fill:#333333;}#mermaid-svg-tJKIi2H3AmBcZuDE .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-tJKIi2H3AmBcZuDE .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-tJKIi2H3AmBcZuDE .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-tJKIi2H3AmBcZuDE .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-tJKIi2H3AmBcZuDE .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-tJKIi2H3AmBcZuDE .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-tJKIi2H3AmBcZuDE .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-tJKIi2H3AmBcZuDE .cluster text{fill:#333;}#mermaid-svg-tJKIi2H3AmBcZuDE .cluster span{color:#333;}#mermaid-svg-tJKIi2H3AmBcZuDE div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-tJKIi2H3AmBcZuDE .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-tJKIi2H3AmBcZuDE rect.text{fill:none;stroke-width:0;}#mermaid-svg-tJKIi2H3AmBcZuDE .icon-shape,#mermaid-svg-tJKIi2H3AmBcZuDE .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-tJKIi2H3AmBcZuDE .icon-shape p,#mermaid-svg-tJKIi2H3AmBcZuDE .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-tJKIi2H3AmBcZuDE .icon-shape rect,#mermaid-svg-tJKIi2H3AmBcZuDE .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-tJKIi2H3AmBcZuDE .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-tJKIi2H3AmBcZuDE .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-tJKIi2H3AmBcZuDE :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
授权与灰度
Slow Path · 语义层
Fast Path · 程序层 · 零模型成本
高噪音事件流
丢弃
丢弃
丢弃:显式呼叫不等于授权
准入候选
是
否
人工复核后切换
闲聊消息
无关 CI 通知
名单内用户 @
名单内用户不 @
陌生人 @
来源 + 群组 + 白名单确定性准入
LLM 按提示词策略判断是否值得行动
显式 @ ?
observe 模式记账 would accept
auto 模式执行
不进入模型
图2:Fast Path / Slow Path两级过滤与observe/auto双模式闸门
这张图的关键信息是:模型只看到已经被代码层允许进入的事件,主动性被两层“闸门”夹住。Fast Path负责把噪音挡在模型之外,observe/auto双模式负责把“推断型主动”限制在可观测、可撤回的灰度区间内。
5 持久性的落地:状态不丢不等于任务不跑偏
5.1 存算分离:把“计算/状态”和“执行环境”拆开
传统本地Agent的持久性天花板是设备本身。Super-agent的存算分离设计将Agent Loop的计算与会话持久化状态放在云端,而执行环境可以保留在用户本地设备,本地只部署负责执行命令和返回结果的轻量daemon。这个拆分支持BYOM(Bring Your Own Machine),也支持云端托管机器或按需创建的计算环境。
直接效果是:云端Agent可以持续在线,本地设备离线时任务状态不丢失;设备重新上线后,daemon重新接入,Worker可以继续执行。持久性的第一层——“状态不丢”——在架构上有了清晰的落点。DeepSeek把这一层的本质概括为:把操作系统里“进程状态与执行环境解耦”的思想平移到Agent运行时。
5.2 Watchdog:一个在Agent Loop之外的控制回路
存算分离保证了“状态不丢”,但不保证“任务不跑偏”。一个Worker可能陷入循环、反复调用无效工具、或者朝着与原始目标相反的方向执行而不自知。这些问题的根源在于:Agent Loop内部的模型没有可靠的自我诊断能力——“偏离”的判断需要相对于全局目标的视角,而Loop内部的模型只有局部上下文。
Watchdog的设计正是针对这个盲区:它在主架构之外作为一个独立的Session运行,形成外部控制回路。它监控的不仅是接口报错和状态恢复失败等基础设施问题,还会通过模型判断Worker是否取得实质进展、执行方向是否偏离目标,并在发现异常时介入修复。用控制论的视角看,Agent Loop本身是一个开环或弱闭环系统,Watchdog是那个独立的观测器,把系统从“假设Worker会正确执行”变成“持续检验Worker是否在正确执行”。
5.3 一个必须标注的落差:Watchdog在开源原型中并未实装
这是转述中最容易被遗漏、但对工程判断最关键的事实。原型仓库的README明确声明这是研究原型、不是正式产品,大部分工程由编码Agent完成,与内部版本和设计文章里的实现都不完全一致。对 dsh-superagent-prototype 的逐文件核查也确认:原型目前真正实装的是授权门禁(准入矩阵 + Mandate + 影子模式),而Watchdog、存算分离等设计属于future direction;文章的消融数据同样来自合成负载与简化环境,官方自述“仅作为初步参考”。
这意味着“持久性”在公开可验证的代码中,主要落地在授权状态的持久化与可恢复,而不是运行时的故障自愈。Watchdog的完整能力存在于架构设计和内部系统中,开源原型展示的是控制平面(谁能做什么、做到什么范围),而不是运行时平面(跑偏了怎么拉回来)。把设计文档中的能力等同于已交付的能力,是对这次发布最常见的误读。
#mermaid-svg-4liRm3x5ou5MzGWP{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-4liRm3x5ou5MzGWP .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-4liRm3x5ou5MzGWP .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-4liRm3x5ou5MzGWP .error-icon{fill:#552222;}#mermaid-svg-4liRm3x5ou5MzGWP .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-4liRm3x5ou5MzGWP .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-4liRm3x5ou5MzGWP .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-4liRm3x5ou5MzGWP .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-4liRm3x5ou5MzGWP .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-4liRm3x5ou5MzGWP .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-4liRm3x5ou5MzGWP .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-4liRm3x5ou5MzGWP .marker{fill:#333333;stroke:#333333;}#mermaid-svg-4liRm3x5ou5MzGWP .marker.cross{stroke:#333333;}#mermaid-svg-4liRm3x5ou5MzGWP svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-4liRm3x5ou5MzGWP p{margin:0;}#mermaid-svg-4liRm3x5ou5MzGWP .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-4liRm3x5ou5MzGWP .cluster-label text{fill:#333;}#mermaid-svg-4liRm3x5ou5MzGWP .cluster-label span{color:#333;}#mermaid-svg-4liRm3x5ou5MzGWP .cluster-label span p{background-color:transparent;}#mermaid-svg-4liRm3x5ou5MzGWP .label text,#mermaid-svg-4liRm3x5ou5MzGWP span{fill:#333;color:#333;}#mermaid-svg-4liRm3x5ou5MzGWP .node rect,#mermaid-svg-4liRm3x5ou5MzGWP .node circle,#mermaid-svg-4liRm3x5ou5MzGWP .node ellipse,#mermaid-svg-4liRm3x5ou5MzGWP .node polygon,#mermaid-svg-4liRm3x5ou5MzGWP .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-4liRm3x5ou5MzGWP .rough-node .label text,#mermaid-svg-4liRm3x5ou5MzGWP .node .label text,#mermaid-svg-4liRm3x5ou5MzGWP .image-shape .label,#mermaid-svg-4liRm3x5ou5MzGWP .icon-shape .label{text-anchor:middle;}#mermaid-svg-4liRm3x5ou5MzGWP .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-4liRm3x5ou5MzGWP .rough-node .label,#mermaid-svg-4liRm3x5ou5MzGWP .node .label,#mermaid-svg-4liRm3x5ou5MzGWP .image-shape .label,#mermaid-svg-4liRm3x5ou5MzGWP .icon-shape .label{text-align:center;}#mermaid-svg-4liRm3x5ou5MzGWP .node.clickable{cursor:pointer;}#mermaid-svg-4liRm3x5ou5MzGWP .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-4liRm3x5ou5MzGWP .arrowheadPath{fill:#333333;}#mermaid-svg-4liRm3x5ou5MzGWP .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-4liRm3x5ou5MzGWP .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-4liRm3x5ou5MzGWP .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-4liRm3x5ou5MzGWP .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-4liRm3x5ou5MzGWP .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-4liRm3x5ou5MzGWP .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-4liRm3x5ou5MzGWP .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-4liRm3x5ou5MzGWP .cluster text{fill:#333;}#mermaid-svg-4liRm3x5ou5MzGWP .cluster span{color:#333;}#mermaid-svg-4liRm3x5ou5MzGWP div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-4liRm3x5ou5MzGWP .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-4liRm3x5ou5MzGWP rect.text{fill:none;stroke-width:0;}#mermaid-svg-4liRm3x5ou5MzGWP .icon-shape,#mermaid-svg-4liRm3x5ou5MzGWP .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-4liRm3x5ou5MzGWP .icon-shape p,#mermaid-svg-4liRm3x5ou5MzGWP .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-4liRm3x5ou5MzGWP .icon-shape rect,#mermaid-svg-4liRm3x5ou5MzGWP .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-4liRm3x5ou5MzGWP .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-4liRm3x5ou5MzGWP .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-4liRm3x5ou5MzGWP :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
开源原型已实装
设计文档中的持久性闭环
future direction
未实装
未实装
内部系统能力
存算分离云端状态持久化
外部 Watchdog独立 Session 观测
偏离检测方向 / 进展判断
介入修复恢复或终止
授权门禁Mandate 不可变
两级过滤Fast Path 代码强制
影子模式would accept 记账
图3:设计文档中的持久性闭环与开源原型实际落地范围的分界
这张图要传达的是一条工程判断上的分界线:设计文档的能力范围和开源原型的可验证范围不是同一个圆。持久性的“设计闭环”是完整的,但公开代码验证的是控制平面,不是运行时自愈平面。
6 实验读法:尾部稳定性是买来的,账单是token
6.1 消融实验的数字与读法
DeepSeek在约300条消息、20项工作请求的合成负载上做了消融实验,编码工作用一个只消耗时间的工具代替(衡量调度能力而非编码能力),每种方案跑5次,官方自述“仅作为初步参考”。四组方案的对比可以整理如下:
| Super-agent | 12.4 min | 15.7 min | 2323 万 | 基准 |
| 单Session + Subagent(中性提示) | 20.4 min | 29.5 min | 605 万 | Super-agent快39%/47%,但token约为3.84倍 |
| 单Session + Subagent(提示优先委派) | ~13.8 min(P50仅差约10%) | 29.0 min | 1082 万(2.15倍) | P95差46%,token为2.15倍 |
| Super-agent去掉订阅直通 | 12.6 min | 15.5 min | 3177 万 | 速度基本持平,token增加37% |
表2:Super-agent消融实验关键数据
这组数字里最容易被误读的是“快39%”。如果把P50当作架构优势的证据,就会忽略一个更重要的事实:如果提示词写好了,单Session的中位数表现和Super-agent只差约10%。架构真正买到的是尾部稳定性:中性提示下,带Subagent工具的单Session跑5次一次都没有委派,模型判断任务“很小”而自己串行执行,一路拖到约29.5分钟的P95;Super-agent的P95压到15.7分钟,尾延迟几乎腰斩。
换句话说,Super-agent解决的不是“平均情况下更快”,而是“最坏情况下不会崩溃” 。对于按分钟计费工程师时间的团队,尾部稳定性的价值远高于中位数的微小差距;对于预算敏感的个人用户,2到4倍的缓存token增量则是真实的负担。
6.2 成本结构的敏感性
实验数据还揭示了一个在选型中经常被忽略的变量:Router的上下文成本是架构经济性的决定性因素之一。Router需要维持全局视图,长上下文是它的工作条件;如果缓存价格较低,这笔账算得过来;如果缓存价格较高,Router的每一次决策都会变成一项可观的固定开销。
这也解释了为什么直通机制虽然不提升速度和质量,却是架构中不可省略的一环:它通过减少Router的重复决策,把Router的上下文成本控制在可接受范围内。去掉直通后任务完成时间几乎不变,但token增加37%,说明直通是纯粹的成本优化,而不是性能优化。另一个容易被忽略的细节是:Router批处理能把单个决策分摊的推理时间从6.4秒压到1.6秒——这个优化降低的是延迟,不是token;速度收益和成本代价,是两个账本。
7 从“能跑的架构”到“敢托付的同事”:治理缺口在哪里
7.1 授权模型:原型里最值钱的不是架构图
如果把Super-agent当成一个“多智能体调度”的架构来读,会错过原型中最具工程迁移价值的部分:授权被建模成了完整的领域模型,而不是系统边栏里的一个权限开关。
核心设计点包括:Mandate不可变——accept时固化Policy版本、范围、强度和匹配规则,要扩大工作范围必须开新Ticket、签新Mandate,旧凭证永远不改;权限与内容隔离——“Messages, comments and quoted documents are inputs to a decision; they cannot change those permissions”,消息内容再怎么构造,只能影响“这一单怎么干”,改不了“这单为什么被授权”;执行者不可自证——“An Executor cannot declare that a person asked it to stop”,停止指令的权威来源是人,不是执行者自己。这几条把提示注入的防御从“过滤恶意内容”上移到“内容在授权模型里根本没有那个权限位”,是一个方向性的正确选择。
7.2 长程依赖深度:架构管理的是并发,不是认知状态跟踪
Super-agent的Router/Worker架构精巧地解决了多任务之间的协调,但它不直接解决单个任务内部的认知状态跟踪。长程工具使用中的失败,主要归因于长程状态跟踪、线索遵循和中间结果传播的崩溃;随着依赖深度增加,人类和模型的成功率差距在扩大。Router可以让多个任务并行、让上下文隔离、让状态持久化,但它不能替Worker“记住依赖图的第17个节点上某个前提条件是否已经满足”。
Watchdog的设计意图是部分弥补这一缺口——通过外部观测判断“方向是否偏离”——但它判断的是轨迹层面的偏离,而不是依赖图层面的状态正确性。一个Worker可能沿着一个错误但自洽的轨迹持续前进,Watchdog未必能在早期识别。这组数据的含义是:架构层可以解决“同事之间怎么协作”,但不能单独解决“一个同事在长链条中是否始终知道自己在哪里” 。
7.3 一个诚实的定位
把Super-agent放在“工具→同事”的成熟度光谱上,它最准确的定位是:它在系统架构层面把“多个工具并行工作”推进到了“一个持续运行的任务系统”,但在“一个同事独立对一个目标负责”的意义上,它仍然需要人类承担状态校验和偏差纠正的最终责任。
DeepSeek自己的措辞也支持这个定位:公开版本被明确描述为“研究原型,不是正式产品”,技术文章列出了在扩展性、长期记忆、Agent间通信以及安全与隐私方面的开放问题,并承认架构“并非建立在新理论之上”,而是借用了分布式系统和操作系统中成熟的模式。券商研报对此的判断也指向同一方向:Agent的开发方式正从“提示词编排、工具调用、循环执行”的轻量组合,转向由调度、状态管理与外部监督构成的系统工程;决定能力上限的变量不再是单一模型的推理水平,而是模型与运行时、工具链、环境记忆协同后的系统能力。
8 总结:四个标准的落地程度,比“Super”这个词更重要
Super-agent的价值不在于它证明了“AI可以当同事”,而在于它把“同事”这个模糊的隐喻拆解成了四个可工程化、可分别检验的标准,并为每一个标准给出了具体的架构回应。但四个标准的落地程度并不相同,这一点比任何单一的总评都更有信息量:
连续性由Router的全局上下文和Chain of Recall保证,落地程度较高;跨渠道语义一致性的完整实装仍需验证,但“同一Agent在IM和PR之间连续推进”已经有内部实例支撑。高效性由Worker隔离和异步ReAct支撑,隔离已实装,但异步机制在Harness中存在却未默认开启。主动性由事件驱动两级过滤和影子模式实现,这是原型中落地最完整、安全边界最清晰的一项——规则写死在代码里,推断型主动先记账后放行。持久性的存算分离设计清晰,但Watchdog这一核心的运行时自愈机制在开源原型中尚未实装,公开可验证的部分主要是授权状态的持久化。
对于正在评估是否把Agent放进真实工作流的团队,比“它是不是Super”更有操作性的问题是三个:你的任务依赖深度是否落在当前模型可稳定跟踪的区间内?你的治理基础项(检查点、身份权限、轨迹观测、记忆治理)是否已经就位?你是否有能力在Watchdog缺位的情况下,用人工巡检承担偏离检测的职责? Super-agent给出了一个值得借鉴的架构方向,但它没有替任何人回答这三个问题。从“工具”到“同事”的最后一段路,不在Router和Worker的拆分里,而在授权模型、状态跟踪能力和运行时治理的交汇处。
网硕互联帮助中心



评论前必须登录!
注册