前言¶
在 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 … 一类命令行原文,请勿凭仓库名自行拼接安装参数。
可按下面事实核对环境后再安装:
- 在 SkillHub 社区目录 打开 gosutry/dsh-persona-select(与 DeepSeek / 幻方无官方从属,属社区生态),页面标注 可安装,版本 v0.4.0-rc3。
package.json要求 Node.js >= 18,对等依赖@deepseek-ai/dsh>=0.1.7-rc.2 <1.0.0(optional peer)。- 安装前阅读 GitHub 源码 与 MIT 许可证;插件以当前 DSH 进程权限运行,仅安装你信任的社区包。
典型用法¶
- 打开插件设置 → 人设管理,新建人设:填写名称、人设正文、段序权重,按需粘贴或导入历史对话 → 保存。
- 在 全局 页签设新对话默认人设;在 当前 页签只改这一场对话。
- 开 新对话,在模式行下方 人设 里选中预设;确认状态点为绿(或理解黄/红含义)。
- 若要做角色卡流转:保存后 导出 JSON 或 导出图片;他人 导入 会新增条目。
- 若要从真实会话复用上下文:用 DSH
/export得到日志,在导入时按需勾选「导入思考过程」「展开压缩」,写入某条人设的历史对话字段。 - 需要测 token 或对话纯度:按需打开四个屏蔽开关,或使用「一键纯聊天」;若仍需工具,勾选 可复用工具。
适用场景与注意¶
适合:需要在 DSH 工作流里 复用、切换 系统提示词人设;希望 一次性 把格式化历史带进新会话;要在「全 harness 智能体」与「接近纯聊天/纯人设」之间做可控对比或省 token 实验。
注意:
- 历史对话 仅新对话首步 注入;中途换人设不会重灌历史。
- 「只留人设」等屏蔽会改变模型可见的工具与指令,生产任务前先在副本对话验证。
- 内置人设为只读,改编请复制后再改。
结尾¶
dsh-persona-select 把人设正文与历史对话拆成可管理预设,并暴露段序权重、per-会话开关、DSH Session 导入与 PNG 角色卡导出,属于 DSH「一切皆插件」工作流里偏 提示词与上下文编排 的一类工具。查阅与安装入口:SkillHub 目录;源码与完整说明:github.com/gosutry/dsh-persona-select。