前言¶
DeepSeek Harness(DSH)把「一切皆插件」寫進官方倉庫說明。網頁界面跑起來之後,任務完成、會話開始、等待批准、請求出錯,這些狀態大多還是落在面板和日誌裏,要盯着看才知道發生了什麼。主題與外觀這一類插件裏,換皮膚、改佈局比較常見;把工作臺本身做成一隻會動的夥伴,是另一條路。
whale-girl 走的就是後一條。它在 DSH 網頁界面右下角放一隻 QQ 寵物形態的桌寵:可以拖拽,可以投餵和玩耍,也會跟着任務、會話和陪伴時長往上攢資歷。本文按社區插件目錄頁、倉庫 README、成長系統與狀態機文檔、以及 package.json / 配置源碼交叉覈對後整理:它是什麼、能做什麼、怎麼裝、怎麼配。
需要先說清邊界:社區插件目錄(deepseek-harness-plugin.com)是獨立站點,和 DeepSeek / 幻方沒有官方從屬關係,不能當成官方應用商店。DSH 本體在 deepseek-ai/deepseek-harness。
這是什麼¶
whale-girl 是一款面向 DSH 網頁界面的主題與外觀插件,由 vlln 維護,GitHub 倉庫爲 vlln/whale-girl。截至 2026 年 8 月 17 日,倉庫約 197 stars,許可證 MIT,主要語言 JavaScript。倉庫 package.json 裏的版本號是 0.1.0。
它解決的問題很具體:在 Web GUI 裏放一隻懸浮桌寵,把 agent 工作臺上已經發生的事變成可見的動作和一份只增不減的賬本。目錄頁的定位是:
DSH 網頁界面的 QQ 寵物形態桌寵:右下角懸浮、可拖拽/投餵/玩耍的積累型夥伴。
實現形態也寫在 package.json 的 dsh 字段裏:官方 bundle 插件(dsh.bundle 指向 cordis.patch.yml),客戶端聲明 platform: web。也就是說,它掛在網頁端,不是終端 TUI 插件。
默認角色是「鯨魚娘」。README 寫明角色形象由 ZipZipPipe 創作(「鯨魚娘」表情包角色),sprites 基於其角色設定生成。素材清單 lib/assets/manifest.json 裏,該角色的 credit 也是 ZipZipPipe。
核心功能¶
右下角懸浮,可拖、可喂、可玩¶
裝完並重啓 web 之後,寵物出現在右下角。README 給出的基本操作是:
- 點擊彈出菜單:🍗 餵食、🎾 玩耍
- 拖拽可移動
- hover 顯示狀態條:資歷等級、任務數、最近共同回憶
- 初始配置 / 歡迎頁(onboarding)階段寵物隱藏
餵食和玩耍本身不加經驗,只觸發啃咬 / 拋接球,然後進入開心狀態,並彈出可配置的回話氣泡。成長文檔把這類互動明確寫成「純樂趣,無數值影響」。
跟着工作臺走的 15 個狀態¶
寵物不是循環播一段待機動畫。倉庫把行爲收成一張 15 態狀態機,角色必須爲全部 15 個狀態提供素材(缺一會被 verify-assets 門禁拒收)。README 裏的對照如下:
| 你做什麼 / 發生什麼 | 寵物表現 |
|---|---|
| 拖拽寵物 | 被斜向拉扯(drag) |
| 點擊菜單餵食 / 玩耍 | 啃咬 / 拋接球(eat / play)→ 開心(joy) |
| 空閒 ≥60s | 打盹(sleep);互動時醒過來(wake) |
| 任務完成 / 升級 / 稱號 / 回合完成 | 舉手歡呼(celebrate) |
| 任務失敗 / 請求出錯 | 驚嚇(error)→ 失落(disappointed) |
| 新會話開始 | 揮手歡迎(welcome) |
| 任一會話運行 / 思考中 | 沉思陪伴(think,偶爾插入 working) |
| 等待批准 | 期待等待(wait) |
| 週期遊走 | 散步(walk) |
| 常態 | 待機(idle,隨機眨眼 / 轉身) |
狀態機文檔還補了幾條轉換規則,寫文章時值得單獨記住:
- 拖拽優先級最高;放下後有 1.5 秒緩衝,再回到底層狀態。
- 失敗情緒窗口不會被新會話的歡迎蓋掉。
- 會話在思考或等待批准時,會壓住睡覺和散步。
think是思考陪伴的常態;working是客戶端節奏器隨機插入的工作姿態,不是任務指示燈。
完整優先級和觸發源以倉庫 docs/state-machine.md 爲準。
積累型成長:經驗、稱號、回憶¶
成長系統設計成「零負反饋」:無衰減、無懲罰、無需求。失敗只計數,並播一段短暫失落,不扣資歷。權威說明在 docs/growth-system.md。
經驗來源是覈實過的這幾項:
| 來源 | XP | 觸發 |
|---|---|---|
| 完成任務 | +10 | 任務完成(頁面關閉期也不漏記) |
| 新會話(startup) | +5 | agent/session-start,source 爲 startup |
| 續接 / 延續(resume / compact / clear) | +2 | 同上,其餘 source |
| 活躍陪伴時長 | 累積 | 任務運行中按輪詢差分累加;單次增量封頂 5 分鐘 |
請求錯誤不計數、不懲罰,只觸發情緒。等級由經驗派生,公式是 xpForLevel(L) = 50·L·(L−1)/2,也就是 2 級 50、3 級 150、4 級 300。文檔寫明:level 永遠由 xp 計算,禁止手寫。
稱號是封閉集合,由統計數據冪等派生,解鎖時寫入回憶並觸發慶祝:
| 稱號 | 解鎖條件 |
|---|---|
| 初次協作 | 完成 ≥1 任務 |
| 勤勞夥伴 | 完成 ≥20 任務 |
| 百鍊成鋼 | 完成 ≥100 任務 |
| 常駐夥伴 | 累計活躍 ≥6 小時 |
| 越挫越勇 | 失敗 ≥5 次 |
| 廣結善緣 | 開啓 ≥10 會話 |
回憶是環形日誌,最多 8 條,hover 狀態條展示最新一條。多角色共用同一份賬本:資歷記的是陪伴關係,不是某個外觀。
XP 數值、等級曲線、稱號集合與閾值屬於語義層,配置門禁不允許用戶改。README 的原話是:改這些會破壞積累賬本一致性。
可換角色,行爲文法共通¶
菜單裏有「🎭 換角色」,也可以改 localStorage 鍵 whale-girl:character。每個角色必須提供全部 15 狀態素材;事件到動作的映射全角色共通,角色只能填資源槽,不能改觸發或優先級。
倉庫把「加角色」寫成資源級貢獻:產出 15 張 sheet 加一段 manifest 條目,不必改代碼。操作說明在 docs/adding-a-character.md,驗收命令是:
node scripts/gates/verify-assets.mjs
README 還把它標成官方 repository-plugin 格式的完整範本,結構和門禁可對照倉庫根目錄的 AGENTS.md。這是給插件作者看的,日常使用桌寵不需要讀這些。
安裝與啓用¶
社區目錄頁給出的安裝命令是:
dsh plugin add github:vlln/whale-girl
倉庫 README 推薦走 web profile,並釘到 main 分支(說明構建產物已入庫):
dsh plugin --profile web add "github:vlln/whale-girl#main"
也可以從本地目錄安裝:
dsh plugin --profile web add <whale-girl 本地路徑>
裝完必須重啓 web,bundle 層在啓動時合成,右下角纔會出現寵物。之後更新用:
dsh plugin --profile web update whale-girl
同樣要重啓才生效。
如需可復現安裝,目錄頁建議固定 commit 哈希,寫法是:
dsh plugin add github:vlln/whale-girl#<commit>
把 <commit> 換成實際哈希。目錄頁和 DSH 官方文檔都提醒:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼;安裝前應檢查源代碼倉庫和許可證。
典型用法¶
日常互動¶
重啓 web 後,按 README 的路徑即可復現:
- 看右下角是否出現寵物。若正停留在初始配置或歡迎頁,寵物會隱藏,進到工作臺後再看。
- 點擊寵物打開菜單,選餵食或玩耍,觀察啃咬 / 拋接球,以及隨後的開心動畫和氣泡。
- 按住拖到別處,放下後會先緩衝再回到待機或當前陪伴態。
- 鼠標懸停,看等級、任務數和最近一條回憶。
- 開一個新會話,應看到揮手歡迎;會話思考中進入沉思;等待批准時進入期待等待。
- 任務成功會歡呼並記賬;失敗會驚嚇再失落,經驗不扣。
空閒達到配置裏的 sleepAfterMs(默認 60 秒)會打盹。拖拽、餵食、玩耍或打開菜單都會被當成用戶在場,空閒計時從這次交互重新起算。
配置(改完熱生效)¶
參數走宿主 settings,寫在 /settings.yaml 的 whale-girl: 段,或用設置 UI。README 寫明修改後熱生效,不用重啓。倉庫給出的示例如下:
whale-girl:
enabled: true # 網頁端渲染開關(與桌面伴侶並存時設 false 關閉網頁端寵物,避免雙寵物)
size: 110 # 寵物尺寸 px(64–160)
opacity: 1 # 常態透明度(0.2–1)
walk:
enabled: true # 遊走開關
sleepAfterMs: 60000
這些默認值可以在 lib/src/config.mjs 裏對上。同一份源碼還暴露了更細的體驗層項,例如遊走間隔、遊走速度、各情緒窗口時長、餵食 / 玩耍回話文案池。語義層(XP、稱號、回憶條數上限)不在這份 schema 裏,門禁會攔住把它們配出去的改動。
enabled 專門處理「網頁端寵物和桌面伴侶同時存在」的情況:並存時把網頁端關掉,避免屏幕上出現兩隻。
適用場景與注意事項¶
適合這些情況:
- 主要在 DSH 網頁界面裏跑 agent,希望任務、會話、批准等待有一眼能看見的反饋
- 想在主題與外觀之外,給工作臺加一個可積累、只增不減的輕量夥伴
- 準備給 whale-girl 畫新角色,或把它當作 repository-plugin 的結構範本
使用前注意下面幾條,都來自目錄頁、倉庫文檔或 DSH 官方安裝說明,不是額外發揮:
- 只覆蓋 web。
package.json聲明dsh.client.platform爲web。終端或不帶 Web GUI 的 profile 裝了也不會按桌寵來用。 - 插件跑在當前 dsh 進程權限下。 目錄頁寫了:安裝時可能執行代碼。裝之前看倉庫和 MIT 許可證;生產或共享環境建議固定 commit,避免
main後續推送悄悄改掉實際運行的內容。 - 社區目錄不是官方商店。 whale-girl 是 vlln 維護的社區開源項目。目錄站點與 DeepSeek / 幻方無官方從屬關係。
- 不要和皮膚插件當成同一個東西。 目錄「相關插件」裏有
dsh-deep-whale(鯨魚娘皮膚系列),那是另一套皮膚,不是這隻桌寵。 - 成長規則不能配。 等級、稱號、XP 來源是代碼級封閉集合。能調的是尺寸、透明度、遊走、睡眠等待和文案這類體驗層。
- 裝完要重啓 web。 配置熱更新只管 settings;插件本身的 bundle 合成發生在啓動時。
- 角色形象有署名。 默認鯨魚娘形象來自 ZipZipPipe 的角色設定,二次使用或再創作應回到倉庫致謝與許可證自行判斷。
倉庫成長文檔裏還列了一些未實現方向(例如按 token 消耗給 XP、更多稱號維度)。那些只是文檔中的規劃,當前版本不能當成已有能力。
小結¶
whale-girl 把 DSH 網頁工作臺收成一隻 QQ 形態桌寵:右下角懸浮,可拖拽、投餵、玩耍;任務、會話和陪伴時長會變成等級、稱號和回憶。狀態機有 15 個動作,成長賬本只增不減,配置面只開放體驗層。它解決的不是加速推理或補工具,而是讓長時間開着的 Web GUI 多一層看得見的陪伴和反饋。
相關地址:
- 社區目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/whale-girl/
- GitHub 倉庫:https://github.com/vlln/whale-girl
- DeepSeek Harness 官方倉庫:https://github.com/deepseek-ai/deepseek-harness