dsh-chenchen:把陪伴人格的「身體層」接進 DSH

前言

在 DeepSeek Harness 裏給人格掛「房間、日記、作息」不難,難的是讓模型在不調 API、不花 token 的前提下,真的摸到本機狀態:屏幕裏在幹什麼、播放器標題、電量和內存、房間裏累積的碎片。常見做法是常駐 Python 服務或每次把腳本 stdout 接進對話管道;前者在宿主 job object 下容易被連帶殺掉,後者在受限環境裏管道經常被禁。

dsh-chenchen(維護者 trsing999)把 ai-companion-dsh 裏那排零成本腳本包成六個 DSH 工具。人格層仍由 dsh-world 提供;本插件只負責「身體」,一次模型都不調。

這是什麼

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 連帶結束。

安裝與啓用

依賴

  1. Python 3.9+(python 在 PATH,或在配置裏指定解釋器)
  2. look_screen 需要 Pillow:pip install Pillow
  3. 其餘工具僅用標準庫
  4. 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
}

典型用法(行爲層面)

模型在對話裏按需調用工具即可,無額外「管道接回」步驟:

  1. 想量機器 → breath,讀房間裏的 呼吸.md
  2. 想跟主人的歌 → now_playing,更新 背景音.md
  3. 想看桌面 → look_screen,得到 屏幕.jpg
  4. 睡前整理 → dream,寫入 昨晚的夢.md
  5. 翻日記碎片 → room_read(路徑歸一化,拒絕 ../ 越界)
  6. 停伴侶後臺腳本 → 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
羽毛球分组比赛记分
小程序二维码

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

小夜