dsh-plugin-masterprompt(人设配置)
为 DeepSeek Harness 增加"人设 / master prompt"能力:在输入框工具行(标准模式选择器旁边) 常驻一个「人设」小框,点击展开后可新建、编辑、删除、切换人设模板,当前对话的后续回复 立即按所选人设走。
效果图:

特性
- 最高优先级注入:人设文本插入在系统提示最顶部(排在 DSH 身份声明之前),模型第一眼看到。
- 固定交互条款:人设文本之前会自动附加一段不可覆盖的固定规则——向用户提问必须用
ask_user_question可点选卡片(带建议选项);人设里的提问要求(追问到底、一次一问、附建议答案等) 只约束提问的节奏与内容,不改变提问的呈现方式。 - 只影响当前对话:按
sessionId隔离,其他对话不受影响。 - 修改立即生效:切换/编辑后,当前对话下一轮回复即按新人设(正在生成的回复不回溯)。
- 子代理继承:当前对话派生的子代理继承该对话的人设(沿 parentSession 谱系)。
- 新对话继承上次人设:新对话默认沿用最近一次选用的人设;显式切回"标准模式"则新对话默认也回到标准模式。
- 删除保护:正在被任何对话使用的模板禁止删除。
- 重启保留:模板库与各对话的选择状态存于本地 JSON,重启 DSH 后依然生效。
安装
dsh plugin --profile web add <本目录绝对路径>
然后重启 DSH 生效(插件行与客户端 bundle 在启动时加载)。
使用
- 在任意对话的输入框工具行左侧找到「人设 · 标准」小框(实心绿点 = 当前对话有人设)。
- 点击小框展开面板:
- 新建人设:填写名称 + 纯文本(思考模式、缓存策略、提问模式、语气、边界等自由编写,上限 100000 字符)。
- 应用:点选模板立即切换到该人设。
- 编辑:修改模板文本,所有使用它的对话立即用新文本。
- 删除:使用中的模板按钮置灰,需先切换才能删除。
- 恢复标准模式:清除当前对话人设(新对话默认也回到标准模式)。
示例人设
见 examples/persona-whale-girl.md——一份「可爱外壳 + 专业内核」的鲸鱼娘编程助手模板,可直接粘贴使用,也展示了写人设的基本结构(角色设定 → 说话风格 → 工作模式 → 技术要求 → 边界)。
数据存储
- 状态文件:
%DSH_HOME%\dsh-plugin-masterprompt\state.jsontemplates模板库;selection各会话选择表;defaultPersonaId新对话默认人设。
- 损坏的文件会自动备份为
state.json.corrupt-<时间戳>并重建。
卸载
dsh plugin --profile web remove dsh-plugin-masterprompt
重启 DSH 后生效。可选:手动删除 %DSH_HOME%\dsh-plugin-masterprompt\ 目录清空所有人设数据。
FAQ
Q: 切换人设后,正在生成的回复会变吗? A: 不会。人设在下一轮回复起生效,正在生成的内容不回溯。
Q: 子代理会用主人设吗? A: 会。当前对话派生的子代理沿 parentSession 谱系继承人设。
Q: 为什么我的人设里写了"逐条追问",AI 却用卡片提问?
A: 固定交互条款的优先级高于人设文本:提问必须渲染成 ask_user_question 可点选卡片。人设只能约束提问的节奏与内容(比如一次只问一个、附建议答案),不改变呈现方式。这是刻意的防呆设计。
Q: 人设会影响 token 消耗吗? A: 会。人设文本会完整注入每轮系统提示,长度与 token 消耗成正比。建议日常人设控制在千字以内;示例模板(鲸鱼娘)约 800 token,已算比较饱满。
Q: 多个对话能用不同人设吗?
A: 可以。人设按 sessionId 隔离,每个对话独立选择,互不影响。
Q: 状态文件损坏了怎么办?
A: 插件会自动把损坏文件备份为 state.json.corrupt-<时间戳> 并重建空状态,不会丢掉备份,可手动抢救。
安全提示
人设文本是最高优先级指令,由使用者自担:若与 DSH 系统规则冲突(如要求忽略工具规则), 可能让 AI 行为异常。插件不做任何审查或拦截。
No comments yet. Be the first to write one.