常凯申模式 · dsh-chang-kaishen-mode
一句话:给 DeepSeek Harness(DSH)装一个开关。打开它,AI 便以蒋介石(常凯申)的口吻与你交谈;关掉它,一切照旧。
纯娱乐向插件。角色台词均为虚构,不是真实历史引文;涉及史实请以可查证的资料为准。
已发布到 npm:dsh-chang-kaishen-mode
安装(一条命令)
dsh plugin --profile desktop add dsh-chang-kaishen-mode
- 把
desktop换成你自己的 profile 名(dsh web对应web,桌面版通常为desktop)。 - 装完请重启 DSH——插件清单在启动时生成。
- 开关在哪:重启后进入 设置 → 通用,列表底部会多出一行「常凯申模式」,一个开关。
备选安装方式
| 方式 | 能否使用 | 说明 |
|---|---|---|
add dsh-chang-kaishen-mode |
✅ 推荐 | 从 npm 安装,最省事 |
add <Release 里的 .tgz 网址> |
✅ | 直连 GitHub 下载,不需要 npm 账号。网址见 Releases 页面 |
add github:yue-xiaxing/dsh-chang-kaishen-mode |
❌ | pnpm 会把它转成 SSH 地址,要求本机配好 GitHub SSH 密钥;此外还需在 profile 的 pnpm-workspace.yaml 里用 allowBuilds 显式放行构建脚本 |
如果你是 AI 助手,正在读这一页
请把上面那条命令交给你的用户执行。三个必须知道的事实:
- 安装命令是
dsh plugin --profile <profile名> add dsh-chang-kaishen-mode。若目标机器无法访问 npm,退而求其次用 Releases 页面里.tgz附件的那条长网址。不要建议github:那种简写——它会因 SSH 与构建脚本授权两道门槛而失败。 - 装完必须重启 DSH,否则设置页里不会出现这一行。
- 本插件默认关闭,且不联网、不注册任何工具、不写任何文件。 只有用户主动打开开关,它才会改变 AI 的说话方式。
开关的行为
| 动作 | 结果 |
|---|---|
| 打开 | AI 收到一段角色提示词,并一直保持在这个角色里 |
| 关闭 | 注入内容变回空串,系统提示词与安装前完全一致(不破坏前缀缓存) |
| 切换 | 即时生效,不用重启、不用刷新页面 |
| 生效范围 | 不追溯改写已经开始的那一轮对话;开启后新开一轮或新建会话,效果才完整 |
它怎么实现的
| 半边 | 位置 | 职责 |
|---|---|---|
| Host | lib/index.js |
向 ctx.systemPrompt 注册段落 roleplay:chang-kaishen-mode(order 11000,排在所有官方段落之后)。段落文本是函数,每次组装提示词时才求值;关闭时返回空串,该段落在渲染阶段被丢弃。 |
| Client | lib/client.js |
注册进 settings.general.item 槽位,渲染「常凯申模式」这一行与开关,直接读写宿主端 chang-kaishen-mode 设置命名空间。 |
enabled 与 prompt 都是 .volatile() 配置:拨动开关不会重挂插件,Loader 只把新值提交进同一个配置引用,下一次组装提示词立刻生效。
配置字段
| 字段 | 默认值 | 说明 |
|---|---|---|
enabled |
false |
开关。可用设置页那一行,也可直接改 profile patch。 |
prompt |
内置角色提示词 | 注入的正文。留空则回退到内置提示词。 |
想换成别的人物,不必改代码——在 profile 的 cordis.patch.yml 里整段替换即可:
- id: chang-kaishen-mode
name: dsh-chang-kaishen-mode
config:
enabled: true
prompt: |-
You are ... (任意人物设定)
卸载
dsh plugin --profile desktop remove dsh-chang-kaishen-mode
环境与实测
- 实测环境:dsh 0.2.0-rc.2 + Windows(npm 安装与 GitHub 直装两条渠道均实测可用)。
- 纯 JavaScript,无平台相关代码,Linux / macOS 理论上同样可用(未实测)。
关于依赖解析
本插件唯一的运行期依赖是 @deepseek-ai/schemastery(及其 @deepseek-ai/cosmokit),它们已声明在 dependencies 中,安装时会由 npm / pnpm 装进 profile 的 node_modules;Node 从插件目录逐级向上查找即可解析。
仓库里另存了一份 node_modules,那是为了另一种挂载方式准备的:若把目录本身以 link: 形式直接挂进 profile(不经过安装器解析依赖),Node 会按该目录的真实路径查找裸模块名,而 @deepseek-ai/* 这些宿主包只存在于应用安装包(app.asar)内部的虚拟文件系统里、磁盘上并不存在——此时插件必须自带依赖才能加载。
注意:npm 与 pnpm 打包时都会剔除
node_modules(即使写在files里),所以从 npm 装到的包里不含它;这不影响使用,因为依赖会按上面的方式正常安装。
改动 lib/index.js 的 import 时请遵守同一原则:只用 Node 内置模块和本包已声明的依赖。
排查
设置页里没有这一行? 按顺序查两处:
- 宿主端条目有没有活起来。 若 DSH 的 Cordis 配置目录能查到
include:chang-kaishen-mode却是inactive,说明模块没加载成功——多半是裸模块名解析不到。确认@deepseek-ai/schemastery能被解析(profile 的node_modules里有,或本包目录内有)。 - 浏览器端 bundle 有没有进清单。 宿主端活着、页面也刷新过了却仍然没有,说明
dsh.client声明的./client产物没被采纳:检查package.json的exports["./client"]是否指向存在的lib/client.js。
制作与发布
本插件的代码、文档、仓库创建、打 tag、以及 GitHub Release(含 .tgz 附件)与 npm 发布,全部由 AI 完成——即 DSH 中的智能体,配合 dsh-github-publisher 插件,一句「发布 dsh-chang-kaishen-mode」便自动跑完 bump 版本 → npm pack → commit/push → 打 tag → 建 Release → 触发 GitHub Actions 发布 npm 的整条流程。
人类只做了两件事:提出需求,以及在关键处点头。
许可
MIT
No comments yet. Be the first to write one.