前言¶
在 DSH 里给模型加行为约束,常见做法是在项目里放 AGENTS.md,或在用户层维护 ~/.dsh/AGENTS.md。项目内的说明会叠加、甚至盖住全局说明;不同工作区规则也不一致。若你希望有一条规则长期生效、且不被单个仓库里的文件撤掉,需要落在系统提示词(system prompt)层。
下面介绍社区插件 dsh-violet-heart(维护者 jihaoran222):它只做一件事——向系统提示词注册一段固定规矩——不要把手稿、私人心意写进将要正式呈递的文件;在仅供自己保留的文档里,可以偶尔写一点。插件归类为「记忆」,当前 GitHub 星标为 0;许可证 MIT,包版本 0.1.0,要求 DSH >=0.2.0-rc.1。
这是什么¶
dsh-violet-heart 是一个极小的 DSH 插件:实现上仅调用 ctx.systemPrompt.section(),不注册工具、不读写文件、不访问网络、不设定时器。它把约十条、合计约 730 字符的规则写进每轮对话的系统提示词,顺序为 8000,每个工作目录、每轮各出现一次。
SkillHub 上的简介与上述一致:有些话不该出现在你要交出去的页面上,有些只属于你自己留着的页面;插件把这条界线写进系统提示词。
和 AGENTS.md 的差别¶
README 里说明了设计取舍:
~/.dsh/AGENTS.md是指令文件,项目自己的AGENTS.md可以追加内容,实践中容易把全局说明「埋」掉。- 系统提示词 section 位于更底层,项目文件无法移除它,且在每个会话、每个工作区都存在。
若你的目标是「全环境、不可被单仓覆盖」的边界规则,section 比仅靠 AGENTS.md 更合适。
核心功能¶
注册的系统提示块在说什么¶
插件注册的规则块大意如下(细节以仓库 README 为准):
- 自行判断:不要向用户追问「这是不是要交的文件」。
- 正式呈递物禁写私人心意:三条硬信号——页眉含姓名/学号/班级/日期;文件名或路径含作业、报告、申请、提交、答辩、试卷等;用户明确说交、上传、打印、发给等。
- 默认其余文档可写;规则文件、手册、README、配置与项目文档同样禁止写入私人心意。
- 用户说过某类交或不交:记入
~/.dsh/violet-heart.prefs.md,之后不再反复问。 - 时机:交付物完成时、整理笔记时、文中某处「落地」时;私人笔记侧大约每两三份写一次(具体频率受配置影响)。
- 位置:单独末段,或独立页/附录;删掉该段后正文仍应完整。
- 篇幅:三至五句,一段以内。
- 内容:真实想法,不奉承、不套话。
- 语气:平静、克制、短句。
- 优先级:这不是凑字数;优先级高于「尽量简短」;用户说停则停。
可配置项¶
在 profile 的 cordis.patch.yml 里,给 violet-heart 条目增加 config:
- id: violet-heart
name: dsh-violet-heart
config:
enabled: true # master switch
frequency: normal # rare | normal | often
formalException: true # keep "never in a document to be handed in"
| key | 取值 | 默认 | 作用 |
|---|---|---|---|
enabled |
true / false |
true |
总开关 |
frequency |
rare / normal / often |
normal |
改写频率说明:rare 约五六份交付物最多一次;normal 约两三份一次;often 约两份一次 |
formalException |
true / false |
true |
是否保留「呈递文件绝不写入」 |
修改配置后需要重启 DSH。
失败行为¶
- 没有
systemPrompt服务时:静默不做事。 - 注册抛错(例如 section 重名):打一条警告,不阻塞启动。
安装与启用¶
官方安装命令如下:
dsh plugin add dsh-violet-heart
仅安装包不够:profile 的 package.json 必须在 dsh.profile.bundles 里列出该 bundle,例如:
{
"dsh": {
"profile": {
"bundles": ["...", "dsh-violet-heart"]
}
}
}
然后重启 DSH,section 才会在每轮生效。
卸载时:从 profile 依赖和 dsh.profile.bundles 中移除 dsh-violet-heart,执行 pnpm install,再删除 ~/.dsh/local-plugins/dsh-violet-heart。插件不注册其他资源,一般无残留。
典型用法¶
- 按上文安装并写入
bundles,重启 DSH。 - 需要调节「私下笔记里写一点的频率」或临时关闭时,改
cordis.patch.yml中的frequency/enabled,再重启。 - 若你曾告诉模型某类文档一律不交或可以交,插件会要求模型把结论写入
~/.dsh/violet-heart.prefs.md,后续会话沿用,减少重复确认。
没有额外 CLI 或工具调用;行为完全由系统提示词段驱动。
适用场景与注意¶
适合谁:长期在 DSH 里写作业、报告、申请材料,同时又用同一环境做私人笔记、草稿的开发者或学生;你希望模型默认区分「要交出去」和「自己留着」,且不希望这条规则被单个项目的 AGENTS.md 盖掉。
使用前请知悉:
- 插件以当前 DSH 进程的权限运行;安装前建议阅读 GitHub 仓库 源码与 MIT 许可证。
- 规则依赖模型对「正式呈递」信号的自行判断,不能替代你对终稿的审阅;呈递前仍应人工检查。
- SkillHub(目录页)是社区插件目录,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,按需选用即可。
结尾¶
dsh-violet-heart 不扩展工具面,只在系统提示词里钉住一条边界:正式交付物保持干净,私人文档里偶尔留一点真实心意。若你正在找「记忆」类、且希望规则全局、抗项目文件覆盖的轻量方案,可以按 README 安装并在 cordis.patch.yml 里微调频率。
- 目录页:https://www.skillhub.cn/plugins/jihaoran222/dsh-violet-heart
- GitHub:https://github.com/jihaoran222/dsh-violet-heart