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
羽毛球分组比赛记分
小程序二维码

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

小夜