前言¶
在 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