前言¶
用 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-stateRPC 和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.webp 和 docs/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/execute、approval/request、agent/request-error 事件一起推導。
CHANGELOG v3 / v4 記錄了爲什麼不用純事件監聽:作者用 internal/dispatch 探針統計過 831 次總線事件,其中 agent/status、agent/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 步驟走動態插件安裝。
方式一:動態插件(倉庫推薦,已實測)¶
- 克隆倉庫:
git clone https://github.com/liyupi/dsh-kun-like-pet.git
- 修改
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, "'\\''") + "'",
}
- 生成
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 內容>" }
}
- 把這份 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 走:
- 給 Agent 派一個會調工具的任務(寫文件、跑命令都可以)。右下角應切到「努力工作中…」。
- 工具暫時停住、模型還在回合中時,切到「思考中…」。
- 出現審批或需要你回覆時,切到「在等你回覆哦~」。
- 回合乾淨結束(running → idle,且沒有其他 Agent 在跑、沒有等待輸入),播放「你幹嘛~哎喲」,動畫在揮手和跳躍之間交替,持續約 4.8 秒(
celebrateMs默認4800)。 - 請求出錯時,低落動畫持續約 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,看 mode、pollCount、lastPlayError 是否在更新。
適用場景與注意事項¶
適合已經在用 DSH Web UI、希望給長時間任務加一層狀態提示的人;也適合想看動態插件(Host / Client、shell.overlay、輪詢 agents)怎麼寫的開發者。它不提供新的編碼能力,不會加快任務本身。
使用前注意這些邊界,都來自倉庫 README、CHANGELOG 和源碼:
- 動態插件是會話級綁定。 桌寵界面只注入到激活它的那一個會話頁面。v5 起完成音由宿主進程播放,其他窗口或其他會話結束任務時本機也會響,但形象不會出現在所有窗口。README 寫明:若要讓桌寵出現在所有窗口,需要升級成宿主組合級插件包。
- 素材路徑和播放命令必須按本機改。 源碼默認是 macOS +
afplay。Windows / Linux 不改playCommand,完成音不會響。精靈圖加載失敗時,Client 會退回顯示一個 emoji 佔位。 - 完成音依賴
shell服務。 Host 用ctx.get('shell')執行播放命令;沒有這個服務時,lastPlayError會記shell service unavailable。 - 素材版權和代碼許可證不是一回事。 代碼是 MIT。
assets/voice.mp3是網絡公開的二創梗語音(含公衆人物聲音),版權歸原作者,README 寫明僅供個人學習交流,不要商用;商用需自行換成無版權素材。assets/spritesheet.webp是粉絲二創像素形象,沿用 Codex 桌寵契約。權利人如需刪除,倉庫請聯繫維護者。 - 插件以當前 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