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 才能从“一个会话”变成“持续运行的工作成员”。

长期在线不等于无限自主

持续在线的关键不是让模型随时自由行动,而是把主动性放进可检查的规则:

  1. 明确哪些 Source 会被读取;
  2. 用 allowed list 和 admission table 判断谁能发起工作;
  3. 先以 observe 模式记录“本来会做什么”;
  4. 每个 Ticket 持有不可随意扩大的 Mandate;
  5. 执行结果通过原来的 Channel 返回。

这套设计把主动 Agent 从一句“请主动帮我”变成了事件、规则、授权和状态的组合。

公开原型和设计文章的关系

dsh-superagent-prototype 是 DeepSeek Harness 团队公开的研究原型,采用 MIT 许可证。仓库明确说明,公开代码经过发布适配,不等同于内部版本,也没有实现文章中的所有方向。适合把它当作可阅读、可运行的架构样本,而不是已经完成的托管产品。

适合哪些团队

Super-agent 最适合事件持续到来、任务能拆成独立 Ticket、并且团队愿意明确权限边界的场景,例如:

  • 为一个 GitHub 仓库持续处理 Issue、评审和 CI 反馈;
  • 从团队群聊接收开发请求,再把结果送回原 Thread;
  • 同时推进多项任务,但仍要求每项工作有独立分支和审查流程;
  • 希望 Agent 主动发现符合规则的问题,又不希望它无条件接管所有消息。

如果只是偶尔发起一次性任务,普通 DSH Session 更简单。Super-agent 的价值来自持续事件、并行工作和可恢复状态,而不是名字更大。

相关阅读

参考资料