在 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 无官方隶属关系。