核動力草泥馬(dsh-caonima):隨 Agent 狀態變化的 DSH Web 桌寵

前言

在 DeepSeek Harness(DSH)裏用 Web GUI 跑 Agent 時,界面往往只反映日誌和工具調用,長時間盯着終端或面板,很難一眼看出「當前是在跑、在等審批,還是已經空閒」。社區裏也有各種狀態指示方式,但多數是靜態圖標或文字。維護者 hzhgino 的 dsh-caonima(npm 包名 dsh-caonima)把一隻屏幕右下角的「草泥馬」桌寵掛進 Web 界面:它會訂閱當前會話與 Agent 事件,用散步、巡邏、氣泡和簡單互動把工作狀態可視化。分類上屬於 DSH 插件目錄裏的「趣味換裝」類。下面介紹它是什麼、能做什麼,以及如何安裝與使用。

這是什麼

核動力草泥馬是面向 DSH Web GUI 的桌寵插件:瀏覽器右下角常駐一隻草泥馬,行爲隨當前 Agent / 會話狀態切換。項目託管在 GitHub hzhgino/dsh-caonima,目錄頁爲 SkillHub 插件頁。當前 package 版本爲 0.1.0,許可證 MIT。運行環境要求 dsh v0.1.5+。

實現上是標準的 DSH 雙面包(dual-face)插件:Node 側 lib/index.js 提供空的 apply() 以便 Loader 掃描 dsh.client 聲明;瀏覽器側 lib/client.js 通過 window.__ModuleLoader__.load 註冊,不依賴 React,並聲明 dsh.client.immediately: true,啓動時即加載。狀態來自 ctx.sessions(dsh-api-session-controller 瀏覽器半):當前選中會話、binding.session 的 snapshot.running,以及 binding.eventSource 上的 tool/call、approval/*、turn/end 等事件(首載/重連只做快進,不回放歷史)。動畫用 CSS keyframes 與 requestAnimationFrame;卸載或 HMR 換血時會移除 DOM 與 data-plugin 樣式,避免殘留。

核心功能

與會話狀態聯動

Agent / 會話狀態 表現(據 README)
空閒(idle) 沿屏幕底部慢速散步,偶爾停下喘氣、眨眼、耳朵抖動;閒置約 50 秒後打盹(閉眼)
正在工作(running) 快步巡邏,四肢走馬燈;氣泡實時播報正在執行的工具(如 bash、grep);偶爾蹲下喫草
等待審批(approval/asked) 原地急跳,橙色警報氣泡提示需要批准;批覆後恢復工作態
回合結束(turn/end) 三連跳慶祝;失敗時表現會切換爲「翻車」樣式
新消息到達 氣泡提示收到並出發

互動

  • 戳一戳:搖頭晃腦與粒子效果,並隨機顯示「泥馬語錄」;打盹時被戳會驚醒。
  • 拎起來:按住可拖到任意高度,鬆手後四肢下垂搖擺,落地帶重力回彈。
  • 嘴上的草持續隨風擺動(README 中說明爲致敬經典表情包)。

安裝與啓用

官方 Quick Start 推薦從 GitHub 源安裝(npm 發佈後可改用包名)。在 shell 中執行:

# 安裝(二選一,當前推薦 GitHub 源,npm 發佈後即可用包名)
dsh plugin --profile web add github:hzhgino/dsh-caonima
# 或(npm 發佈後)
# dsh plugin --profile web add dsh-caonima

# 重啓 web host 並刷新瀏覽器頁面,草泥馬出現在右下角
dsh web

若已通過 dsh.bundle.patch(cordis.patch.yml)做 profile bundle 正式安裝,README 說明需重啓一次 web host(bundle 層在啓動時組裝),再刷新頁面。

卸載:

dsh plugin --profile web remove dsh-caonima

重啓 web host 後桌寵消失。

典型用法與開發注意

日常使用

安裝並 dsh web 後無需額外配置項:打開 Web GUI,選中會話並驅動 Agent 工作,觀察右下角桌寵隨 running、審批與回合結束事件變化即可。氣泡會在 running 時展示當前工具名,便於對照面板裏的調用。

開發嚐鮮(patch 直掛,二選一)

README 還提供免打包方式:在 ~/.dsh/profiles/web/cordis.patch.yml 用 insert 寫入插件 lib/index.js 的絕對路徑,且 profile 需支持 patchReload: live,運行中的 host 可熱重組,刷新頁面即見。注意:正式 dsh plugin add 與 patch 直掛不要同時生效,否則同一 client 可能被兩個 Loader 解析,composition 會拒絕。

開發時直接改 lib/client.js 並保存,在啓用 client-hmr 的環境下頁面可原地換血(插件內部狀態重置,連接與會話不受影響)。

適用場景與注意

適合誰:已在用 DSH Web profile、希望用輕量視覺反饋輔助感知 Agent 狀態的用戶;喜歡桌寵與趣味交互、又不介意右下角佔一塊區域的場景。

權限與安全:與其它 DSH 插件一樣,本插件隨當前 dsh 進程與 Web 宿主加載並在瀏覽器中執行 client 代碼。安裝前應閱讀 倉庫源碼 與 MIT 許可證,確認符合你的環境與合規要求。SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係,並非官方應用商店。

依賴:除 dsh v0.1.5+ 外,行爲依賴會話 API 與事件流;若宿主版本過舊或 session 控制器不可用,桌寵可能無法正確訂閱狀態。

結尾

dsh-caonima 把 Agent 空閒、運行、待審批與回合結束映射成桌寵動畫與氣泡,適合在 Web GUI 里長時間盯會話時使用。安裝命令以 README 爲準:dsh plugin --profile web add github:hzhgino/dsh-caonima,然後 dsh web 並刷新頁面。

  • 目錄頁:https://www.skillhub.cn/plugins/hzhgino/dsh-caonima
  • GitHub:https://github.com/hzhgino/dsh-caonima
羽毛球分组比赛记分
小程序二维码

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

小夜