前言¶
在 DeepSeek Harness(DSH)里,常见做法是让开发者在 Session 里手动下达任务、盯进度。若团队希望某个 GitHub 仓库在 Issue 或评论里被 @ 之后,由智能体自动开单、在独立目录里干活并以 PR 等形式回话,就需要把「监听来源 → 授权策略 → 工单执行 → 人工待办面板」串成一条工作流。dsh-superagent 以 DSH bundle 形式提供这套流程;本仓库由 jwangkun 维护,fork 自 deepseek-ai/dsh-superagent-prototype,在 upstream 设计上增加了单账号请求与 host 进程环境隔离等改动,便于在共享 DSH profile 中使用。
README 明确说明:这是仅供参考的研究原型,并非 DeepSeek 官方产品,可能仍有缺陷,使用前请审阅并自行适配。
这是什么¶
dsh-superagent 是面向单个 GitHub 仓库的 proactive coding agent,打包为 DeepSeek Harness bundle。它监听 GitHub(可选 Feishu);在 Policy 允许的人提出工作后,会打开 work item,在独立的 agent session 与目录中执行,并在原对话中回复(例如提交 pull request)。Web 面板用于展示仍需人工处理的事项。
设计取向在文档中概括为:尽量少占用人注意力、尽量产出可用结果;只在被请求或团队编写的规则允许时行动,且仅在需要人介入或结果可用时发言。详见仓库内 docs/000-philosophy.md。
社区目录页:https://www.skillhub.cn/plugins/jwangkun/dsh-superagent。分类为工作流;GitHub 星标数为 1(以目录页线索为准)。许可证为 MIT,当前 package 版本为 0.1.3。
核心功能¶
下面介绍 README 与 package 描述中已写明的能力,不展开论文里尚未实现的设想。
-
GitHub Source(必选路径)
配置仓库owner/name以及 agent 所代表的ghCLI 身份;agent 会以该账号评论、推送、开 PR,因此需要写权限。建议用专用账号,便于与成员个人操作区分。 -
Policy
配置允许发起工作的 GitHub login 列表。列表为空时,任何请求都不会变成 ticket。 -
Execution
配置 ticket 目录根路径,以及为每个 ticket 准备独立 checkout 的prepare命令(例如基于本地 clone 的git worktree)。 -
可选 Feishu Source
需要lark-cli以及配置了 bot 的 Feishu/Lark 应用;仅在该 Source 启用时使用。 -
Web 面板(Superagent)
安装并重启 profile 后,在侧栏选择 Superagent 完成 Sources、Policy、Execution 等配置,并查看待人工处理项。 -
Fork 相对 upstream 的两点(Fork notes)
- 单账号既可请求又可执行:agent 账号发出的、以@<login>开头的消息视为该账号的显式请求;其余消息(确认、进度、结果)仍被忽略,避免自触发循环。
- Worker 环境不污染 host:PATH、GIT_CONFIG_GLOBAL、GIT_CONFIG_NOSYSTEM仅在 setup 检查期间生效并随即恢复,避免同一 profile 下其他 Session 的 git/PATH 被改动。 -
Shared-account mode
当 agent 与请求者共用同一 GitHub 账号时,@ 自己不会收到通知。需在 GitHub Source 上开启 Receive new Issues 与 Receive comments in the repository,由 Source 直接读仓库;以 agent mention 开头的评论视为显式请求,不以 mention 开头的同账号消息视为 agent 输出并忽略。
安装与启用¶
环境要求¶
- DeepSeek Harness 0.2.1-alpha.2 或更高;README 注明桌面版 0.2.1-rc.5 已知可用。
gh2.48+、git2.32+ 在PATH上。- 可选 Feishu:
lark-cli与对应应用 bot。 - 仅从源码构建时需要 Node.js 22.19+ 或 24+;release tarball 已包含构建好的
lib/。
bundle 默认状态目录为 <DSH_HOME>/state/dsh-superagent。若要在首次启动前改位置,在 profile 的 cordis.patch.yml 中增加:
- id: dsh-superagent
config:
stateDir: /absolute/path
stateDir 在首次启动后不可再改。
安装命令¶
推荐从 npm 安装到指定 profile:
dsh plugin --profile <profile> add dsh-superagent
从 release 安装:
dsh plugin --profile <profile> add \
https://github.com/jwangkun/dsh-superagent/releases/latest/download/dsh-superagent.tgz
从本地 tarball:
dsh plugin --profile <profile> add ./dsh-superagent-<version>.tgz
启用面板¶
重启该 profile(退出并重开桌面应用,或重启 dsh web),在侧栏选择 Superagent,按界面填写 GitHub Source、Policy、Execution。
典型用法¶
配置完成后,由 Policy 中允许的账号在仓库里发起工作:新建 Issue 或在 Issue 下评论,并 @ agent,例如:
@<agent-login> fix the typo in the README
在 shared-account mode 下,评论必须以 @<agent-login> 开头,才会被识别为显式请求。
首次部署步骤较多时,README 建议让 coding agent 按仓库内 SETUP.md 协助逐项完成,例如:
Read SETUP.md in this repository and set up dsh-superagent with me.
运维细节、账号、prepare 命令模板、升级与排错见 docs/006-deployment.md;概念与架构可按编号文档从 000 Philosophy 顺序阅读。
适用场景与注意¶
适合谁:已在 DSH 上运行 profile、希望把「GitHub(或可选 Feishu)上的授权请求 → 独立 ticket 执行 → PR/回复」固定成工作流的团队;尤其关注单 GitHub 账号共享、且不希望 bundle 改动 host 全局 git/PATH 的场景,可优先阅读 Fork notes 与 shared-account mode。
务必注意:
- 插件以当前 DSH 进程及其配置的
gh/git 权限运行;安装前请阅读源码与 MIT LICENSE,确认仓库与账号策略符合组织安全要求。 - 研究原型定位:非生产就绪,工程风格可能不一致,与内部版及《Exploring Super-agent Design》一文中的部分设计也不完全一致。
- DSH 生态理念是「一切皆插件」;skillhub.cn 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系,本文不将其描述为官方应用商店。
结尾¶
dsh-superagent 把单仓库 GitHub 上的主动监听、策略授权、ticket 级执行和 Superagent 面板收进一个 DSH bundle;jwangkun 分支在 prototype 之上补充了共享账号与 host 环境隔离,便于在真实 profile 里试跑。进一步信息见社区目录页与 GitHub 仓库:
- 目录页:https://www.skillhub.cn/plugins/jwangkun/dsh-superagent
- 源码与文档:https://github.com/jwangkun/dsh-superagent