dsh-pause-button:在 DSH 輸入區旁暫停與恢復智能體任務

前言

在 DSH Web 界面裏跑長任務時,常見需求是「先停一下,確認方向再繼續」,而不是直接取消整輪對話。手動點停止往往會打斷正在執行的工具調用或模型請求,恢復時還可能重複已完成的步驟。下面介紹維護者 trammels51 發佈的工作流類插件 dsh-pause-button:在 Composer 輸入區右側、發送按鈕左側提供一個小型暫停/恢復控件,並配套 /pause、/resume 命令,區分「安全暫停」(等當前步驟結束再掛起)與「強制暫停」(立即打斷當前步驟)。

這是什麼

dsh-pause-button(npm 包名同插件倉庫名,當前資料版本 0.1.0,MIT 許可證)面向 DSH Web 場景:在 conversation.input.right 插槽放置 28×28 px 純圖標按鈕,樣式與 Composer 工具行一致;無運行任務時按鈕變淡,運行中約 68% 不透明度,等待安全暫停邊界時脈衝提示,已暫停時使用低飽和度藍色。插件依賴 DSH 0.2.2-rc.1 至 0.2.x,需要宿主提供 webServer 與 agents 服務,不是無頭或 ACP 專用插件。

核心功能

安全暫停(默認:safe / wait)

  1. 不中斷當前步驟:正在進行的工具或模型請求允許跑完。
  2. 在下一個 agent/pre-step 邊界,本輪在發起下一次模型請求前被掛起。
  3. 恢復時釋放該 pre-step 決策,在同一輪內原地繼續;已完成的步驟不會重做,也不會額外插入用戶消息。
  4. 若任務在抵達下一邊界前已結束,插件會說明未到達暫停點,而不會假裝已暫停。

強制暫停(force / stop)

  1. 立即調用 agent.cancel({ kind: 'user' }, { keepInbox: true }),打斷當前步驟並保留已完成歷史。
  2. 恢復時發送一條續寫提示,請模型從斷點繼續、不重做已完成工作。
  3. 因此強制恢復會在界面留下一條可見的用戶角色消息;安全恢復則不會。

界面與命令

  • Composer 旁按鈕與裸 /pause 遵循 Settings → General → Pause granularity 中的默認粒度。
  • /pause force(或 stop)可單次覆蓋默認;若已有待處理的安全暫停,亦可升級爲強制暫停。
  • /pause status 可查看階段、當前模式與默認模式。

命令一覽(與 README 一致):

命令 作用
/pause 按配置的默認粒度暫停
/pause force 或 /pause stop 本次強制暫停
/pause safe 或 /pause wait 本次安全暫停
/pause status 顯示階段與模式
/pause resume 同 /resume
/resume 恢復被掛起的任務

安裝與啓用

插件以當前 dsh 進程權限運行;安裝前請自行查看 GitHub 倉庫 源碼與 MIT 許可證,確認是否符合你的環境策略。

從 GitHub 安裝:

dsh plugin --profile web add github:trammels51/dsh-pause-button

或使用預構建 release 包:

dsh plugin --profile web add https://github.com/trammels51/dsh-pause-button/releases/latest/download/dsh-pause-button.tgz

安裝後若按鈕未出現,刷新 Web 頁面。

默認暫停粒度在 Settings → General → Pause granularity 中設置:

  • Safe (wait):完成當前步驟後暫停,原地恢復。
  • Force (stop):立即停止當前步驟,從斷點續跑。

選項持久化在 $DSH_HOME/dsh-pause.json。

典型用法

  1. 長任務運行中,在 Composer 右側點暫停按鈕,或輸入 /pause(行爲與當前默認粒度一致)。
  2. 需要立刻打斷當前工具/請求時,使用 /pause force 或 /pause stop。
  3. 確認方向後輸入 /resume,或 /pause resume。
  4. 不確定當前狀態時執行 /pause status。

倉庫 Verification 一節記錄:在 Web GUI 中對子智能體 sleep 8 工具調用做安全暫停時,暫停在工具結束後、下一邊界處掛起,恢復後同一輪繼續並完成——可作爲行爲預期參考。

適用場景與注意

適合:在 DSH Web 裏需要可控中斷與續跑、又不想輕易丟歷史的工作流調試與日常對話。

實現要點(便於排錯):

  • 主機側 lib/index.js 註冊路由與命令,按 Session 維護狀態;客戶端 lib/client.js 約每 900 ms 輪詢 Session 狀態,頁面隱藏時暫停輪詢。
  • 僅暫停當前尋址的 Agent,其 subagents 不會自動暫停。
  • 安全暫停期間 Agent 狀態仍可能顯示爲 running(同一輪被掛起);Stop/cancel 會釋放掛起並結束該輪。
  • 強制恢復因無「掛起的調用」可釋放,會插入一條可見續寫消息。

社區目錄 SkillHub 插件頁 與 GitHub 爲獨立信息來源,與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,安裝來源以你實際執行的 dsh plugin 命令爲準。

結尾

dsh-pause-button 用最小 UI 和明確的兩檔暫停語義,把「等一步再停」和「立刻停」分開,減少誤打斷與重複勞動。需要進一步細節或提 issue,可訪問目錄頁與倉庫:

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

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

小夜