dsh-superagent:单仓库 GitHub 上的主动式编码智能体

前言

在 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 描述中已写明的能力,不展开论文里尚未实现的设想。

  1. GitHub Source(必选路径)
    配置仓库 owner/name 以及 agent 所代表的 gh CLI 身份;agent 会以该账号评论、推送、开 PR,因此需要写权限。建议用专用账号,便于与成员个人操作区分。

  2. Policy
    配置允许发起工作的 GitHub login 列表。列表为空时,任何请求都不会变成 ticket。

  3. Execution
    配置 ticket 目录根路径,以及为每个 ticket 准备独立 checkout 的 prepare 命令(例如基于本地 clone 的 git worktree)。

  4. 可选 Feishu Source
    需要 lark-cli 以及配置了 bot 的 Feishu/Lark 应用;仅在该 Source 启用时使用。

  5. Web 面板(Superagent)
    安装并重启 profile 后,在侧栏选择 Superagent 完成 Sources、Policy、Execution 等配置,并查看待人工处理项。

  6. Fork 相对 upstream 的两点(Fork notes)
    - 单账号既可请求又可执行:agent 账号发出的、以 @<login> 开头的消息视为该账号的显式请求;其余消息(确认、进度、结果)仍被忽略,避免自触发循环。
    - Worker 环境不污染 host:PATH、GIT_CONFIG_GLOBAL、GIT_CONFIG_NOSYSTEM 仅在 setup 检查期间生效并随即恢复,避免同一 profile 下其他 Session 的 git/PATH 被改动。

  7. 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 已知可用。
  • gh 2.48+、git 2.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。

务必注意:

  1. 插件以当前 DSH 进程及其配置的 gh/git 权限运行;安装前请阅读源码与 MIT LICENSE,确认仓库与账号策略符合组织安全要求。
  2. 研究原型定位:非生产就绪,工程风格可能不一致,与内部版及《Exploring Super-agent Design》一文中的部分设计也不完全一致。
  3. 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜