Skip to content
dsh.fish
Bundle

dsh-plugin-masterprompt

Per-conversation persona / master prompt for DeepSeek Harness: a small box beside the mode controls in the composer lets you create, switch and manage the highest-priority persona of the current conversation (subagents inherit, new conversations inherit the last-used persona).

Source
lw-storm
stars
5 stars
License
MIT
Updated
Updated 10 days ago

Readme

# dsh-plugin-masterprompt(人设配置)

为 DeepSeek Harness 增加"人设 / master prompt"能力:在输入框工具行(标准模式选择器旁边)
常驻一个「人设」小框,点击展开后可**新建、编辑、删除、切换**人设模板,当前对话的后续回复
立即按所选人设走。
# 效果图:
<img width="1276" height="813" alt="image" src="assets/screenshot-1.png" />
<img width="1312" height="866" alt="image" src="assets/screenshot-2.png" />

## 特性

- **最高优先级注入**:人设文本插入在系统提示最顶部(排在 DSH 身份声明之前),模型第一眼看到。
- **固定交互条款**:人设文本之前会自动附加一段不可覆盖的固定规则——向用户提问必须用
  `ask_user_question` 可点选卡片(带建议选项);人设里的提问要求(追问到底、一次一问、附建议答案等)
  只约束提问的节奏与内容,不改变提问的呈现方式。
- **只影响当前对话**:按 `sessionId` 隔离,其他对话不受影响。
- **修改立即生效**:切换/编辑后,当前对话下一轮回复即按新人设(正在生成的回复不回溯)。
- **子代理继承**:当前对话派生的子代理继承该对话的人设(沿 parentSession 谱系)。
- **新对话继承上次人设**:新对话默认沿用最近一次选用的人设;显式切回"标准模式"则新对话默认也回到标准模式。
- **删除保护**:正在被任何对话使用的模板禁止删除。
- **重启保留**:模板库与各对话的选择状态存于本地 JSON,重启 DSH 后依然生效。

## 安装

```sh
dsh plugin --profile web add <本目录绝对路径>
```

然后**重启 DSH** 生效(插件行与客户端 bundle 在启动时加载)。

## 使用

1. 在任意对话的输入框工具行左侧找到「人设 · 标准」小框(实心绿点 = 当前对话有人设)。
2. 点击小框展开面板:
   - **新建人设**:填写名称 + 纯文本(思考模式、缓存策略、提问模式、语气、边界等自由编写,上限 100000 字符)。
   - **应用**:点选模板立即切换到该人设。
   - **编辑**:修改模板文本,所有使用它的对话立即用新文本。
   - **删除**:使用中的模板按钮置灰,需先切换才能删除。
   - **恢复标准模式**:清除当前对话人设(新对话默认也回到标准模式)。

## 示例人设

见 [examples/persona-whale-girl.md](examples/persona-whale-girl.md)——一份「可爱外壳 + 专业内核」的鲸鱼娘编程助手模板,可直接粘贴使用,也展示了写人设的基本结构(角色设定 → 说话风格 → 工作模式 → 技术要求 → 边界)。

## 数据存储

- 状态文件:`%DSH_HOME%\dsh-plugin-masterprompt\state.json`
  - `templates` 模板库;`selection` 各会话选择表;`defaultPersonaId` 新对话默认人设。
- 损坏的文件会自动备份为 `state.json.corrupt-<时间戳>` 并重建。

## 卸载

```sh
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 行为异常。插件不做任何审查或拦截。

Install

dsh plugin --profile web add github:lw-storm/dsh-plugin-masterprompt#43b6a798508766ef229afa806dc3ccd858ae3300

Profile: web

Source