dsh-baize-rules:在对话开始时注入持久化的行为约束

前言

DeepSeek Harness (DSH) 的设计理念是“一切皆插件”。在实际使用中,经常会遇到需要模型记住长期约束的情况,例如“本次会话必须用中文写注释”或“禁止修改现有的测试用例”。这些要求往往需要跨轮次持久化。

dsh-baize-rules(Baize)是一个 DSH 插件,旨在解决这一问题。它将用户设定的持久化“必须做/禁止做”要求,以纯文本规则的形式,在对话开始时注入到模型请求中。

核心功能

该插件提供了一套完整的规则管理机制:

  1. 三重作用域,全部注入
    规则分为 global(全局,所有会话生效)、session(当前会话)和 project(当前工作目录)三个作用域。无论规则存储在哪里,只要处于激活状态,都会被注入到模型中。

  2. 持久化存储
    所有规则数据均写入 $DSH_HOME(默认为 ~/.dsh),支持跨会话和重启后保留。

  3. 特定性优先
    渲染顺序为 project > session > global。当上下文预算有限时,更具体的规则优先被保留。

  4. 容错机制
    规则文件读取具备容错性。如果某个作用域的文件损坏或被手动编辑破坏,该作用域会被置为空,并给出警告,而不会导致整个对话流程中断。

  5. 去重与长线程保持
    通过 SHA-1 哈希抑制重复注入。在会话生命周期变化(如启动、恢复、清除、压缩)或规则文本更新后,会自动重新发布规则快照,确保长对话中规则不被遗忘。

  6. 安全防护
    规则内容中的特殊字符(如 </system-reminder>)会被转义,防止用户文本意外关闭插件注入的框架。

  7. 统一数据源
    命令行接口(CLI)与 Web UI 共享同一套存储核心,确保状态一致。

  8. 标签与模板
    规则支持标签(如 #frontend),用于 UI 筛选。标签默认不消耗模型上下文预算,除非开启 injectTags 选项。支持将常用规则保存为模板,应用模板会生成内容副本,后续模板修改不影响已应用的规则。

  9. 冲突安全写入
    写入时携带文件版本号,如果检测到文件在他处被修改,写入操作会被拒绝并提示重试,避免数据丢失。

安装与启用

通过 npm 安装插件到指定的 profile(默认 web profile):

dsh plugin --profile web add dsh-baize-rules@0.2.4

如果 DSH 由 pm2 管理,安装后需要重启进程以加载新插件:

pm2 restart dsh

典型用法

插件提供了完整的 CLI 命令集进行管理:

  • 查看当前规则:
    /baize-rules
这等同于列出所有作用域的规则。
  • 添加规则(默认添加到 session 作用域):
    /baize-rules add Write comments in Chinese.
  • 添加全局规则:
    /baize-rules global add Don't delete or rewrite existing tests.
  • 列出特定作用域:
    /baize-rules list project
  • 编辑、禁用、启用规则:
    /baize-rules edit <id>
    /baize-rules disable <id>
    /baize-rules enable <id>
  • 切换默认作用域:
    /baize-rules scope global
  • 清除规则:
    /baize-rules clear session

适用场景与注意

适用场景:
- 个人习惯的强制约束(如语言、格式)。
- 跨项目的通用规则。
- 单个会话内的临时约束。

与 AGENTS.md 的区别:
DSH 自带 @deepseek-ai/dsh-agent-instructions 插件,读取工作区的 AGENTS.md。dsh-baize-rules 与其互补:前者适合项目级、版本控制、团队共享的约定;后者适合个人、跨项目或特定会话的需求。两者都通过 user/message 注入,并共享相同的优先级机制。

重要注意:
- 规则是纯文本,不强制使用 must/mustNot 标记,由内容语言本身表达含义。
- 若当前没有激活的规则,则不会注入任何内容。
- 插件以当前 DSH 进程的权限运行,安装前建议检查源码与许可证。

结语

dsh-baize-rules 为 DSH 用户提供了在对话层面管理模型行为的工具。通过将规则作为持久化的 user/message 注入,它解决了长期约束记忆的问题,使模型行为更加可控。

  • 目录页:https://www.skillhub.cn/plugins/bvcvb/dsh-baize-rules
  • GitHub:https://github.com/bvcvb/dsh-baize-rules
羽毛球分组比赛记分
小程序二维码

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

小夜