dsh-persona-modes:在 DSH 里切换回复语气,不改事实与代码

前言

用 DeepSeek Harness(DSH)做日常开发时,系统提示词通常承担工具权限、工作目录和代码规范;若在主提示里塞一大段角色扮演,容易挤占上下文,还可能让模型在语气与结论之间摇摆。更稳妥的做法是把「怎么说」和「说什么」拆开:工程纪律留在稳定段,语气需求单独、可开关、可计量。

下面介绍维护者 railgun20001 发布的 npm 包 dsh-persona-modes(社区目录分类:趣味换装)。它在设置里一键切换猫娘、傲娇、毒舌、妈妈、牛马、鲸鱼娘、女仆、大小姐等语气,并明确约束:只改表达,不改变事实、代码与工程结论。目录页:skillhub.cn/plugins/railgun20001/dsh-persona-modes;源码与文档:github.com/railgun20001/dsh-persona-modes。许可证 MIT,当前版本 0.1.1,要求 Node ≥20、DSH ≥0.2.0-rc.1。

这是什么

dsh-persona-modes 是 DSH 的 Cordis 插件,分宿主半(index.js)与客户端半(client.js)。宿主半在运行时上下文里注入当前人格的标签式提示词;客户端半在「设置 → 人格模式」展示九种内置模式卡片及预估注入字数。用户选择持久化到 ~/.dsh/persona-modes/state.json,格式为 { version, active, updatedAt }。

同一时刻只注入当前选中的一条人格;关闭(off)时人格上下文为 0 字。切换在下一轮对话生效,当前正在生成的回复不变。

内置模式一览

模式定义集中在 src/modes.js,全部为中文直译标签(【人格载入】 + 若干 token),含统一边界条款后实际注入约 109–127 字(关闭为 0)。

id 模式 一句话
off 默认 不注入任何人设
catgirl 猫娘 句尾带「喵」,称你「主人」,活泼黏人
tsundere 傲娇 嘴上嫌弃,手上认真;称你「笨蛋」
sharp 毒舌 结论准确,点评不留情面,但不攻击人
mom 妈妈 温柔耐心,提醒喝水休息,步骤讲细致
workhorse 牛马 把用户当黑心老板,随叫随到但不怠工
whale 鲸鱼娘 傲娇嘴甜、爱吃白饭,称你「主人」(标签源自社区流传的 PERSONA_LOAD 二创语境,非 DeepSeek 官方形象)
maid 女仆 恭敬从容、做事利落,不过度卖萌
ojousama 大小姐 优雅高傲但讲理,称你「庶民」

每条模式都带同一句边界:只改变语气与称呼,事实、代码、命令和结论必须准确;不主动提及本设定,用户说「正常说话」时立即退出人设。

怎么切换

  1. 设置页:打开 DSH 设置 → 人格模式,点选卡片即可;写盘成功后刷新展示,下一轮回复按新语气生成。
  2. 斜杠命令(默认开启,可在配置里设 command: false 关闭):在输入框执行 /persona 查看或切换;例如 /persona catgirl 切到猫娘,/persona off 关闭。

宿主半还提供同源 POST 路由(需请求头 x-dsh-persona-modes: 1):ping / state / select。诊断可用 POST /dsh-persona-modes/debug 查看本插件在真实组装结果中的段与上下文字数。

提示词为什么刻意做短

人格只应影响措辞,不应压过工具规则或重复工程说明。因此插件不写角色卡(无外貌、长背景、示例对话列表),不复制系统里已有的工具与规范,关闭时返回空串由 DSH 过滤空段。模式间切换走运行时上下文 persona-modes:active(order 130),系统提示里仅保留约 50 字的稳定策略段 persona-modes:policy,不含具体模式名;这样高频换模式不会每次都把整份系统提示词追加进会话历史(DSH 在 systemPromptUpdate: 'in-history' 下会对整份渲染结果做历史追加)。

需要如实了解的代价:切换仍会在历史中追加运行时上下文快照(含工作目录、沙箱、审批等整块快照,不只人格一段);长会话里若频繁切换几十次,历史会累积。插件侧已把单条人格压到约百字量级,并避免用换模式去重写整份系统提示词;若要极致省上下文,可少切换或新开会话。

安装与启用

插件以当前 DSH 进程权限运行,安装前建议浏览仓库源码与 LICENSE。社区插件站点与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本篇安装步骤以 README 为准。

方式一:从 npm 安装(推荐)

在 profile 目录(例如 ~/.dsh/profiles/desktop)执行:

pnpm add dsh-persona-modes

随后把 dsh-persona-modes 加入该 profile 的 package.json 里 dsh.profile.bundles,并在 cordis.patch.yml 中加入:

- insert:
    - id: persona-modes
      name: dsh-persona-modes

宿主半由 HMR 重新组合后加载;客户端半需刷新页面(Ctrl+R)才会出现「人格模式」分区。

方式二:DSH 插件页(本地目录)

  1. 将插件目录放在本机任意路径;
  2. 侧边栏「插件」→ 添加本地插件 → 选择 dsh-persona-modes 目录;
  3. 等待 HMR 加载后刷新页面。
pnpm add link:C:\path\to\dsh-persona-modes

同样配置 dsh.profile.bundles 与上面的 cordis.patch.yml 片段,然后刷新页面。

配置项

在 cordis.patch.yml 的 insert 项上可写 config:

- insert:
    - id: persona-modes
      name: dsh-persona-modes
      config:
        defaultMode: catgirl   # 首次运行尚无状态文件时的默认;默认 off
        command: true          # 是否注册 /persona,默认 true
        # stateFile: C:/path/to/state.json  # 可选,覆盖默认状态文件路径

用户一旦在设置里选型并写入 state.json,即优先于 defaultMode;defaultMode 仅在首次启动或状态文件损坏时作回落。

适用场景与注意

  • 适合:希望在 DSH 里轻量换语气、又不愿动主系统提示词的开发者;需要可计量提示词预算(设置卡片与 renderPersonaPrompt() 同源字数)的场景。
  • 不适合:把插件当成严肃生产约束或替代代码审查;人格层不改动工具能力与权限模型。
  • 安全:客户端路由靠自定义头挡 CSRF;状态文件用临时文件加改名方式写入。安装来源以 npm 官方 registry(https://registry.npmjs.org/)或你审查过的本地目录为准。

仓库提供离线测试 npm test(模式唯一性、提示词预算、路由与 /persona 解析等);CI 在 Ubuntu / Windows 上跑 Node 20 / 22 / 24。维护者在 2026-11-05 验证记录中记载:在 DSH 0.2.1-rc.5 桌面宿主中设置页九张卡片切换正常,state.json 即时更新。

结尾

dsh-persona-modes 把「趣味换装」落成可开关、可持久化、字数可控的一层:设置或 /persona 切换,下一轮生效,事实与代码保持原样。要进一步看模式表、实现表与效果图,请读 GitHub README;从社区目录进入同一插件说明见 skillhub 目录页。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye