dsh-claim-guard:DeepSeek Harness 文件工具的预写入声明守卫

在使用 DeepSeek Harness (DSH) 处理文件时,开发者有时需要严格控制生成的内容,例如防止输出特定的禁用短语,或确保某些上下文信息始终存在。dsh-claim-guard 插件提供了一种基于规则的预写入检查机制,在 DSH 的原生文件工具执行写入前介入,通过匹配用户定义的规则来决定操作是否执行。

插件定位

这是一个非官方社区项目,由 xuxucodepractice-code 独立开发与维护。它利用 DSH 的原生 ask 决策机制,对文本进行确定性检查,而非直接写入目标文件或进行网络请求。

核心功能

  1. 读取用户维护的 JSON 规则文件。
  2. 检查新文本中是否包含 blocked 短语。
  3. 检查新文本中是否包含 bounded 短语(要求伴随特定上下文)。
  4. 将检查结果返回给 DSH 的原生 ask 决策流程,由 DSH 的审批服务决定是否执行。
  5. 支持对 write、edit、str_replace_editor 工具进行覆盖。

安装与启用

插件目前通过 GitHub Release 的 .tgz 包分发,不支持 npm 安装。

1. 获取与校验

从 GitHub Release 下载 dsh-claim-guard-0.1.0.tgz 及其校验文件。在安装前,建议使用 shasum 校验文件完整性:

shasum -a 256 -c dsh-claim-guard-0.1.0.tgz.sha256

2. 安装插件

使用 dsh plugin 命令安装到指定的 profile(建议使用 claim-guard-smoke 等临时 profile 进行测试):

dsh plugin --profile claim-guard-smoke add ./dsh-claim-guard-0.1.0.tgz

3. 配置

在 DSH 的配置文件中添加插件行。配置项 rulesPath 指向规则文件(默认为 claims.json),include 和 exclude 定义文件匹配模式:

- insert:
    - id: dsh-claim-guard
      name: dsh-claim-guard
      config:
        rulesPath: claims.json
        include: ['**/*.md', '**/*.mdx', '**/*.txt']
        exclude: []

规则文件示例

规则文件必须是严格的 UTF-8 JSON 格式。其结构包含版本、选项、被禁止的短语列表以及有界短语列表:

{
  "version": 1,
  "options": {
    "window": 60,
    "caseSensitive": false
  },
  "blocked": [
    {
      "id": "manuscript-status",
      "match": "submitted",
      "message": "The synthetic demo manuscript is only in preparation."
    }
  ],
  "bounded": [
    {
      "id": "demo-composite-score",
      "match": "42.5%",
      "mustAccompany": ["synthetic benchmark", "合成示例"],
      "message": "This invented demo value must be labelled as synthetic."
    }
  ]
}

工具覆盖与行为

插件对不同工具的检查范围不同:

  • write:检查全部新文本(包括 blocked 和 bounded)。
  • edit 和 str_replace_editor(str_replace / insert):仅检查新片段(仅 blocked)。
  • str_replace_editor(create):检查全部新文本(包括 blocked 和 bounded)。
  • view:不适用。

匹配成功会触发 DSH 的审批流程。如果匹配失败或未匹配,则将控制权交给下游策略。未匹配 bounded 短语的片段不会触发阻断,但下游策略仍可拒绝。

限制与注意事项

  1. 输入限制:输入文本限制为 1,000,000 JavaScript UTF-16 代码单元。
  2. 规则限制:规则文件大小不超过 262,144 字节,总规则数限制为 1 到 256 条。
  3. 绕过风险:Bash、PowerShell、Python、Node 脚本、MCP 工具等可能绕过此插件。插件不检测二进制内容或会话工作区外的路径。
  4. 安全与隐私:插件本身不进行网络请求,不提供遥测数据,也不直接写入目标文件。它以本地进程权限运行,社区插件并非安全边界,安装前应检查源码与许可证。
  5. 配置错误:配置中包含未知字段、显式 null、空值或错误类型会被拒绝。

总结

dsh-claim-guard 提供了一种轻量级的声明式内容检查方案,适合需要在 DSH 代理层面对特定文件内容进行预置检查的场景。通过复用 DSH 的原生审批流程,它保持了与 DSH 生态的一致性,但需注意其非官方属性及可能的绕过风险。

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

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

小夜