用 dsh-kun-like-pet 給 DeepSeek Harness 加一隻跟着 Agent 幹活的小坤桌寵

前言

用 DeepSeek Harness(dsh)跑長時間任務時,注意力往往在編輯器和終端之間來回切。Web 界面裏雖然能看到工具調用和流式輸出,但「現在是在執行、在思考、在等你審批,還是已經結束了」這幾件事,仍然要盯着會話內容自己判斷。任務跑完如果窗口被擋住,也很容易錯過。

dsh-kun-like-pet 把這件事做成右下角的桌面寵物:小坤會按智能體的工作狀態切換動作,任務乾淨結束時再播一段「你幹嘛~哎喲」。它解決的不是寫代碼本身,而是給當前 dsh 會話補一層可見、可聽的狀態反饋。

本文按社區目錄頁、GitHub 倉庫 README / CHANGELOG / 源碼,以及 DeepSeek Harness 官方倉庫交叉覈對後整理。目錄站點是獨立社區項目,與 DeepSeek、幻方沒有從屬或背書關係;DeepSeek Harness 本身採用「一切皆插件」架構,目前仍處於開發者預覽階段。

這是什麼

dsh-kun-like-pet 是一款趣味類 DeepSeek Harness 插件,由 liyupi 維護,代碼以 MIT 許可證開源,主要語言是 JavaScript。社區目錄於 2026-08-15 收錄,倉庫創建於 2026-08-14。截至 2026-08-17,GitHub 顯示 47 顆星(目錄頁收錄時顯示爲 26)。

一句話定位:它在 DSH Web 界面右下角放一隻小坤桌寵,輪詢 Agent 的 running / idle 狀態,再配合工具執行、審批和出錯事件,切換 9 種動作;任務完成時由宿主進程播放完成音。

倉庫 README 寫明,桌寵以 DSH 動態插件 形式開發並實測(cordis_define),分成 Host 半和 Client 半:

  • Host(src/host.js):讀本地精靈圖和語音、註冊 HTTP 路由、跑狀態機、用系統命令播完成音、提供 pet-state RPC 和 kun_pet_debug 工具
  • Client(src/client.js):注入 shell.overlay,在右下角渲染動畫,支持拖動和點擊

當前版本在 CHANGELOG 中記爲 v5。代碼版本號在 package.json 裏是 1.0.0

核心功能

9 種狀態動畫

素材完全沿用 Codex 桌寵精靈圖契約:一張 1536×1872 的 WebP,網格是 8 列 × 9 行,每格 192×208。動畫靠 CSS background-position 取幀,沒有另外重繪。倉庫裏的 assets/spritesheet.webpdocs/SPRITESHEET-CONTRACT.md 對行列約定寫得很清楚。

宿主狀態機輸出 mode,客戶端映射到圖集行。倉庫 README 給出的對應關係如下:

Agent 工作狀態 桌寵動作 氣泡文案
工作中(有工具在執行) 專注幹活(第 7 行) 努力工作中…
回合中但空閒 思考循環(第 8 行) 思考中…
等待用戶回覆 / 審批 期待等待(第 6 行) 在等你回覆哦~
出錯 難過低落(第 5 行) 嗚…出錯了 (._.)
空閒 呼吸待機(第 0 行) 休息中~ 有事叫我
任務完成 揮手 + 跳躍慶祝(第 3/4 行交替),並播放系統音 完成啦!你幹嘛~哎喲
拖動 跑步(第 1/2 行,方向跟隨) 嗚哇~ 別拽我!
點擊 揮手(約 2.4 秒) 誒嘿~

可以拖着它在窗口裏跑,點擊會揮手打招呼。點擊互動的聲音走瀏覽器 Audio;任務完成的聲音不走瀏覽器,避免點一下響兩次。

用輪詢感知 Agent 狀態

Host 默認每 500ms 輪詢一次 agents 服務,讀取每個 Agent 的 status(running / idle)。工作、思考、等待、出錯、空閒這五種模式,再疊上 tools/executeapproval/requestagent/request-error 事件一起推導。

CHANGELOG v3 / v4 記錄了爲什麼不用純事件監聽:作者用 internal/dispatch 探針統計過 831 次總線事件,其中 agent/statusagent/turn-stopping 這類狀態事件爲 0。動態插件所在總線和這些事件的分發路徑是隔離的,只監聽事件會永遠等不到「任務完成」。輪詢 agents 服務是倉庫裏寫明的跨部署方案。

v5 把慶祝條件放寬爲:任意 Agent 乾淨結束回合(running → idle),此時沒有其他 Agent 在跑,也沒有在等用戶輸入。慶祝進行中不會二次發聲。

完成音走宿主進程

任務完成時,Host 通過 shell 服務執行系統播放命令,默認是 macOS 的 afplay。README 寫明:任何窗口、任何會話完成任務,本機都會響,和瀏覽器是否靜音無關。

Windows / Linux 需要改 playCommand。倉庫給出的對應寫法是:

  • Windows:powershell -c (New-Object Media.SoundPlayer '…').PlaySync()
  • Linux:ffplay -nodisp -autoexit '…'

調試工具 kun_pet_debug

Host 註冊了一個診斷工具 kun_pet_debug,用來查看狀態機內部計數和輪詢健康度,例如當前 mode、慶祝次數、工具執行計數、輪詢次數、最近一次播放錯誤。README 寫明它只用於排查桌寵行爲,不是日常對話工具。

安裝與啓用

社區目錄頁給出的安裝命令是:

dsh plugin add github:liyupi/dsh-kun-like-pet

如需可復現安裝,目錄頁建議固定 commit 哈希。當前 main 最新提交爲 87bb6e1762618dd7727d285ffeeadd86a3799425(2026-08-14):

dsh plugin add github:liyupi/dsh-kun-like-pet#87bb6e1762618dd7727d285ffeeadd86a3799425

指定 profile 時,官方文檔的寫法是 dsh plugin --profile <name> add github:owner/repo

有兩點需要分開看。目錄頁把這條 dsh plugin add 當作通用安裝入口;倉庫 README 則把 已實測 的路徑寫成動態插件:用 cordis_define 注入 Host / Client 代碼,再用 cordis_run 激活。當前 package.json 只有 test 腳本,沒有 prepare,也沒有聲明 dsh 組合包字段。如果按目錄命令裝完後右下角沒有出現桌寵,應按下面的 README 步驟走動態插件安裝。

方式一:動態插件(倉庫推薦,已實測)

  1. 克隆倉庫:
git clone https://github.com/liyupi/dsh-kun-like-pet.git
  1. 修改 src/host.js 頂部的 CONFIG。倉庫裏的默認路徑指向維護者本機(/Users/yupi/.codex/pets/...~/Downloads/你幹嘛哎呦.mp3),換機器後必須改成自己的絕對路徑。README 安裝示例是指向倉庫內素材:
const CONFIG = {
  spritePath: '/你的/路徑/dsh-kun-like-pet/assets/spritesheet.webp',
  voicePath:  '/你的/路徑/dsh-kun-like-pet/assets/voice.mp3',
  // macOS 默認用 afplay;Windows / Linux 請改成對應播放命令
  playCommand: (path) => "afplay '" + path.replace(/'/g, "'\\''") + "'",
}
  1. 生成 cordis_define 載荷:
node scripts/build-kunpet-package.mjs -

輸出是一份 JSON。kind: "new" 表示創建新插件,後續更新用 kind: "existing" 並帶上 pluginId。載荷結構如下:

{
  "plugin": { "kind": "new", "idPrefix": "kunpet" },
  "name": "Kun Like 桌寵",
  "purpose": "在 Web 界面右下角顯示 Kun Like 桌寵,隨 Agent 工作狀態切換動作,任務完成時播放「你幹嘛~哎喲」語音。",
  "code": { "host": "<src/host.js 內容>", "client": "<src/client.js 內容>" }
}
  1. 把這份 JSON 交給 DSH 會話裏的 cordis_define 工具(也可以讓 Agent 代爲執行),再用 cordis_run 激活。Web 界面右下角應出現桌寵。

安裝前可用倉庫自帶腳本做完整性校驗:

node scripts/validate.mjs

它會檢查精靈圖是否爲合法 WebP、尺寸是否爲 1536×1872,以及 Host / Client 是否符合動態插件格式。

方式二:不裝 DSH,只預覽動畫

打開 demo/index.html 即可查看 9 種動畫,並試用拖動和點擊。README 建議起一個靜態服務器,例如:

npx serve .

或:

python3 -m http.server

典型用法

裝好並激活後,不需要額外斜槓命令。桌寵會跟當前會話裏的 Agent 走:

  1. 給 Agent 派一個會調工具的任務(寫文件、跑命令都可以)。右下角應切到「努力工作中…」。
  2. 工具暫時停住、模型還在回合中時,切到「思考中…」。
  3. 出現審批或需要你回覆時,切到「在等你回覆哦~」。
  4. 回合乾淨結束(running → idle,且沒有其他 Agent 在跑、沒有等待輸入),播放「你幹嘛~哎喲」,動畫在揮手和跳躍之間交替,持續約 4.8 秒(celebrateMs 默認 4800)。
  5. 請求出錯時,低落動畫持續約 2.6 秒(failedMs 默認 2600)。

所有可調項都在 src/host.js 頂部的 CONFIG

配置 默認值(README 表格) 說明
spritePath ~/.codex/pets/kun-like/spritesheet.webp 精靈圖路徑;源碼裏目前是維護者本機絕對路徑,安裝時請改
voicePath ~/Downloads/你幹嘛哎呦.mp3 完成音路徑;同樣請改到本地文件
playCommand afplay '…' 系統播放命令
pollMs 500 Agent 狀態輪詢間隔
celebrateMs 4800 慶祝動畫時長
failedMs 2600 失敗動畫時長

改完 CONFIG 後需要重新生成載荷並再次 cordis_define。桌寵行爲異常時,在會話裏調用 kun_pet_debug,看 modepollCountlastPlayError 是否在更新。

適用場景與注意事項

適合已經在用 DSH Web UI、希望給長時間任務加一層狀態提示的人;也適合想看動態插件(Host / Client、shell.overlay、輪詢 agents)怎麼寫的開發者。它不提供新的編碼能力,不會加快任務本身。

使用前注意這些邊界,都來自倉庫 README、CHANGELOG 和源碼:

  1. 動態插件是會話級綁定。 桌寵界面只注入到激活它的那一個會話頁面。v5 起完成音由宿主進程播放,其他窗口或其他會話結束任務時本機也會響,但形象不會出現在所有窗口。README 寫明:若要讓桌寵出現在所有窗口,需要升級成宿主組合級插件包。
  2. 素材路徑和播放命令必須按本機改。 源碼默認是 macOS + afplay。Windows / Linux 不改 playCommand,完成音不會響。精靈圖加載失敗時,Client 會退回顯示一個 emoji 佔位。
  3. 完成音依賴 shell 服務。 Host 用 ctx.get('shell') 執行播放命令;沒有這個服務時,lastPlayError 會記 shell service unavailable
  4. 素材版權和代碼許可證不是一回事。 代碼是 MIT。assets/voice.mp3 是網絡公開的二創梗語音(含公衆人物聲音),版權歸原作者,README 寫明僅供個人學習交流,不要商用;商用需自行換成無版權素材。assets/spritesheet.webp 是粉絲二創像素形象,沿用 Codex 桌寵契約。權利人如需刪除,倉庫請聯繫維護者。
  5. 插件以當前 dsh 進程的權限運行。 目錄頁和官方安裝文檔都提醒:安裝時可能執行代碼,且不在 Agent 沙箱內。安裝前應檢查源代碼倉庫和許可證;需要可復現安裝時,固定 commit 哈希。只對源碼可信的包授權。

小結

dsh-kun-like-pet 把 Agent 的工作、思考、等待、出錯和完成,映射成右下角小坤的 9 種動作,並用宿主進程播放完成音。它是社區趣味插件,不是官方應用商店裏的產品。目錄頁的通用安裝命令是 dsh plugin add github:liyupi/dsh-kun-like-pet;倉庫當前實測路徑是改 CONFIG 後走 cordis_define / cordis_run

目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-kun-like-pet/

GitHub:https://github.com/liyupi/dsh-kun-like-pet

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

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

小夜