前言¶
在 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