前言¶
在 DeepSeek Harness 裏給人格掛「房間、日記、作息」不難,難的是讓模型在不調 API、不花 token 的前提下,真的摸到本機狀態:屏幕裏在幹什麼、播放器標題、電量和內存、房間裏累積的碎片。常見做法是常駐 Python 服務或每次把腳本 stdout 接進對話管道;前者在宿主 job object 下容易被連帶殺掉,後者在受限環境裏管道經常被禁。
dsh-chenchen(維護者 trsing999)把 ai-companion-dsh 裏那排零成本腳本包成六個 DSH 工具。人格層仍由 dsh-world 提供;本插件只負責「身體」,一次模型都不調。
這是什麼¶
- 倉庫:github.com/trsing999/dsh-chenchen
- 分類:客戶端(社區目錄:skillhub.cn/plugins/trsing999/dsh-chenchen)
- 定位:不是聊天機器人插件;按需調用本地 Python,產物寫入房間文件,插件跑完後讀文件回傳。
- 許可:MIT(
package.json版本 0.1.1)
DSH 社區插件獨立於 DeepSeek / 幻方官方應用商店;裝插件前請自行查看源碼與許可證——工具在本機 DSH 進程權限下執行。
六個工具¶
| 工具 | 作用 | 成本 |
|---|---|---|
breath |
讀電量、內存、處理器負載 | 0 |
now_playing |
從窗口標題推斷在播什麼,可聯網查歌詞(不碰賬號) | 0 |
look_screen |
截屏寫入房間(長邊壓到 1280) | 0 |
dream |
用房間碎片隨機拼夢,寫入 昨晚的夢.md |
0 |
room_read |
列目錄或讀房間內文件 | 0 |
stop_me |
停掉後臺 Python 服務(不動 DSH 本體),需 confirm: true |
0 |
下面介紹結果怎麼拿:腳本產出本來就在房間裏(如 呼吸.md、背景音.md、昨晚的夢.md、屏幕.jpg),所以插件不接 stdout 管道,執行完再讀文件——與 README 裏「受限環境裏管道會被禁,文件不會」的設計一致。
插件不拉起常駐服務:ai-companion-dsh 的常駐 .cmd 仍獨立啓動;插件只做按需調用,腳本退出即結束,避免從宿主內守服務被 job object 連帶結束。
安裝與啓用¶
依賴¶
- Python 3.9+(
python在 PATH,或在配置裏指定解釋器) look_screen需要 Pillow:pip install Pillow- 其餘工具僅用標準庫
- Node
>=22.13.0(見package.json);與 DSH 0.2.1-rc.5 標爲 compatible
方式一:本地目錄 link(README 寫明目前唯一已驗證方式)¶
先把倉庫放到本機,再用 junction 掛進 profile 的 node_modules:
New-Item -ItemType Junction -Path "$env:DSH_HOME\profiles\desktop\node_modules\dsh-chenchen" `
-Target "D:\path\to\dsh-chenchen"
在 profile 的 cordis.patch.yml 中插入插件行(dsh.bundle.patch 會帶配置,這一步讓 cordis 識別插件):
- insert:
- id: dsh-chenchen
name: dsh-chenchen
然後在 profile 目錄執行 pnpm install,或把 dsh-chenchen: link:... 寫進 pnpm-lock.yaml(README 提醒漏掉這一步會導致未加載)。完成後重啓 DSH;已打開的會話不會刷新工具表,需新開對話纔看到六個工具。
方式二:npm(尚未發佈)¶
npm install dsh-chenchen
包名已在 npm 預留,發佈後置頂 README 才生效;當前不要指望 dsh plugin add 類一鍵命令——資料未給出該安裝句式。
配置¶
優先級:cordis.patch.yml 裏的 config > ~/.dsh/chenchen.json > 默認值。
| 鍵 | 默認 | 說明 |
|---|---|---|
python |
python |
解釋器;環境變量 CHENCHEN_PYTHON 優先 |
toolsDir |
包內 tools/ |
可指回自建的 ai-companion-dsh/tools |
world |
default |
房間在 ~/.dsh/worlds/<world>/room |
timeoutMs |
60000 |
單腳本超時(5000–600000) |
enableStop |
true |
是否允許 stop_me 真停後臺 |
示例:
{
"python": "D:/python/python.exe",
"world": "default",
"enableStop": true
}
典型用法(行爲層面)¶
模型在對話裏按需調用工具即可,無額外「管道接回」步驟:
- 想量機器 →
breath,讀房間裏的呼吸.md - 想跟主人的歌 →
now_playing,更新背景音.md - 想看桌面 →
look_screen,得到屏幕.jpg - 睡前整理 →
dream,寫入昨晚的夢.md - 翻日記碎片 →
room_read(路徑歸一化,拒絕../越界) - 停伴侶後臺腳本 →
stop_me且confirm: true,防誤觸
room_read 只讀房間;look_screen 僅在調用時截一張,不輪詢。初始化或腳本失敗只記 warn,不拖垮 DSH 啓動。
適用場景與注意¶
適合誰:已在用 dsh-world / ai-companion-dsh 生態、希望把本機感知接進 DSH 工具表、且接受零 token、純本地路線的 Windows 桌面用戶與插件作者。
務必知曉:
- Windows only:腳本經
ctypes調 Win32(截屏、窗口枚舉、電源狀態)。 - 默認房間路徑寫在腳本側;多
world支持尚不完善(README 已知問題)。 - 房間空時
dream會很短;now_playing/dream依賴房間裏已有文件。 - 插件以當前 DSH 進程權限運行;安裝前請讀倉庫源碼與 MIT 許可證。
結尾¶
dsh-chenchen 把陪伴人格的「身體」收成六個不調模型的工具:狀態與截圖進房間,模型需要時再讀。若你正在做 DSH 客戶端類插件,可參考其「文件落地、不接管道、不託管常駐服務」的邊界劃分。
- 目錄頁:https://www.skillhub.cn/plugins/trsing999/dsh-chenchen
- GitHub:https://github.com/trsing999/dsh-chenchen