先读完 Harness 01–03。那三篇讲的是底座:Cordis 插件树、工具流水线、能力 seam。这篇开始的四篇讲挂在底座上的一个包,仓库是 deepseek-ai/dsh-superagent-prototype(MIT)。
README 把边界写在最前面:这是研究原型,供参考,不是 DeepSeek 的官方产品。代码从团队日常开发里长出来,不少工程由编码代理完成,风格可能不一致,用之前要自己审。为了发表做过改编,和内部版本、以及设计文章 Exploring Super-agent Design 里描述的实现并不相同。文章里的一部分设计是后续方向,这份仓库里没有对应实现。
一、它实际盯着什么
一句话:
尽量少占人的注意力,尽量多交出能用的结果。
产品形状很窄。它是 DeepSeek Harness 的一个 bundle,服务一个 GitHub 仓库(GitHub Enterprise Server 不在支持范围内)。飞书是可选的第二个来源。有人在允许范围内把活交给它,它就开一张工单,在自己的 Session 和目录里做,再回到原来的对话里答复,常见的答复是一个 Pull Request。Web 面板只把「需要人」的事项摊开。
部署文档要求单独建一个 Harness profile(指南里叫 superagent),和你自己写代码用的 profile 分开。这个插件会改进程级的 PATH 和 git 设置,重启和升级也要独立。面板绑在 127.0.0.1,端口由 profile 里的 webserver 条目决定;文档示例是 3082。管理 API 只接受来自本机的请求,缺请求头或带着别的站点的 Origin 会 403。
和本站已经读过的两份 Runtime 放在一起,位置是这样:
| nanobot | DeepSeek Harness | Superagent | PocketPilot | |
|---|---|---|---|---|
| 组织 | 分层 Loop / Runner | Cordis 插件树 | Harness 上的一个包 | 分层;Agent 不碰库 |
| 服务谁 | 把原理讲透 | 可替换的底座 | 一个仓库上的团队 | 一个人的本地工作区 |
| 副作用 | 默认就能跑 shell | seam + 沙箱策略 | Worker 以操作者的系统用户跑命令 | 策略检查之后还要人批 |
Superagent 的包装、目录和命令名拦截是默认约定。文档写明:Worker 仍可以用绝对路径执行程序。这和 PocketPilot「有副作用就停下来等你」是两种产品论题。读的时候把它们分开,后面第四篇会回到这条边界。
二、原则怎么变成行为
原则只有一句,后面的规则都是它的推论。一条消息、一次通知、一个设置、面板上的一块区域,都算注意力成本。给不出超过成本的价值,就删掉。
由此得到可以对照代码和 prompt 检查的行为:
- 动手有门槛。 开工只有两种入口:允许名单上的人直接点名,或者团队事先写好的规则允许。没人要的活,默认以「只记录本来会做什么」的模式跑,不改仓库。第二、三篇把这个入口写成 Gate、强度和接受模式。
- 说话有门槛。 接到请求只确认一次,并说清要做什么。做的过程中保持安静。再次开口只有三种时机:结果好了、需要人做决定、做不完。消息要短,并且回到发起请求的那个对话。
- 一次只问一个具体问题。 问题走结构化字段(执行文档里的 Attention,prompt 里的
human_action),避免埋在长报告里。 - 按影响停,不按努力停。 局部改动能交到可评审的结果就交。需要设计决定的,停下来问一句清楚的话。
- 如实报告。 草稿标未完成,失败就说失败。prompt 里还有一条更硬的交付标准:开了 PR 不等于 ready;界面改动没有真实的改前截图,也不算 ready。
这些句子大部分写在 docs/000-philosophy.md,落实在 docs/004-prompts.md 的内置 prompt 里。宿主用代码守住的是另一层:身份、权限、工具参数、回复用途、长度上限。改 prompt 改不了这层。第三篇会把优先级写完整。
三、操作者要承担什么
Agent 使用的是团队每天看得到的 GitHub 账号和飞书机器人。它发出的每条消息都在花同事的注意力。哲学文档因此把责任放在操作者身上,而不是放在模型「会不会收敛」上:
- 开始时白名单要短。主动行为先只记录,看 Decision 是否像样,再允许真的接单。
- 吵了就收紧 prompt,或者暂停处理。暂停会停掉派工、新的评估、超时、消息投递和回复;来源仍继续记事件,已经在跑的回合不打断。
- 不要用它批量开 PR。
- 不要再发一条解释消息去弥补上一条多余的消息。
面板上的「暂停处理」就是这条责任的开关。设置变更有版本,冲突的保存会被拒绝,草稿不会被悄悄丢掉。
四、公开仓库里你找不到的东西
设计文章讨论过更激进的自主性,例如持续守着仓库的 Watchdog、投机执行、一直在云端跑。README 把这些标成后续方向。本系列只讲仓库里写明、并且能在 docs/000 到 docs/007 对上类和文件的机制。
安装本身也体现同一条原则:步骤很多,文档让你把 SETUP.md 交给编码代理,一次问一个短问题,先把完整计划亮出来,再安装和配置。手动步骤在 docs/006-deployment.md。开发检查是一条命令:pnpm check,依次做类型检查、测试和构建。
五、四篇怎么读
编号和仓库文档对齐,方便你对着原文学:
| 本系列 | 仓库文档 | 你要带走的问题 |
|---|---|---|
| 01 这篇 | 000-philosophy.md | 什么算成本,什么时候该沉默 |
| 02 领域模型 | 001-domain.md,并对照 007 的 Engine | 一条评论怎么变成一张工单 |
| 03 授权 | 002-authorization.md、004-prompts.md | 谁能让它开工,文字为什么改不了权限 |
| 04 执行与面板 | 003-execution.md、005-panel.md | 工单在等谁,挂了以后怎么恢复 |
006 是部署,007 是类和文件索引,008 是怎样加一个新的来源。四篇能复述之后再翻后三份,不会在 70KB 的架构文档里迷路。
六、小结
- Superagent 是 Harness 的团队包,服务一个 GitHub 仓库,飞书可选。
- 成功标准是少占注意力:动手和开口都有门槛,干活时保持安静。
- 它是研究原型。设计文章里的更强自主性,不要到这份代码里找。
下一篇把这句话收成一组对象:来源、触发、线程、评估、授权、工单、派工、订阅。人为什么不在这组对象里,是那篇的第一件事。