dsh-persona-select:在 DSH 里管理人设正文与历史对话注入

前言

在 DeepSeek Harness(DSH)里做智能体或角色向对话时,常见做法是手写一段系统提示词,或把往期聊天复制进新会话。前者难复用、难切换;后者容易和 DSH 自带的 harness 注入、工具 schema、runtime 上下文叠在一起,token 开销也不好控。社区插件 dsh-persona-select(维护者 gosutry,分类:工作流)把「人设正文进系统提示词、历史对话进上下文」做成可保存的预设,并在对话界面随时切换;还支持按需屏蔽 DSH 自身注入,逼近「纯聊天」或「只留人设」等组合。下面按 README 与仓库元数据说明其能力与用法。

这是什么

dsh-persona-select 是 DSH 社区插件,当前发布版本 v0.4.0-rc3(SkillHub 目录页 标注可安装;GitHub 约 3 stars)。许可证 MIT。

插件做两件事(界面与文档统一叫法):

叫法 含义
人设正文 注入系统提示词的那段内容
历史对话 作为上下文注入的一段「已经发生过」的对话

两者按 人设 成对保存:在设置页写好并存成预设,在对话里选中后,各自按规则进入当次请求。仓库简介还提到内置社区向的鲸鱼娘角色扮演预设;内置条目只读,要改需「复制为新人设」。

注入规则

人设正文与段序权重

人设正文进入系统提示词的 人设段,位置由 段序权重 控制:

  • 按权重大小排序,数字越小越靠前(默认 -1,排在预设句 “You are a coding agent…” 之前)。
  • 点 追随 时,人设段放到 所有系统提示词段之后。
  • 权重必须是整数(-1000000000 ~ 1000000000),只影响排序,不会写入正文。

历史对话与 KV cache

历史对话在 新对话的第一步 作为 user 侧上下文注入 一次,外壳仿照 DSH 自身格式:包在 <system-reminder> 中,以 CONTEXT_ROAD: 开头、CONTINUE_CONTEXT. 结尾;内部用 <user_message>、<thinking>、<assistant_message>、<file> 等标签区分内容。

已注入过的对话不会再次注入,以免破坏整段对话的 KV cache。因此历史对话只在每个新对话的第一步生效;若要在已进行的会话里「补历史」,README 明确不推荐把人史写进人设正文。

人设管理与 per-会话设置

设置页支持新建、编辑、保存、删除人设,以及 复制为新人设。每条人设包含:名称、人设正文、段序权重、历史对话。

设置按对话分开保存:切换人设或改开关 不会影响 新对话和进行中的对话。设置页有 当前 / 全局 两个页签,分别对应当前对话与新对话默认。

保存前会校验:名称为空、正文为空、权重非整数会拒绝并说明原因;正文超过建议上限会提示但仍完整保留。切换人设时若有未保存改动会先询问。

屏蔽注入与「纯聊天」

四个开关各撤掉一类系统侧输入(README 表格摘要如下):

开关 作用
只留人设 系统提示词里只保留人设段,去掉 harness 身份、工具指引等其余段
屏蔽 runtime 上下文 沙箱/审批等 user 快照,以及 <system-reminder> 中的 runtime 与 skill 目录
屏蔽 schema 工具 去掉工具定义(通常 token 占用最大)
屏蔽其他注入内容 AGENTS.md / CLAUDE.md 类基线与时间读数等 user 侧追加内容

四开关全开且未选人设时,即为 纯聊天:系统侧注入归零。对话里「人设」选择框提供 一键纯聊天 / 恢复系统输入。

勾选 可复用工具(工具保活通道)时,在对话 第一次请求 以及 疑似声明序列重启(如压缩)时各保留完整工具列表一轮,避免清空工具基线后后续调用被 INVALID_REQUEST 拒绝。

导入、导出与 Session 日志

导出(须为编辑器中该人设 已保存 版本):

  • 导出 JSON:无损 JSON。
  • 导出图片:自选 PNG 作封面,人设数据写入图片一并下载;原图像素数据不改,单次上限 32 MB。

导入:

  • 本插件导出的 .json 或带数据的 .png → 追加 为新人设,不覆盖已有条目。
  • DSH /export 的 Session:支持 .zip、session.jsonl / session.vN.jsonl、.jsonl.zstd / .zst;可选 导入思考过程、展开压缩(控制是否带入 <thinking> 以及压缩摘要与全文的取舍)。

对话界面与数据文件

对话模式选择行下方的 人设 展开框可:切换人设或选「不注入」、一键纯聊天/恢复、通过层徽标区分本对话/全局设置。绿/黄/红点表示工具基线、历史是否仍会对齐注入、人设是否被删等状态(详见 README)。

数据落在 <DSH_HOME>/persona-select/(DSH_HOME 默认 ~/.dsh):

文件 内容
personas.json 全局设置、人设列表、各对话选择与开关
personas.json.v2-backup 升级备份,可删
history/<编号>.txt 各人设的历史对话正文

限制(来自 README):名称最长 40 字;人设正文建议不超过 20000 字;最多 200 条人设、500 条对话记录;无效会话记录会自动或手动清理。

内置鲸鱼娘形象源自 @ZipZipPipe,再创作遵循 CC BY-NC-SA 4.0;界面文案支持中文与 English。

安装与启用

已抓取资料 未给出 固定的 dsh plugin add … 一类命令行原文,请勿凭仓库名自行拼接安装参数。

可按下面事实核对环境后再安装:

  1. 在 SkillHub 社区目录 打开 gosutry/dsh-persona-select(与 DeepSeek / 幻方无官方从属,属社区生态),页面标注 可安装,版本 v0.4.0-rc3。
  2. package.json 要求 Node.js >= 18,对等依赖 @deepseek-ai/dsh >=0.1.7-rc.2 <1.0.0(optional peer)。
  3. 安装前阅读 GitHub 源码 与 MIT 许可证;插件以当前 DSH 进程权限运行,仅安装你信任的社区包。

典型用法

  1. 打开插件设置 → 人设管理,新建人设:填写名称、人设正文、段序权重,按需粘贴或导入历史对话 → 保存。
  2. 在 全局 页签设新对话默认人设;在 当前 页签只改这一场对话。
  3. 开 新对话,在模式行下方 人设 里选中预设;确认状态点为绿(或理解黄/红含义)。
  4. 若要做角色卡流转:保存后 导出 JSON 或 导出图片;他人 导入 会新增条目。
  5. 若要从真实会话复用上下文:用 DSH /export 得到日志,在导入时按需勾选「导入思考过程」「展开压缩」,写入某条人设的历史对话字段。
  6. 需要测 token 或对话纯度:按需打开四个屏蔽开关,或使用「一键纯聊天」;若仍需工具,勾选 可复用工具。

适用场景与注意

适合:需要在 DSH 工作流里 复用、切换 系统提示词人设;希望 一次性 把格式化历史带进新会话;要在「全 harness 智能体」与「接近纯聊天/纯人设」之间做可控对比或省 token 实验。

注意:

  • 历史对话 仅新对话首步 注入;中途换人设不会重灌历史。
  • 「只留人设」等屏蔽会改变模型可见的工具与指令,生产任务前先在副本对话验证。
  • 内置人设为只读,改编请复制后再改。

结尾

dsh-persona-select 把人设正文与历史对话拆成可管理预设,并暴露段序权重、per-会话开关、DSH Session 导入与 PNG 角色卡导出,属于 DSH「一切皆插件」工作流里偏 提示词与上下文编排 的一类工具。查阅与安装入口:SkillHub 目录;源码与完整说明:github.com/gosutry/dsh-persona-select。

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

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

Xiaoye