前言¶
在 DeepSeek Harness(DSH)裏開一條會話處理 GitHub 上的 issue 和 PR,常見做法是人工盯着倉庫,或另起 webhook、獨立 agent 實例。前者費注意力,後者往往還要單獨配憑證、預設和 PTC 模式。dsh-session-superagent 把「盯」和「辦」綁在同一條會話上:輪詢倉庫變化,有值得處理的事項就用 Agent.followup() 喚醒當前會話;具體怎麼修、怎麼回,交給倉庫裏的 AGENTS.md。憑證走已登錄的 gh CLI,不進模型上下文,API 返回統一脫敏。
下面介紹插件定位、能力邊界、安裝方式,以及一次典型運行長什麼樣。
這是什麼¶
- 名稱:
dsh-session-superagent(npm 包名相同) - 維護者:MYCF711
- 分類:工作流(社區目錄 skillhub.cn)
- 當前版本:0.9.166(MIT)
- 一句話:給一個 DSH 會話裝上「主理魚」——輪詢 issue/PR,有動靜叫醒本會話;醒來後按
AGENTS.md主動推進,不需要獨立實例或另建 agent 預設。
插件以當前 DSH 進程權限運行;安裝前建議在 GitHub 閱讀源碼與 LICENSE,確認符合你的安全策略。
核心功能¶
讀 GitHub 與憑證隔離¶
通過 github / repo_here 工具調用 API。token 由插件經 gh CLI 取得,不進入 workspace、不交給模型;輸出經 redact() 處理(如 ghp_*、github_pat_*、PEM、Authorization 頭)。寫操作(POST/PATCH/PUT/DELETE)必須顯式傳 confirm: true,否則拒絕。
盯倉庫與喚醒¶
| 工具 | 作用 |
|---|---|
watch_start / watch_status / watch_stop |
登記 watcher,30–3600 秒輪詢;有變化且會話 idle 時注入 followup |
watch_ack |
處理完打「主理魚:已處理」標籤(可自動創建),避免重複叫醒;支持 numbers: "12,13" 批量 |
filters |
可按標籤、指派人收窄;默認跳過機器人、草稿 PR、已關閉條目 |
batchLimit / maxWakesPerHour |
單次最多鋪開條數(默認 5,1–20);每小時喚醒上限(默認 6,1–60),可在面板「觸發」頁修改 |
activeHours |
例如 09:00-23:00 才喚醒,支持跨夜 22:00-06:00 |
isolated |
喚醒前開一次性 git worktree,改副本、推 zhuli/* 分支,不動主工作區;舊副本超過 3 天回收 |
喚醒鏈路:
GitHub 有新動態 → watcher 輪詢 → Agent.followup(消息) → 會話跑一輪
↑ 空閒時才注入
watcher 狀態寫在 ~/.dsh/state/session-superagent/watchers.json;宿主重啓後從該文件恢復。
界面與限流¶
- 輸入框下方同一行最左端:總衛星環(綠=主理中,琥珀=暫停,紅=輪詢失敗);中間欄有「主理魚」標籤頁(總覽 / 判定 / 觸發 / 設置)。
- 除單條 watcher 的
maxWakesPerHour外,還有會話級 12 次/小時(跨所有守累計)和 3 分鐘冷卻(主要吸收本機剛操作過的條目)。三層均爲滑動窗口,不是整點重置。
環境要求¶
- DSH ≥
0.2.1-rc.5 - Node ≥ 22.19(宿主自帶)
- 已登錄的
ghCLI
安裝與啓用¶
DSH 插件需裝進 profile,僅 npm i 不會讓 DSH 加載(dsh.bundle.patch 由 profile 安裝流程讀取)。
# 默認 profile
dsh plugin install dsh-session-superagent
# 指定 profile / 鎖定版本
dsh plugin --profile desktop add dsh-session-superagent@latest
也可在應用內插件市場搜索安裝。客戶機器升級:
dsh plugin --profile <profile> add dsh-session-superagent@latest
本地以目錄 file: 安裝時,新增文件需執行 pnpm run sync:profile,否則重啓後可能整體不掛載。服務端改動需重啓 DSH 宿主才生效(面板在版本不一致時會提示)。
典型用法¶
先做環境:gh auth login 確保 CLI 可用;在目標倉庫準備好 AGENTS.md,寫清 issue/PR 的處理規則。
- 在當前會話中調用
watch_start,登記要守的倉庫與輪詢間隔、過濾條件等。 - 在倉庫新建或更新 issue/PR(或等待他人提交)。
- 輪詢命中後,會話收到形如
【主理魚】owner/name 有 N 條新動態:…的消息;模型按AGENTS.md判斷是修 bug、回評論、開 PR 還是提問。 - 處理完成後寫回 GitHub;需要避免重複叫醒時調用
watch_ack。
排查「多久會被叫醒」可運行倉庫內腳本(需本地有插件源碼時):
node scripts/explain-latency.mjs
只讀工具 watch_status、watch_doctor、watch_trace 支持 format: 'json',便於腳本集成;寫工具成功/失敗看返回裏的 ok 字段。
適用場景與注意¶
適合:你已經在 DSH 裏用會話維護某個 GitHub 倉庫,希望有 issue/PR 動態時自動叫醒同一會話按項目規則幹活,又不想把 token 塞進 prompt。
注意:
- 依賴 輪詢,延遲下限約等於輪詢間隔,不是 webhook 實時推送。
- 憑證失效時需重新
gh auth login;輪詢會退避,不會自行恢復登錄。 - 同一會話可同時守多個倉庫,但同一時刻只處理一批;多倉庫同時有動靜會按限流排隊。
- 開啓
isolated會在倉庫下留.dsh-zhuli/worktree(默認最多 5 個,約等於工作樹體積);目錄會寫入.git/info/exclude,一般不污染git status。 - 兩個會話守同一倉庫且改同一文件同一區域,合併時可能出現 git 衝突,屬正常語義。
社區插件目錄與 DeepSeek / 幻方無官方從屬關係;星標與 fork 數以 GitHub 頁面爲準(截至資料抓取時倉庫爲 1 star、1 fork)。
結尾¶
dsh-session-superagent 把 GitHub 倉庫監聽和 DSH 會話執行疊在一起:憑證留在插件側,喚醒消息只通報「有新動態」,行爲由 AGENTS.md 定調。若要進一步看 0.9 面向使用者的變更,可讀倉庫內 docs/whats-new-0.9.md。