前言¶
在 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