@minybear/dsh-pet:爲 DSH Web GUI 增加狀態驅動的 Codex 風格桌面寵物

前言

在 DSH 的“一切皆插件”場景裏,Web GUI 可以通過客戶端插件擴展界面。對使用 DSH 觀察 agent 會話的開發者來說,常見需求是把當前會話狀態從文字提示中抽出來,快速看到它是在運行、等待輸入、報錯、完成還是待機。

@minybear/dsh-pet 是 minybear 維護的 DSH 客戶端插件,許可證爲 MIT。它在 DSH Web GUI 中漂浮一隻動畫小寵物,由當前會話的 agent 運行狀態即時驅動,並提供餵食、玩耍、設置等輕量交互。

插件定位

一句話定位:Codex 風格的“桌面寵物”DSH 客戶端插件,在 DSH Web GUI 裏漂浮一隻動畫小寵物,由當前會話的 agent 運行狀態即時驅動。

它解決的問題:把當前會話狀態映射爲寵物動畫,並加入位置、外觀、數值和自定義寵物包導入等設置,方便在不頻繁查看狀態欄或日誌的情況下感知 agent 當前狀態。

核心功能

漂浮寵物

寵物註冊進 DSH 的 shell.overlay 槽,屬於幀級浮動層,可點透,默認右下角常駐,可拖拽換位。

狀態驅動

插件讀取當前會話狀態,並映射到 Codex 的 9 狀態動畫行。

會話信號按存活期衰減:

  • Running:3min
  • Failed:1h
  • Waiting:24h
  • Review:7d

超時後回退到 idle

減少動態

插件跟隨系統 prefers-reduced-motion,也可以在設置裏手動鎖定“完整 / 減少動態”。

進入減少動態後,按 Codex 行爲固定顯示 idle 第一幀。

點擊菜單

點擊寵物會彈出菜單,可用操作包括:

1、餵食(eat

2、玩耍(play

3、設置

拖拽移動

拖拽可以移動寵物位置。

拖動時按方向播放 running-left/right 行走動畫,靜止時進入 drag 姿態,位置會持久化到 localStorage

養成數值

插件內置飽食 / 心情數值,範圍均爲 0–100,並隨牆鍾時間衰減;關掉瀏覽器也會繼續計時,約 8h / 6h 見底。

數值變化規則:

  • 餵食:飽食 +30
  • 玩耍:心情 +25

菜單裏有兩條數值條。當寵物待機且某項低於 20 時,會提示“餓了 / 想玩”。

內置寵物

內置五隻寵物:

  • Dee(青綠)
  • Amber(琥珀)
  • Berry(莓紫)
  • 灰鯨(DeepSeek Harness logo 造型)
  • 藍鯨(DeepSeek 官方 logo 造型)

可以在設置面板一鍵切換。

外觀設置

外觀設置包括:

  • 尺寸:0.5–1.5
  • 透明度:0.2–1
  • 動畫模式
  • 寵物選擇

這些設置全部持久化到 localStorage

自定義寵物包

設置面板支持導入標準 Codex 寵物包,包括:

  • pet.json
  • 圖集圖片

導入後會先校驗,再存入 localStorage,並立即可選;也可以刪除。

兼容包格式由 pet.json 和一張行優先圖集描述。pet.json 字段包括:

{
  "id": "",
  "displayName": "",
  "description": "",
  "spritesheetPath": "",
  "frame": null,
  "animations": null
}

圖集前 9 行爲 Codex V1 官方 9 狀態,第 9–11 行爲交互狀態(eat / play / drag)。

如果自定義寵物包沒有額外交互行的官方 9 行圖集,會自動回退:交互態播放 idle 行。

安裝與啓用

客戶端插件需要宿主端打包(dsh.client.inject),安裝後需要重啓 DSH 並刷新頁面才生效。

已給出的安裝命令爲:

dsh plugin --profile web add github:minybear/DeepSeek-Harness-Pet

安裝後重啓:

dsh web

然後刷新頁面,寵物應出現在右下角。

離線環境或無需 pnpm 時,可使用手動安裝腳本:

deploy\install.ps1

典型用法

1、安裝並重啓 DSH 後,打開 Web GUI,確認右下角出現寵物。

2、點擊寵物,彈出菜單後執行餵食、玩耍或進入設置。

3、拖拽寵物到合適位置,位置會持久化到 localStorage

4、在設置面板中切換內置寵物,調整尺寸、透明度和動畫模式。

5、導入自定義 Codex 寵物包:上傳 pet.json 與圖集圖片,校驗通過後立即可選。

6、如果需要運行測試或圖集自檢,可以執行:

npm test
node scripts/render-atlas.mjs --all

其中 npm test 依次跑 pet-core / client-contract / paritynode scripts/render-atlas.mjs --all 軟渲染三隻內置寵物圖集並自檢網格不變量。

實現與測試注意

client.js 內聯了一份 pet-coretest/parity.test.mjs 會對兩份副本做全量行爲一致性校驗,防止行爲分叉。

適用場景與注意

適合:

  • 使用 DSH Web GUI,希望把 agent 狀態可視化成寵物動畫的開發者。
  • 想按 Codex 寵物包格式導入或製作自定義寵物動畫的開發者。
  • 需要低打擾狀態提示,並且重視系統減少動態設置的開發者。

注意:

  • 插件以當前 dsh 進程權限運行;安裝前應檢查源碼和 MIT 許可證。
  • 養成數值按牆鍾時間衰減,不依賴瀏覽器是否打開。
  • 自定義寵物包如果沒有交互行,交互態會回退到 idle 行。
  • 本文只使用資料中明確給出的安裝命令,不把它表述爲唯一官方安裝入口。

結尾

@minybear/dsh-pet 的價值在於把 DSH 當前會話狀態映射爲 Codex 風格寵物動畫,並提供餵食、玩耍、拖拽、外觀、自定義寵物包導入等輕量設置。

社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。本文資料未提供目錄頁 URL,源碼地址爲:

https://github.com/minybear/DeepSeek-Harness-Pet

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

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

小夜