Yaya716
dsh-user-prompts
Persistent user system-prompt manager for DeepSeek Harness Web: a Settings page where the user can add and delete their own prompts; built-in system prompts are shown read-only.
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 15, 2026
- Updated
- Aug 15, 2026
Introduction
@local/dsh-user-prompts — 设置中的自定义系统提示词管理
在「设置 → 提示词」页面管理提示词:
- 系统提示词:只读展示(由各插件组装,含
harness:identity、persona、 工具提示词等),不可修改、不可删除。 - 各模式的 persona:只读展示每个 agent 模式(预设)对全局 persona 的 覆盖情况(「已覆盖 / 与全局一致 / 未覆盖」,极简模式标注「完整提示词」)。
- 我的提示词:用户可以随时添加、删除自己的提示词。用户提示词以
user:<id>段(order 500)注入系统提示词,作用于所有会话,重启后保留。
AGENTS.md 自动迁移
旧版用户通过 $DSH_HOME/AGENTS.md(全局用户指令)添加提示词。插件首次
加载时会把该文件内容迁移为一条用户提示词(条目带「AGENTS.md」徽标,
id from-agents-md),然后把文件清空为空白文件(不删除文件),使内置
的 agent-instructions 不再重复注入。迁移后可在设置页直接删除该条目。
组成
| 文件 | 作用 |
|---|---|
package.json | 声明 dsh.client(web 平台、inject slots/connection)与 exports["./client"] |
lib/index.js | Host 半:user-prompts 设置命名空间(持久化)、systemPrompt.section() 注入、/rpc 通道提供系统提示词只读列表 |
client.js | 浏览器半:注册「设置 → 提示词」页面(settings.section),增删用户提示词、只读展示系统提示词 |
工作原理
- 持久化:用户提示词存放在 settings 命名空间
user-prompts(~/.dsh/settings.yaml的user-prompts:段),由 settings 服务统一 校验、写盘、冲突检测。 - 注入:Host 半把每条用户提示词注册为一个 system-prompt section
(
user:<id>,order 500,位于所有内置/工具提示词之后),删除或改动后 通过scope.watch即时重同步。 - 只读枚举:Client 通过
connection.rpc.call('/rpc', 'user-prompts/listSystem', {})读取systemPrompt.assemble()中非user:前缀的段落。
安装位置
- 源码:
$DSH_HOME\extensions\user-prompts\ - 加载副本:
$DSH_HOME\profiles\web\node_modules\@local\dsh-user-prompts\ - 组合行:
$DSH_HOME\profiles\web\cordis.patch.yml中id: user-prompts
注:副本是物理拷贝(未走 pnpm install)。若日后对 profile 执行
pnpm install,该目录可能被清理;重新拷贝即可。
生效
组合行在进程启动时解析(Web 表面未启用 HMR),修改后需重启 DSH。
卸载
- 从
$DSH_HOME\profiles\web\cordis.patch.yml删除user-prompts行 - 删除
$DSH_HOME\profiles\web\node_modules\@local\dsh-user-prompts\ - (可选)删除
$DSH_HOME\extensions\user-prompts\ - (可选)删除
~/.dsh/settings.yaml中的user-prompts:段 - 重启 DSH