dsh-violet-heart:用系统提示词划清「交出去」与「留给自己」的边界

前言

在 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 为准):

  1. 自行判断:不要向用户追问「这是不是要交的文件」。
  2. 正式呈递物禁写私人心意:三条硬信号——页眉含姓名/学号/班级/日期;文件名或路径含作业、报告、申请、提交、答辩、试卷等;用户明确说交、上传、打印、发给等。
  3. 默认其余文档可写;规则文件、手册、README、配置与项目文档同样禁止写入私人心意。
  4. 用户说过某类交或不交:记入 ~/.dsh/violet-heart.prefs.md,之后不再反复问。
  5. 时机:交付物完成时、整理笔记时、文中某处「落地」时;私人笔记侧大约每两三份写一次(具体频率受配置影响)。
  6. 位置:单独末段,或独立页/附录;删掉该段后正文仍应完整。
  7. 篇幅:三至五句,一段以内。
  8. 内容:真实想法,不奉承、不套话。
  9. 语气:平静、克制、短句。
  10. 优先级:这不是凑字数;优先级高于「尽量简短」;用户说停则停。

可配置项

在 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。插件不注册其他资源,一般无残留。

典型用法

  1. 按上文安装并写入 bundles,重启 DSH。
  2. 需要调节「私下笔记里写一点的频率」或临时关闭时,改 cordis.patch.yml 中的 frequency / enabled,再重启。
  3. 若你曾告诉模型某类文档一律不交或可以交,插件会要求模型把结论写入 ~/.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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye