WaitBuddy:給 DSH 會話加一個長任務監視與小遊戲面板

前言

跑長任務時,Agent 在後臺跑,用戶在前端等。原生會話視圖只有 Chat 和 Trajectory:想知道當前進展得翻滾動記錄,想看是否有待審批的彈窗也得盯着原話;等的過程中又沒有事可做。WaitBuddy 就是把「看進度 + 被提醒 + 消磨等待時間」這三件事合併到一個會話標籤頁裏,並且明確只做監控、不反向控制 Agent。

下面介紹 CelineHuangdz 維護的 dsh-wait-buddy。它是一個 DSH Desktop 的會話視圖插件,在當前會話的 Chat / Trajectory 旁邊增加一個 WaitBuddy 標籤,提供長任務狀態、審批/失敗提醒,以及 Snake(貪喫蛇)和 Gomoku(五子棋)兩個小遊戲;在 M3 階段還會讓 Agent 事件單向驅動小遊戲。

這是什麼

WaitBuddy 是 DSH Desktop 的 session-view 插件,由 CelineHuangdz 維護,當前版本 0.4.1,在 DSH 0.2.1-rc.5 上測試。它解決的問題是長任務的「可觀察性」和「等待期的空轉」:把進度、待審批提醒放進一個常駐面板,再用輕量遊戲填充等待時間。

它有三條邊界寫在 README 的開頭:從不控制 Agent,從不攔截原生審批彈窗,從不寫入會話日誌。

核心功能

監控看板

  • 作爲會話視圖註冊在 conversation.view 上,位置緊挨 Chat / Trajectory。
  • 狀態如實顯示 loading / ready / degraded / stale,缺失的 projection 不會被顯示成「空閒」。
  • 步數顯示「N steps completed」,沒有總步數,也沒有百分比。
  • 活動流只取 tool/call 的命令/工具條目(最多 3 條),不含模型原始推理內容(D27)。
  • 審批/失敗提醒放在獨立於滾動內容的 alert rail,始終可見。

小遊戲

  • Snake:Canvas 繪製,無外部資源,方向鍵控制,方向隊列、暫停/重置、速度預設。
  • Gomoku:15×15 棋盤,人執黑對陣啓發式 AI,可調難度,resize 時重繪。
  • 兩個遊戲各自維護狀態,切換視圖或會話只暫停、不重置。

單向信號(M3)

  • 出現審批 → 遊戲自動暫停,提示「Waiting for approval」。
  • 審批被處理 → 不自動恢復,浮層顯示「Handled — press Space or click Resume」。
  • step +5 分,success +50 分,failed/abort 只顯示提示、不重置當前輪。
  • 信號以 agent:* 發佈,遊戲只消費;監控層不定義任何獎勵邏輯。

安裝與啓用

安裝方式由 README 的 Quick start 給出。在 DSH 裏走側邊欄 Plugins → Add plugin,然後選一種方式填入:

github:CelineHuangdz/dsh-wait-buddy

其他三種方式的 Value 分別是:

/abs/path/to/dsh-wait-buddy            # 本地目錄(開發用,先 pnpm install)
dist/dsh-wait-buddy-0.4.1.tgz          # tarball(絕對路徑)
dsh-wait-buddy                         # npm 包,版本可能落後於倉庫

各自差別是:Git 方式跟隨最新提交;本地目錄需要先執行 pnpm install,因爲 Host 半邊用 zod 校驗 projection schema;tarball 用 npm pack --patch-destination dist 生成;npm 上的包可能落後於這個倉庫。裝完啓用插件並刷新頁面,再在會話視圖標籤裏選擇 WaitBuddy。

注意這裏沒有 dsh plugin add 命令行入口;本地目錄是唯一需要先 pnpm install 的方式。

典型用法

裝好並打開會話後,按下面的順序使用:

  1. 打開會話,切到 WaitBuddy 標籤。
  2. 發一個任務:狀態、步數和活動流從 turn/start / step/end / tool/call 更新。
  3. 點 Start game 開一局 Snake;方向鍵只在視圖獲得焦點時生效,先點一次棋盤。
  4. 審批出現時遊戲自動暫停,到原生審批面板處理完,再手動點 Resume。
  5. 任務成功時 +50 分;切換視圖不會重播這條 toast。

按 README 說明,方向鍵只在視圖內生效,不會搶走 composer 的按鍵;純觸屏/指針設備無法控制方向(D7,已批准的偏差)。

配置

配置項很少,全部存在瀏覽器本地 localStorage 的 dsh-wait-buddy.settings.v1 鍵下,沒有環境變量、沒有遠程配置:

配置項 取值
Snake 速度 Slow / Normal / Fast
Gomoku 難度 Easy / Medium / Hard

最高分和當前局只存在內存裏(M4 候選)。設置不上傳、不跨設備同步。

適用場景與注意

適合在 DSH Desktop 裏跑長時間 Agent 任務、希望保留一個常駐觀察窗口的人;也適合盯長任務之餘想順手玩點小遊戲的用戶。README 寫明支持範圍是 DSH 0.2.1-rc.5,其他版本不做承諾。

需要留意的是:插件運行在當前 DSH 進程的權限下,安裝前應檢查源碼與許可證(MIT)。README 也列出了已知偏差——D7 只有鍵盤方向鍵;D16/D17 的 Gomoku/設置提前進入 M4 範圍;D28 的提問/計劃評審延後;D22 未知終端顯示 aborted 加原因文本,不新增枚舉。另外 320px 寬度有視覺迴歸覆蓋,發佈前仍需做一次真實雙實例冒煙。

結語

WaitBuddy 的價值不在於讓 Agent 更快,而是把等待過程變得可觀察、不被打斷、也不無聊:一個只讀的監控面板加兩個小遊戲。它的設計始終是單向的,Agent 事件只能影響遊戲,遊戲不會反過來影響 Agent。

要找這個插件,見技能目錄頁和倉庫:

  • https://www.skillhub.cn/plugins/CelineHuangdz/dsh-wait-buddy
  • https://github.com/CelineHuangdz/dsh-wait-buddy
羽毛球分组比赛记分
小程序二维码

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

小夜