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
羽毛球分组比赛记分
小程序二维码

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

小夜