dsh-session-superagent:會話級主理魚,盯倉庫有動靜就喚醒 DSH

前言

在 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(宿主自帶)
  • 已登錄的 gh CLI

安裝與啓用

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 的處理規則。

  1. 在當前會話中調用 watch_start,登記要守的倉庫與輪詢間隔、過濾條件等。
  2. 在倉庫新建或更新 issue/PR(或等待他人提交)。
  3. 輪詢命中後,會話收到形如 【主理魚】owner/name 有 N 條新動態:… 的消息;模型按 AGENTS.md 判斷是修 bug、回評論、開 PR 還是提問。
  4. 處理完成後寫回 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。

羽毛球分组比赛记分
小程序二维码

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

小夜