前言¶
在 DeepSeek Harness(DSH)里做智能体,助手每一步的汇报通常直接进会话日志,也直接决定下一步读到的上下文。若想把「说话口吻」和「干活逻辑」分开,常见做法是把人设写进 system prompt——可行,但人格文本会跟着每个工作步骤一起走,既占上下文,也可能干扰工具链与事实陈述。
dsh-persona-shell 走另一条路:工作层照常生成原始汇报;插件在表达层只读已提交的汇报,另起一次模型调用做口吻转述,结果留在插件存储与页面展示,不写回工作会话。维护者 crisvollerei 在 GitHub 上以 MIT 发布,社区目录 SkillHub 将其归类为「趣味换装」。当前 npm 包版本为 0.4.4(以 package.json 为准)。
这是什么¶
一句话定位:人格只在表达层,不进工作层。
插件接管的是聊天区的展示口径,不修改 DSH 工作层用的提示词、工具与会话记录。下一步干活的助手读不到人格改写文本;你对照原文时,底本仍是工作层提交的汇报。
工作层与表达层怎么分工¶
README 用两层边界概括流程:
DSH 工作层 插件表达层
────────── ──────────
原始汇报 ──────── 只读 ────────→ 本地打码
↓
模型改写
↓
校验、回填
↓
会话记录不变 插件存储 → 聊天展示
先对代码、路径、命令、URL、版本号等技术字面量打码(占位符 [[n]]),改写完成后再原样回填;校验标记集合、长度与格式,通过后才保存人格版。调用失败、超时或校验不通过时回落原文;超过 maxRewriteChars(默认 6000)、空正文、中断步骤等会跳过改写。
核心功能¶
预设与人格卡¶
内置四个预设:默认鲸鱼娘「大肥鱼」(自称「鲸鲸」,助手称「小鲸鲸」)、白龙娘「大肥龙」、社区二创「Claude小姐」,以及实验性「鲸鲸(实验性)」——用鲸鲸口吻转述原本助手「姐姐」的汇报,而非把工作说成鲸鲸自己做的。可在 设置 → 人格套壳 启用其他预设、编辑人格卡(身份、汇报规则、语感、示例、禁区与称呼),或粘贴一段人设提示词生成新预设。编辑任一内置预设会自动另存为新预设,原版仍可切回。
改写范围与展示¶
默认 trigger 为 step:每个有正文的助手步骤都会改写,含工具调用前的简短叙述;设为 report 则只改每轮最终汇报。子代理过程与结论默认不改写(subagentSteps / subagentReports 均为 false)。改写流式逐段显示;每轮最后一条汇报带「原文」按钮,可与人格版并排对照。
风格记忆¶
开启 memory(默认 true)后,插件跨会话统计语言、称呼与句长作为语气参考;对当前口吻的简短纠正按预设单独保存。设置页可查看、关闭采集或清空记录。
会话与总开关¶
会话标题栏右侧有「人格」开关,只影响当前会话;关闭后该会话恢复官方渲染(reasoning、图片块、中断与运行状态等),已生成的人格改写不删除。插件总开关 enabled 关闭时,所有会话都不套壳。
安装与启用¶
需要已支持插件管理的 DSH Desktop 或 Web。README 注明开发与验证基于 0.2.1-rc.3,其他版本兼容性以实际使用为准。
从 npm 安装(推荐)¶
将 <profile> 换成你的 DSH profile 名:
dsh plugin --profile <profile> add dsh-persona-shell
也可在侧边栏 Plugins → Add plugin 中选择 Install a third-party plugin,包名填 dsh-persona-shell。
从 GitHub Release 安装¶
在 Releases 下载 dsh-persona-shell-<version>.tgz,在 Add plugin 中填入下载链接,例如:
https://github.com/crisvollerei/dsh-persona-shell/releases/download/v0.4.4/dsh-persona-shell-0.4.4.tgz
或本地 tarball:
dsh plugin --profile <profile> add ./dsh-persona-shell-0.4.4.tgz
从 Git 仓库安装¶
在 Install a third-party plugin 中填入:
https://github.com/crisvollerei/dsh-persona-shell
安装后启用 bundle;若 DSH 提示重启则重启一次,再在 设置 → 人格套壳 选择或编辑预设。
典型用法¶
安装启用后,助手完成一段汇报,聊天区即显示人格版。日常调整集中在 设置 → 人格套壳,例如:
| 想调整什么 | 去哪里改 |
|---|---|
| 换角色 | 启用其他预设,或用人设提示词生成新预设 |
| 微调口吻 | 编辑人格卡各字段 |
| 少改写中间步骤 | 关闭阶段性输出改写,或改 trigger 为 report |
| 只关当前会话 | 标题栏「人格」开关 |
| 换转述模型 | 设置 provider / model;留空则跟随当前会话模型 |
改写所用模型、超时(默认 timeoutMs 45000)、历史语气样例数(keepSamples 默认 2)等完整默认值见仓库 lib/config.js 与 cordis.patch.yml。
适用场景与注意¶
适合谁: 希望在 DSH 里保持工作提示词与工具行为不变,仅让面向用户的汇报带上角色感;能接受额外模型调用带来的用量与等待。
务必知晓的使用边界(README 原文取舍,非单靠设置可全部消除):
- 插件接管 keyed 槽
conversation.chat.node后,reasoning 折叠面板、图片块、中断标记、运行中状态不显示;「原文」对照也只有文本块。关闭总开关或当前会话「人格」开关可恢复官方渲染。 - 符合条件的每条汇报都会发起转述调用,叙述文本会发给所选模型提供方,并非纯本地处理。
- 路由默认要求认证,需 Connection 服务;无该服务的部署仅在明确接受未认证访问风险时才考虑
allowUnauthenticatedRoutes: true。 - 校验保护字面量与输出格式,不等于逐句事实核验;重要结论仍应对照原文。流式显示中的内容尚未经过最终校验。
DSH 生态理念是「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。插件以当前 DSH 进程权限运行,安装前请自行审阅 crisvollerei/dsh-persona-shell 源码与 MIT 许可证;代码许可不代表 README 中所述图标与人设素材的授权范围。
结尾¶
dsh-persona-shell 把「做事」和「说话」拆成两层:工作层汇报照旧进会话,表达层另一次转述只影响展示与插件存储。若你需要在 DSH 里换口吻而不动工作提示词,可从 npm 或 Release 安装,在设置页选预设并善用「原文」对照。
- 社区目录:crisvollerei/dsh-persona-shell
- 源码与文档:GitHub