dsh-persona-shell:在渲染层给助手汇报套人格,工作提示词不动

前言

在 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 安装,在设置页选预设并善用「原文」对照。

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

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

小夜