DeepSeek Super-agent 架构
DeepSeek Super-agent 架构:Router、Worker 与持续在线 Agent
- 作者
- DeepSeekAgent.io 编辑部
- 发布
- 更新
DeepSeek Harness 团队在《Super-agent 设计探索:迈向更自主的 Agent 系统》中讨论了一种新的 Agent 工作方式:用户不再同时盯着多个独立 Session,而是面对一个长期在线的主入口,由它接收事件、判断意图、拆分任务并调度多个隔离 Worker。团队同时公开了 dsh-superagent-prototype,把其中一部分设计做成可运行的 DSH bundle。
这不是给单个对话增加更长的 Prompt,而是重新划分会话、任务、权限和执行环境的职责。
单 Session 为什么会成为瓶颈
传统 Coding Agent 通常以 Session 为中心:用户发出任务,Agent 在当前上下文里读取文件、运行命令并返回结果。一个任务时很好用,但同时推进多个仓库、Issue 和群聊请求时,用户需要不断完成三件事:找到正确 Session、补充上下文、确认它有没有卡住。
模型能力越强,这种管理成本反而越明显。Agent 可以独立运行更久,但人的注意力仍要在多个窗口之间切换。Super-agent 把人的入口收敛为一个 Router,把具体工作拆给 Worker,让“保持沟通”和“执行任务”不再争用同一个上下文。
Router:持续对话和派工入口
公开原型把主 Session 称为 Main Session,在实现里承担 orchestrator/router 角色。它接收来自 Source 的 Trigger,例如 GitHub Issue、Pull Request 评论、CI 变化或飞书消息,然后根据当前 Policy 判断:
- 接受为新 Ticket;
- 追加到已有 Ticket;
- 停止某项工作;
- 忽略与规则无关的事件。
Router 不负责在仓库里长时间写代码。它保留跨来源的沟通视角,并把已经获得授权的任务交给 Executor。这样,一个 Worker 跑测试时,Router 仍然可以处理新的消息和其他任务。
Worker:一个 Ticket 一个执行上下文
每个 Ticket 会获得自己的 Executor Session 和目录。官方原型默认使用 worker-<ticket id> 作为 Session 名,并在独立工作目录中准备代码。不同任务因此拥有隔离的上下文、分支和执行状态,不会把 A Issue 的讨论混进 B Issue。
Worker 可以把长命令转入后台、接收后续消息、报告进度并等待人工决定。一个 Assignment 结束后,Ticket 仍可保留订阅关系;后续有人在相关 Thread 继续追问时,系统能够恢复同一项工作,而不是重新创建一段没有历史的会话。
Source、Trigger 与持续在线
Super-agent 不是定时扫描全部互联网。它连接明确配置的 Source,并把事件转换为可审计的 Trigger。公开原型提供 GitHub Source,也支持可选的飞书 Source。
Source 负责读取位置、去重和线程关系;Policy 决定谁可以要求工作;Ticket 保存授权范围;Subscription 让后续评论、CI 和评审结果回到正确任务。系统重启后,这些关系仍然存在,Agent 才能从“一个会话”变成“持续运行的工作成员”。
长期在线不等于无限自主
持续在线的关键不是让模型随时自由行动,而是把主动性放进可检查的规则:
- 明确哪些 Source 会被读取;
- 用 allowed list 和 admission table 判断谁能发起工作;
- 先以
observe模式记录“本来会做什么”; - 每个 Ticket 持有不可随意扩大的 Mandate;
- 执行结果通过原来的 Channel 返回。
这套设计把主动 Agent 从一句“请主动帮我”变成了事件、规则、授权和状态的组合。
公开原型和设计文章的关系
dsh-superagent-prototype 是 DeepSeek Harness 团队公开的研究原型,采用 MIT 许可证。仓库明确说明,公开代码经过发布适配,不等同于内部版本,也没有实现文章中的所有方向。适合把它当作可阅读、可运行的架构样本,而不是已经完成的托管产品。
适合哪些团队
Super-agent 最适合事件持续到来、任务能拆成独立 Ticket、并且团队愿意明确权限边界的场景,例如:
- 为一个 GitHub 仓库持续处理 Issue、评审和 CI 反馈;
- 从团队群聊接收开发请求,再把结果送回原 Thread;
- 同时推进多项任务,但仍要求每项工作有独立分支和审查流程;
- 希望 Agent 主动发现符合规则的问题,又不希望它无条件接管所有消息。
如果只是偶尔发起一次性任务,普通 DSH Session 更简单。Super-agent 的价值来自持续事件、并行工作和可恢复状态,而不是名字更大。
相关阅读
- dsh-superagent 部署教程:GitHub、飞书与独立 Worker
- dsh-superagent 源码分析:Trigger、Ticket、Policy 与 Subscription
- 从 Personal Agent 到 Super-agent:为什么单 Session 不够用
- dsh-superagent 安全边界:账号、权限与执行隔离