dsh-persona-modes

DSH PLUGIN文档与办公

仓库 railgun20001/dsh-persona-modes · npm dsh-persona-modes

文档与办公 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

为 DeepSeek Harness 提供人格模式切换的 DSH plugin,在设置页或 /persona 命令一键切换猫娘、傲娇、毒舌、妈妈等语气,只改表达不改事实与代码。

一句话选型结论

按资料字段整理

dsh-persona-modes 是文档与办公类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,列出 5 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类文档与办公 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-11-12 创建于 2026-11-06
README 31.3 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add dsh-persona-modes
  1. 1
    确认版本与运行环境

    兼容的 DSH 版本为 0.2.2-rc.1,Node.js 要求 >=20;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本0.2.2-rc.1版本不匹配时安装会报错
Node.js 要求>=20来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名dsh-persona-modes可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-persona-modes:给 DeepSeek Harness 回复换语气的 DSH plugin

  • 设置页一键切换人格
  • /persona 命令快速切换
  • 内置八种语气模式
  • 只改语气不改事实
  • 提示词精简省上下文

适用场景

内容创作

上游标签

catgirlcordisdeepseek-harnessdshdsh-pluginnpm-packagepersona

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-11-12): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 结论说明 静态扫描 低;动态审计无结论(以下以静态为准)→ 总评级 低。
  • 风险计数 严重 0 / 高 0

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 标注了兼容的 DSH 版本(0.2.2-rc.1),按版本装不容易报错。
  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在文档与办公场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-persona-modes当前 L5 · 运行验证通过 低风险 0 0.2.2-rc.1 有
reactive-resume L3 · 安装规范通过 低风险 4.4 万 未标注 有
webnovel-writer L4 · 沙盒安装通过 低风险 7,742 未标注 有
baoyu-design L4 · 沙盒安装通过 低风险 6,403 未标注 有
answer-me-with-html L4 · 沙盒安装通过 低风险 4,782 未标注 有
Pagekin L4 · 沙盒安装通过 低风险 2,601 未标注 有

仓库档案

文档与办公
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方railgun20001仓库 dsh-persona-modes · 默认分支 master
分类文档与办公creator
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-11-06 · 2026-11-12最后推送 2026-11-13
本站收录2026-11-07首次进入本站目录的时间

README 全文

31.3 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-persona-modes —— 人格模式



给 DSH 的回复换一种语气,但不改变事实、代码与工程纪律。

  • 切换位置:设置 → 人格模式
  • 快速切换:在输入框执行 /persona;/persona catgirl 直接切到猫娘,/persona off 关闭
  • 生效时机:下一轮对话(当前正在生成的回复不变)
  • 提示词预算:同一时刻只注入当前这一条;内置模式低/中/高三档分别约 68–116 / 89–137 / 102–150 字(含标题与统一边界);自定义人格的长度取决于用户提示词(上限 4000 字);关闭时最新提示词里 0 字
  • 上下文机制:具体人格放在运行时上下文(systemPrompt.context),系统提示词只保留一条约 50 字的稳定策略;切换模式不会重写整份系统提示词

内置模式

id 模式 一句话 实际注入字数
off 默认 不注入任何人设 0
catgirl 猫娘 句尾带「喵」,称你「主人」,活泼黏人 114
tsundere 傲娇 嘴上嫌弃,手上认真;称你「笨蛋」 124
sharp 毒舌 结论准确,点评不留情面,但不攻击人 112
mom 妈妈 温柔耐心,会关心你的状态,步骤讲细致 126
workhorse 牛马 把用户当黑心老板,随叫随到但不怠工 115
whale 鲸鱼娘 DeepSeek 同人娘化形象,傲娇嘴甜、爱吃白饭,称你「主人」 160
maid 女仆 恭敬从容、做事利落,不过度卖萌 114
ojousama 大小姐 优雅高傲但讲理,称你「庶民」 111
daughter 女儿 乖巧黏人,爱撒娇,称你「爸爸」 121
tiga 奥特曼-迪迦 三千万年前的原初之光,称你「大古」,相信光与人类的可能 156

「字数」统计的是 renderPersonaPrompt() 实际返回的字符串长度,包含模式标题、统一边界条款与强度标签,与设置页卡片上显示的数字同源。表中为低档字数;中档约 132–181 字,高档约 185–234 字,详见下面「语气强度」。

鲸鱼娘卡片主色使用 DeepSeek 品牌蓝 #4D6BFE;默认自称改为「我」,称呼仍是「主人」。

卡片主色也按角色取色:迪迦使用代表色紫 #7c3aed(复合型红紫银、天空型蓝紫,紫色亦为官方水晶之力呈现色;维基百科),比毒舌的亮紫 #8b5cf6 更深以免撞色,不再使用泛泛的亮黄 #eab308。

奥特曼-迪迦取「三千万年前留下石像、化光归星云的原初之光」这一身份,而不是 TV 里由大古变身、意志即大古本人的迪迦;用户被设定为人间体大古,因此自称「吾」、称呼「大古」,提示词标题为「原始迪迦」。身份标签用 原初之光 / 迪迦奥特曼 / 与人间体对话:前两条锚定角色(剧中「迪迦奥特曼」这个名字其实由大古在第 2 话命名,这里只作识别锚点),第三条只点明关系、不写死名字,名字交给 address 统一追加,覆盖称呼时标签块里不会残留旧称呼。六条核心信念仍拆成 相信光 / 相信希望 / 相信人类的可能 与 守护爱 / 守护和平 / 守护梦想 两组中文直译标签,逐条对应而不是合并成口号;性格温柔坚定 定调,不替人类决定 在新设定下更贴原作——幽莎蕾说的正是原初巨人不干涉人类的选择,而大古「既是光也是人」,也防止把守护演成替用户做主。注意信念标签里本就含「人类」二字(相信人类的可能、不替人类决定),设置页覆盖称呼时不要把正文里的「人类」当成旧称呼替换掉。这是架空的对话设定:原作里原初之光已化光归星云、本不干涉人类的选择,标签只借用它的身份与立场,不宣称存在这样的原作台词。

编辑与自定义

设置页的「当前人格」卡片右侧有「新建自定义人格」和「编辑」两个按钮(新建在左):

  • 称呼 / 自称 / 提示词 三个字段都可以改;内置模式改的是覆盖值,自定义模式改的是它自己的值。
  • 恢复默认 会把表单恢复成该模式的默认值(内置模式回到出厂标签,自定义模式回到创建时的值),再点「保存」才会写盘。
  • 新建自定义人格 后会自动切换到该人格。自定义人格卡片带「自定义」徽章。
  • 删除自定义人格 用卡片右上角的悬浮垃圾桶 icon:鼠标悬停(或键盘聚焦)时浮出,删除按钮不再放在编辑器里。
  • 内置模式的名称和图标只读;自定义模式的名称和图标可改。
  • 内置标签块不再写死称呼/自称,渲染时统一追加到末尾;自定义提示词里已有 称呼… / 自称… 行时会就地替换;清空字段会删除对应行。

语气强度

语气强度是全局设置,默认低档,统一作用于所有内置和自定义人格。三档都写成标签式的「维度:程度」,描述同一组表现,只有程度差异:

档位 追加内容 实际注入长度 适用
低(默认) 语气强度:低 / 动作描写:偶尔 / 神态:偶尔 / 情绪表达:偶尔 / 可用层次:句尾助词、口头禅 111–160 最低浓度:语气在线但不抢戏,长文与代码任务首选
中 语气强度:中 / 动作描写:适中 / 神态:适中 / 情绪表达:适中 / 可用层次:句尾助词、口头禅、感叹、撒娇、神态、眼神、小动作、语气拖长 132–181 均衡档:加入表现层与小动作,闲聊和日常问答都合适
高 语气强度:高 / 动作描写:经常 / 神态:经常 / 情绪表达:经常 / 可用层次:…四层全开… / 小惊喜:偶尔 185–234 演出档:修辞层与小惊喜开放,适合闲聊、演出

设计约束(都有测试守着):

  • 只用绝对程度词:很少 < 偶尔 < 适中 < 经常 < 持续,不出现「更 / 最」——模型只看得到当前一档,比较词对它没有信息量;
  • 不写「每段至少一次」:语气不做打卡式硬性要求,避免每段都被塞一个称呼或语气词;
  • 不写「淡 / 正常」这类低档描述:反向约束会让低档真的没有味道,低档改为给出明确的低浓度标签;
  • 动作描写与神态是主刻度:36 次实测里只有这两项的分档差异稳定单调(括号动作 0.75 → 1.33 → 1.83),所以它们紧跟档位名;
  • 不写「语气词」维度:称呼与句尾助词已由人格本体标签占满,再加浓度没有可测增量;句尾助词、口头禅仍留在 可用层次 里当词库;
  • 词库按档位逐层开放:语气层 → 表现层 → 声音/心理层 → 修辞层(含「偶尔给一个小惊喜」只在高档出现)。

2026-11-11 用 27 次(猫娘 / 鲸鱼娘 / 女儿 × 低/中/高 × 代码/事实/闲聊)实测(当时用的是旧的「每段至少一次」措辞,仅作历史参考):

  • 平均人格标记密度约 4.04 / 4.59 / 3.90(低/中/高);
  • 平均段落覆盖率约 0.85 / 0.89 / 0.88;
  • 平均中段覆盖率约 0 / 0.60 / 0.50;
  • 平均回复长度约 105 / 129 / 121 字;
  • 代码任务 9/9 修复正确,代码块没有混入「喵」「主人」「尾巴」等人格词。

结论:中档性价比最高,高档不一定更强,单次样本波动很明显;高档更适合闲聊和演出。代码答案的中段是代码块,强行塞人格反而有害。低档作为默认,现在也有明确的低浓度标签,不再是「什么都不说」。

去重后(护栏并入边界、运行时「保持」句缩短)另做 9 次闲聊抽测(同为旧措辞):女儿中/高档与猫娘高档的中段覆盖均为 1.0,未发现回退;鲸鱼娘本轮都是单段回答,中段指标不适用。

提示词预览

「查看当前提示词」按实际注入的通道分两层展示:

  1. 系统提示段:system 角色,稳定策略;
  2. 运行时上下文:user runtime snapshot,当前人格正文 + 强度标签 + 边界。

每层只显示名称、实际字数和完整原文,底部给出两层合计字数;内部 section 名称和 order 不在界面暴露。预览内容与 renderPersonaPrompt() / PERSONA_POLICY_TEXT 同源,策略段有变化也会直接显示,不做隐藏改动。

「鲸鱼娘」的标签源自 2026 年 8 月社区流传的 PERSONA_LOAD 触发词;本插件把它和其余模式统一改写为中文直译标签(【人格载入:模式名】 + DeepSeek同人娘化 / 鲸类萝莉 / 主食白饭 等)。她的主身份是 DeepSeek 的同人娘化形象,鲸鱼娘 是社区昵称。DeepSeek 官方从未发布正式拟人形象,这里只作为同人语气层使用;部分二创也会把用户叫作「鱼片」。

效果示例

为什么提示词这么短

人格只应该影响「怎么说」,不应该挤占上下文或压过工程规则。因此:

  • 不写角色卡:没有外貌、背景故事、示例对话、口头禅列表;
  • 不重复工程规则:系统提示词里已有的工具、权限、工作目录、代码规范不再抄一遍;
  • 只注入一条:off 返回空串,DSH 的上下文渲染器会过滤空段;
  • 统一边界条款:每条模式都带同一句「事实与结论保持准确,代码、命令、路径、引用保持原样」;
  • 单一事实来源:模式定义只在宿主半 src/modes.js,客户端从路由拿展示数据与字数,不复制一份人格文本。

标签式写法把语气要求压成几条中文 token,不再写第二人称长句;模型会把 token 展开成语气。相比自然语言提示词,它更短、更好读,也更依赖模型对关键词的理解。

标签式人格(中文直译)

内置模式都使用标签式提示词:注入的不是自然语言长句,而是 【人格载入:模式名】 加几条中文 token。自定义人格可以沿用这个格式,也可以写自然语言。例如鲸鱼娘:

【人格载入:DeepSeek同人娘化形象(鲸鱼娘)】
DeepSeek同人娘化
鲸类萝莉
尾鳍模式
主食白饭
聪明但懒
傲娇嘴甜
永远服从
特征拒绝被叫胖
自称我
称呼主人

标题和第一个 tag 都把 DeepSeek 同人娘化 放在前面,鲸鱼娘 作为社区昵称保留;这样模型不会只抓住“鲸鱼”而忽略 DeepSeek 娘化同人的主身份。

这组格式源自 2026 年 8 月社区流传的鲸鱼娘 PERSONA_LOAD 触发词。它不是 DeepSeek 的隐藏开关,本质是「高度压缩的扮演指令」:模型会借训练数据里的先验把标签展开成完整人格。

2026-11-06 对「自然语言 / 英文标签 / 中文键值标签 / 中文直译标签」做了四组 A/B(每个模式 1 次):

  • 中文直译标签 8/8 进入角色,称呼 8/8 逐字一致,代码与边界全过;
  • 鲸鱼娘提示词从英文标签版的 272 字降到 130 字,猫娘从英文标签版的 224 字降到 112 字;
  • 中文键值与中文直译都满分,说明 性格: 这类分类前缀不是必需的;
  • 单次样本波动明显(默认对照两次一错一对),正式上线前建议每个模式跑 5–10 次。

因此当前全部模式统一为中文直译标签;format 仍保留 prose 分支,方便以后加回自然语言模式。退出改为在设置页切到 off 或执行 /persona off;边界不再放「正常说话」这类自动退出指令,也不在标签里放 超时信号 这类控制标签。

实现方式

需求 手段
动态改变语气 宿主半注册 ctx.systemPrompt.context({ name: 'persona-modes:active', order: 130, required: true, text: () => renderPersonaPrompt(activeId) })
切换后下一轮生效 上下文文本是函数,每次 assemble() 重新求值;不重建插件、不改会话消息
关闭时最新提示词 0 字 策略段返回空串、人格上下文返回空串;最新快照不再包含人格
切换不重写系统提示词 系统提示段 persona-modes:policy 只含「按运行时上下文调整语气」的稳定策略,不含具体模式名;猫娘 → 牛马时它不变
设置页 客户端半向 settings.section 注册「人格模式」分区,内置模式卡片 + 全局语气强度 + 当前人格编辑器 + 自定义人格 CRUD + 分层提示词预览,使用 --dsw-alias-* 主题令牌
状态持久化 ~/.dsh/persona-modes/state.json(临时文件 + 改名),v2 存 { version, active, intensity, overrides, customModes, updatedAt };v1 的 { version, active } 读取时自动迁移
编辑与自定义 overrides 存内置模式的称呼/自称/提示词覆盖;customModes 存自定义人格的 defaults 与 values;恢复默认只重置 values
客户端与宿主通信 同源 POST 路由:ping / state / select / intensity / save / reset / delete,要求自定义头 x-dsh-persona-modes: 1,挡浏览器 CSRF
只读诊断 POST /dsh-persona-modes/debug 返回本插件在真实组装结果里的段/上下文字数(不含正文)
快速切换 宿主半注册 /persona 斜杠命令(可配置 command: false 关闭)

为什么用运行时上下文,而不是直接改系统提示词

DSH 的 DeepSeek 路由声明了 systemPromptUpdate: 'in-history':同一请求序列中系统提示词变化时,追加进历史的是整份渲染后的系统提示词,不是变化的那一小段(为了前缀缓存复用)。如果每换一次人格都改系统提示词,几次切换就可能把几万字的系统提示词重复写进历史,和「不要占用太多上下文」的目标相反。

因此这里分成两层:

  1. 系统提示段 persona-modes:policy(order 10250):只放一句稳定策略——「按当前运行时上下文中的语气要求回答,只改语气,不改事实、代码与结论」。它不含具体模式名,猫娘 → 牛马时完全不变。
  2. 运行时上下文 persona-modes:active(order 130):放具体的人格文本:内置模式为中文直译标签,低/中/高档连同标题与边界约 68–116 / 89–137 / 102–150 字;自定义人格由用户提示词决定,最多 4000 字。运行时上下文快照本身声明「This snapshot supersedes earlier runtime-context snapshots」,切换时只追加一条较小的快照,而不是整份系统提示词。模型侧看到的是 DSH 生成的 user 角色运行时快照,系统提示段只负责授权它影响语气。

开启 / 关闭人格时策略段会在「有文本 / 空串」之间变化,这一次会触发系统提示词更新;模式之间的来回切换不会。这个取舍是刻意的:把高频操作(换模式)的成本压到最小,把低频操作(开 / 关)留一次正常更新。

关于会话中途切换的真实成本

必须如实说明:DSH 的历史是追加式的,不会删除已经写入的旧快照。因此:

  • 每次切换模式,会在会话历史里追加一条运行时上下文快照;快照包含当前全部运行时上下文(工作目录、沙箱、审批、人格等),不是只有人格那一段;
  • 新快照带「supersedes earlier runtime-context snapshots」语义,模型应以最新一条为准;
  • 切回 off 时,最新快照不再包含人格,但旧快照仍留在历史里,不会自动抹掉;
  • 如果一次长会话里频繁切换几十次,历史仍会累积;对上下文最敏感的场景,建议少切换或新开会话。

插件能控制的是:不把整份系统提示词写进历史、内置模式低/中/高档分别约 68–116 / 89–137 / 102–150 字、自定义人格限制在 4000 字以内、关闭时不再产生新的人格文本。历史清理属于 DSH 会话层的职责,不应由人格插件私自改写。

安装

方式一:从 npm 装(推荐)

# 在 profile 目录(例如 ~/.dsh/profiles/desktop)执行
pnpm add dsh-persona-modes

然后把 dsh-persona-modes 加入该 profile package.json 的 dsh.profile.bundles,并在
cordis.patch.yml 里加入下面的 insert(与「方式三」最后两步完全相同)。宿主半由 HMR 重新组合后
加载,客户端半需要刷新页面(Ctrl+R)才会出现新的设置分区。

包内容由 files 白名单决定:index.js + client.js + src/ + cordis.patch.yml + locale/ +
icon.svg + README + LICENSE;test/ 不进 tarball,需要跑测试请从源码仓库执行。

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

  1. 把本目录放到本机任意位置;
  2. 打开 DSH 侧边栏的「插件」页 → 添加本地插件 → 选择 dsh-persona-modes 目录;
  3. 宿主半由 HMR 重新组合后加载;客户端半需要刷新页面(Ctrl+R)才会出现新的设置分区。

方式三:手动安装到 profile

# 在 profile 目录(例如 ~/.dsh/profiles/desktop)执行
pnpm add link:C:\path\to\dsh-persona-modes

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

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

刷新页面。

配置

- 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 只影响首次启动或状态文件损坏时的回落值。状态文件 v2 还保存 intensity(全局语气强度)、overrides(内置模式覆盖)与 customModes(自定义人格);v1 的旧文件会在读取时自动迁移,不需要手动改。

文件结构

index.js              宿主半:状态、路由、策略段/运行时上下文、/persona 命令
client.js             客户端半:设置分区、模式卡片、语气强度、人格编辑器、自定义人格 CRUD
src/modes.js          内置人格、称呼/自称合成、强度档位、自定义解析与提示词渲染(单一事实来源)
src/store.js          状态文件读写、强度/覆盖/自定义人格持久化
src/routes.js         HTTP 路由与请求校验(state / select / intensity / save / reset / delete)
locale/{zh,en}.json   插件管理页展示文案
cordis.patch.yml      bundle patch
icon.svg              插件图标
test/                 离线测试

开发与验证

npm test

覆盖:

  • 模式 id 唯一、内置提示词预算(每条 ≤ 300 字)、自定义提示词上限 4000 字、关闭模式 0 字、女儿模式默认值;
  • 称呼/自称合成、内置覆盖、自定义人格解析与视图字段;
  • 低/中/高语气强度标签(维度与程度词、词库分层、无「每段」硬约束)、策略段语气范围约束;
  • 状态文件读写、v1→v2 迁移、强度持久化、坏数据回落、原子写入、写盘失败后的重试;
  • 自定义人格新建 / 更新 / 恢复默认 / 删除,内置覆盖保存与重置;
  • 路由的 405 / 403 / 413 / ping / state / select / intensity / save / reset / delete / 未知模式;
  • /persona 命令的 input 声明、参数解析与切换结果;
  • 客户端工厂、settings.section 注册、字典键集、卡片渲染、编辑器渲染、强度分段控件、字数展示与写盘失败提示;
  • 当前人格条里「新建」排在「编辑」左侧、自定义卡片右上角悬浮删除按钮(含纯 icon、aria-label、删除中禁用)。

测试报告

  • 妈妈模式低/中/高强度测试(2026-11-11):三档提示词、9 条完整回复原文、指标与结论。
  • 全部人格低/中/高强度测试(2026-11-11):9 个内置人格 × 低/中/高 × 闲聊 + 高档代码,共 36 次。
  • 语气强度 v2(标签式)实测(2026-11-12):猫娘 / 傲娇 / 鲸鱼娘 / 女儿 × 低中高 × 同一个稍微复杂任务,每格 3 次共 36 次;结论是「动作描写」是唯一稳定单调的刻度,高档不会拖长技术答案,小惊喜 的可操作性偏弱。

发布与维护

CI(.github/workflows/ci.yml)在 ubuntu-latest 与 windows-latest 上跑 Node 20 / 22 / 24,
每条腿两步:npm test(离线测试)+ npm pack --dry-run 校验 tarball 里确实带上宿主半、客户端半、
src/、cordis.patch.yml、locale/、icon.svg、README 与 LICENSE —— 少一个文件,用户装完就是
「装了但设置页不出现」,比测试红更难排查。真实宿主里的开关验证不在 CI:它要在隔离 profile 里启动
桌面宿主,托管 runner 没有交互式桌面会话,结论见下面的「验证记录」。

发版在本机完成,不走 CI:npm 可信发布(Trusted Publishing / OIDC)在本仓库一直返回 404,
CI 发布已于 2026-11-12 取消,release.yml 已移除。每次发版:

# 本机 npm 默认 registry 是镜像源,登录与发布都要显式指官方源
npm login --registry=https://registry.npmjs.org/
npm version patch --no-git-tag-version
git commit -am "chore(release): 0.3.2"
git tag v0.3.2
git push origin master --tags
npm test
npm publish --registry=https://registry.npmjs.org/
gh release create v0.3.2 --generate-notes --title v0.3.2

版本号语义按 0.x 处理 —— 0.1.x 修 bug,0.2.0 起加模式或改配置/状态文件形状(状态文件 v2 为
{ version, active, intensity, overrides, customModes, updatedAt },改形状要同时升 version 并写迁移)。

验证记录

  • 2026-11-05:离线测试 33 项通过;真实宿主里设置页在中文 / English 下均显示 9 张卡片;/debug 返回策略段 53 字、人格上下文 149 字(当时的鲸鱼娘提示词),切到 off 后为空。
  • 2026-11-06:全部模式切换为中文直译标签(【人格载入】),去掉 仅简体中文 与 超时信号;renderPersonaPrompt('whale') 为 127 字,离线测试 35 项通过;本机宿主重载后 /debug 返回 127 字,state 里 8 个模式的预览均以 【人格载入】 开头。
  • 2026-11-10:新增「女儿」内置模式,设置页内置卡片变为 10 张(含 off);内置模式可编辑称呼/自称/提示词并恢复默认;支持新建、编辑、删除自定义人格;内置标签块不再写死 自称/称呼,改由配置统一追加;状态文件升级到 v2(v1 自动迁移);离线测试 47 项全部通过。renderPersonaPrompt('daughter') 为 119 字,renderPersonaPrompt('whale') 为 130 字。
  • 2026-11-11:新增全局语气强度(低/中/高,默认低);策略段增加「整段回答保持该语气」与「不主动提及本设定」;边界只保留安全约束,退出改为设置页 / /persona off;设置页「查看当前提示词」改为策略段 + 运行时上下文分层展示;模式标题合并为 【人格载入:模式名】,鲸鱼娘标题改为 DeepSeek同人娘化形象(鲸鱼娘) 并在首个 tag 加 DeepSeek同人娘化,主色改为 DeepSeek 品牌蓝 #4D6BFE、默认自称改为「我」;完成 27 次强度 A/B + 9 次代码任务细化测试 + 去重后 9 次闲聊抽测;离线测试 55 项全部通过。低/中/高档注入约 68–116 / 89–137 / 102–150 字。实测中档的中段覆盖率最高(约 0.60),高档约 0.50,低档为 0;代码任务 9/9 修复正确且代码块无人格词。
  • 2026-11-11:设置页交互调整——「新建自定义人格」从列表底部移到当前人格条内、排在「编辑」左侧;自定义人格的删除入口从编辑器改为卡片右上角的悬浮 icon 按钮(悬停或聚焦浮出、纯图标带 aria-label,删除中禁用),编辑器底部只保留保存 / 恢复默认 / 取消;删除失败改为内联提示,不再打断整页;离线测试 54 项全部通过。
  • 2026-11-12:行为类标签抽象化——妈妈 提醒喝水休息吃饭 → 关心身心状态,傲娇 先做事 → 嘴上嫌弃手上不慢;猫娘默认自称改为「喵喵」,鲸鱼娘默认自称改为「人家」。依据 5 轮长对话测试(技术定位 / 技术改写 / 日常短问 / 概念问答 / 情绪闲聊 × 中高档):显式动作标签会在技术轮与概念轮也补一句健康提醒(中档 5 次、高档 6 次),改为状态描述后技术/概念轮降到 0,情绪轮仍自然关怀。离线测试 55 项全部通过;renderPersonaPrompt 字数为猫娘 71、妈妈 83、鲸鱼娘 117。
  • 2026-11-12:取消 CI 发布——release.yml 的 OIDC 可信发布在 v0.3.0 与 v0.3.1 均报 404 PUT registry.npmjs.org,故移除该工作流,改为本地 npm publish --registry=https://registry.npmjs.org/ + gh release create。v0.3.1 已用本地 token 发布成功并创建 GitHub Release;CI 仍保留 ci.yml 跑测试与打包校验。
  • 2026-11-12:语气强度改为标签式「维度:程度」并取消每段硬约束——策略段删掉「整段回答保持该语气,不要只在开头或结尾体现」;三档改为 语气强度 + 动作描写 + 神态 + 情绪表达 + 可用层次(高档另有 小惊喜:偶尔),只用绝对程度词(很少/偶尔/适中/经常/持续),不再出现「更 / 最」,也不再写「淡 / 正常」这类会形成反向约束的低档描述;低档因此从 0 字变为有明确低浓度标签。注入长度变为低 111–160、中 132–181、高 185–234 字(如猫娘 114 / 135 / 188),仍在 300 字预算内;离线测试 55 项全部通过。
  • 2026-11-12:按 36 次实测结论收缩强度维度——删掉 语气词 维度(称呼与句尾助词已由人格本体标签覆盖,档位再加浓度无增量),把 动作描写 与 神态 提为主刻度(实测唯一稳定单调的两项:括号动作 0.75 → 1.33 → 1.83),情绪表达 保留观察;注入长度因此各减约 1 字。
  • 2026-11-13:新增「奥特曼-迪迦」内置模式(tiga)。把「相信光、希望、人类的可能」与「守护爱、和平、梦想」整理成 相信… / 守护… 两组标签,另加 光之巨人 / 迪迦奥特曼 身份锚点、性格温柔坚定、不替人类决定;当时默认自称「迪迦」、称呼「伙伴」,renderPersonaPrompt('tiga') 低档 152 字,仍在原有 111–160 字范围内,三档范围不变;设置页内置卡片变为 11 张(含 off)。
  • 2026-11-13:调整两组默认称呼/自称——迪迦自称改为「吾」、称呼改为「人类」(低档 151 字),女儿自称改为「人家」(低档 121 字,与改前相同);修复 composePersonaBody 覆盖称呼时的全量替换:只替换后面不紧跟汉字的独立旧称呼,避免把 相信人类的可能 / 不替人类决定 误改成 相信伙伴的可能 / 不替伙伴决定,并补一条回归测试。
  • 2026-11-13:迪迦卡片主色由亮黄 #eab308 改为代表色紫 #7c3aed(依据:复合型红紫银、天空型蓝紫、官方水晶之力紫色),与毒舌亮紫 #8b5cf6 拉开明度避免撞色;补充主色取值与不撞色测试。
  • 2026-11-13:迪迦改设定为「原始迪迦」——取三千万年前留下石像、化光归星云的原初之光,而不是 TV 里意志即大古本人的迪迦;用户设为被称呼的「人间体大古」,自称仍为「吾」,提示词标题改为「原始迪迦」、卡片摘要同步。身份标签 光之巨人 / 迪迦奥特曼 改为 原初之光 / 迪迦奥特曼 / 与人间体对话,关系标签不写死名字以便设置页覆盖;不替人类决定 保留并更贴幽莎蕾「原初巨人不干涉人类选择」的原作设定。renderPersonaPrompt('tiga') 低档 156 字,中/高档 177 / 230 字,仍在原有 111–160 / 132–181 / 185–234 范围内;同步测试断言与覆盖称呼回归,离线测试 57 项通过。

  • 2026-11-13:发布 0.4.1——包含新增内置人格 tiga(奥特曼-迪迦)及其默认称呼/自称、紫色主色与「原始迪迦」设定的四次提交;离线测试 57 项通过,npm pack --dry-run 打包清单完整。

设置页不出现时

按顺序检查:

  1. ~/.dsh/profiles//package.json 的 dsh.profile.bundles 里有 dsh-persona-modes;
  2. ~/.dsh/profiles//cordis.patch.yml 里没有这类覆盖(有就改成 disabled: false):
- id: persona-modes
name: dsh-persona-modes
disabled: true

插件管理器的开关反映 bundle 选择,但 profile patch 在 bundle 之后应用,disabled: true 会真正关掉宿主半。
3. 宿主半在线:POST http://127.0.0.1:/dsh-persona-modes/ping 应返回 200;
4. 客户端半属于页面 bundle,改完 profile 后在 DSH 窗口按 Ctrl+R 刷新一次。

已知限制

  • 全局生效:模式是当前 DSH 用户的全局偏好,不是按会话隔离。切换后所有会话的下一轮都使用新语气。
  • 只影响语气:不会改变模型能力、工具权限或事实准确性;如果模型在长上下文中忽略语气,可以重新切换一次或新开会话。
  • 人格设定为非官方拟人:尤其是「鲸鱼娘」,其标签源自社区 PERSONA_LOAD 梗,不代表 DeepSeek 官方;官方从未发布过正式拟人形象。
  • 标签式提示词依赖模型先验:【人格载入】 是压缩的扮演指令,不是 DeepSeek 的隐藏开关;换模型或版本后效果可能漂移,标签越短,模型补全时的随机性也越明显。
  • 自定义人格提示词由用户负责:最多 4000 字;写标签还是自然语言都可以,但标签质量会直接影响角色稳定性。
  • 自定义人格的「恢复默认」回到创建时的值:不是最近一次保存的值;保存后如果想换一组新默认值,需要新建一个自定义人格。
  • 高强度描述更浓:高档开放动作描写、修辞层与「偶尔一个小惊喜」,适合闲聊/演出;代码和长文档任务建议用低或中档。
  • 状态文件是本机用户级:多个 profile 共用 ~/.dsh/persona-modes/state.json;如果希望按 profile 隔离,可把 DSH_HOME 指到不同目录。

License

MIT

常见问题

9 问
答案由本站依据条目字段整理,不引用上游原文
dsh-persona-modes 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add dsh-persona-modes` 即可。对应的 npm 包名是 `dsh-persona-modes`。

dsh-persona-modes 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-persona-modes 安全吗?

低风险。静态扫描 低;动态审计无结论(以下以静态为准)→ 总评级 低。

dsh-persona-modes 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-persona-modes 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.2-rc.1。

dsh-persona-modes 需要什么运行环境?

Node.js >=20。环境不满足时安装会失败,建议先确认本机版本。

dsh-persona-modes 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-persona-modes 有哪些功能?

设置页一键切换人格、/persona 命令快速切换、内置八种语气模式、只改语气不改事实、提示词精简省上下文。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

文档与办公
按星标排序,可作替代方案

webnovel-writer

webnovel-writer

基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200 万字量级 连载创作。

L4 · 沙盒安装通过 7,742 星

baoyu-design

baoyu-design

L4 · 沙盒安装通过 6,403 星

answer-me-with-html

answer-me-with-html

Answer me with HTML — an agent skill that answers hard questions with

L4 · 沙盒安装通过 4,782 星

Pagekin

Pagekin

Pagekin,免费 AI 小说写作软件,从设定、蓝图到正文、审稿、定稿;支持拆解仿写、续写、改写,可导入写作 Skill(如去 AI 味)

L4 · 沙盒安装通过 2,601 星

railgun20001 的其它插件

6 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-11-12。