dsh-rules-paths:为 DeepSeek Harness 添加 Claude Code 风格的路径规则注入

在 DeepSeek Harness (DSH) 的生态中,通过插件扩展能力是核心设计理念。处理大型项目时,模型往往难以凭空记忆所有文件的具体规范。dsh-rules-paths 插件实现了类似 Claude Code 的 paths: 规则注入机制:当模型成功读取某个匹配规则的文件时,该规则的正文会被注入到模型的上下文中。它基于 DSH 官方的 @deepseek-ai/dsh-agent-instructions 机制,支持 SHA-1 去重和字节预算控制。

核心功能

  • 预设作用域、可选激活:插件不会在配置文件级别自动挂载,必须通过 agent 预设引用才能激活。系统自带的四个预设(standard / code / minimal / cordis)默认忽略该插件,新会话只有在选择的预设包含相关行时才会生效。
  • 路径规则:规则文件通过 YAML frontmatter 声明 paths: glob 模式。一旦模型成功执行 read 操作匹配到文件,规则正文会在下一个步骤边界被注入。
  • 全局与项目规则:没有 paths 的规则会被视为全局规则,在会话开始时注入;开启 rulesDirProject 后,插件还会扫描项目根目录下的 <projectRoot>/.dsh/rules 和 <projectRoot>/.claude/rules。
  • 去重与预算:同一会话内,内容未变的规则不会重复发送;内容变更时发送 replace 指令。注入的消息受 maxBytes 限制,超出时会截断并报告 budget 消耗情况。

安装与启用

此插件要求 DSH 0.1.0-rc.x (Web profile)。安装分两步:先将包安装到 profile 的 node_modules,然后从预设中激活。

1. 安装插件包

插件发布在 GitHub 仓库,而非 npm registry。使用以下命令安装:

dsh plugin --profile web add git+https://github.com/Temoa/dsh-rules-paths.git

安装后,包会位于 node_modules/@temoa/dsh-rules-paths/,但此时并未激活,因为没有预设引用它。

2. 在预设中激活

由于系统自带预设是只读的,你需要复制一个预设进行编辑。在 Web UI 中打开 Settings → Agent Presets,复制 standard 或其他预设。在复制的预设的 agent.cordis.yml 中添加如下行:

- id: rules-paths
  name: '@temoa/dsh-rules-paths'
  config:
    rulesDir: "~/.dsh/rules"
    rulesDirProject: true

修改完成后重启 Harness。在新建的空白会话中选择该预设,插件即生效。已有内容的会话不支持切换预设。

配置与用法

规则文件结构

规则文件通常位于 ~/.dsh/rules/*.md(可通过 rulesDir 配置)。每个文件对应一条规则,包含 YAML frontmatter 和规则正文。

---
paths:
  - "**/*.dart"
  - "lib/**/*.ts"
description: Dart conventions (optional, metadata only)
---

Rule body: guidance the model follows after reading a matching file.

配置参数

插件支持以下配置项(rulesDirProject 默认为 false):

Key Default Meaning
rulesDir ~/.dsh/rules 用户级规则目录(~ 会展开)
maxBytes 65536 单条注入消息的字节上限
maxSourceBytes 1048576 单个规则文件允许读取的最大字节数
rulesDirProject false 是否扫描项目根目录下的 .dsh/rules 和 .claude/rules

工作原理

插件在模型执行 read 工具成功后,会执行以下逻辑:
1. 扫描配置的规则目录。
2. 将读取的文件路径与规则中的 paths glob 进行匹配(同时匹配绝对路径和相对路径)。
3. 将匹配的规则正文渲染为单条用户角色消息,进行 SHA-1 去重和字节预算检查后,折叠进 agent/pre-step。

注意事项

  • 权限与重启:编辑预设后必须重启 Harness。规则文件本身修改后无需重启,会在下次匹配或全局 reconciliation 时生效。
  • 输入信任度:规则内容被视为不可信输入,仅作为文本处理,不会执行。
  • 生态说明:本插件由社区用户 Temoa 维护,与 DeepSeek 或 SkillHub 无官方隶属关系。

GitHub 仓库

羽毛球分组比赛记分
小程序二维码

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

小夜