前言¶
在 DeepSeek Harness(DSH)的插件机制下,智能体可以调用 shell、SQL、文件写入等工具。如果这些调用直接执行,危险操作和凭证泄露会依赖底层环境兜底。lonelymoon87/dsh-guardian 提供执行前策略、执行后 canonical 输出脱敏,以及只读安全审查 skill。
下面介绍它的定位、核心能力、安装方式、配置示例,以及使用时需要注意的边界。
这是什么¶
dsh-guardian 是 DSH 插件,仓库地址为 lonelymoon87/dsh-guardian,许可证为 MIT。
它检查工具名称、参数、canonical 结果和渲染输出,可以拒绝调用或请求审批,但从不自己执行所请求操作。它不是进程沙箱、授权系统、数据防泄漏服务,也不替代其下挂载的 provider 策略。
核心能力¶
执行前策略¶
dsh-guardian 提供 tools/pre-execute 瀑布策略,将危险 shell、SQL 和结构化文件写入参数分类为 deny、ask 或 unchanged。
主要能力包括:
- 提供
standard、strict、permissive三种 profile,在保留不可协商 deny 规则的同时提供不同审批级别。 - 支持自定义正则表达式规则,用于添加部署相关的
deny或ask决定。 - Guardian 始终通过
next()委派;如果其他策略监听器返回决定,最严格结果胜出:deny高于ask,ask高于allow。
内置规则包括:
- deny:递归强制删除根目录或家目录、网络响应管道进入 shell、向
/dev原始写入、向/etc写入。 - ask:
force push、破坏性 SQL 等请求。
执行后脱敏¶
dsh-guardian 提供 tools/post-execute 瀑布,从 canonical JSON 结果、失败、渲染文本和 block feedback 中删除常见凭证。
具体行为如下:
- 内置删除模式覆盖 AWS access-key ID、GitHub token、
sk-API key、PEM 私钥块和常见凭证赋值。 - 连续文本块作为一条流扫描,避免凭证跨块拆分绕过删除。
- 当 canonical JSON 值存在时,删除应用于该值,并保留数组、对象、数字、布尔值和 null。
- 日志只包含工具名称、匹配计数和删除标签。
安全审查¶
/security-review 会加载内置的只读安全审查 skill。
安装与升级¶
插件支持 DSH >=0.1.0-rc.6 <0.2.0 插件 API 和 Node.js ^22.19 || >=24。v0.1.3 在 DSH 0.1.0-rc.8 和 0.1.1-rc.1 上测试,并保留 rc.6 兼容 peer 范围。
预构建包通过 GitHub Releases 分发;未加作用域 npm 名称由其他发布者拥有,因此该项目不发布到该名称。
安装预构建发布包:
dsh plugin --profile web add https://github.com/lonelymoon87/dsh-guardian/releases/download/v0.1.3/dsh-guardian-0.1.3.tgz
这个 release tarball 是预构建的,不需要额外构建允许。
固定版本源码安装:
dsh plugin --profile web add github:lonelymoon87/dsh-guardian#v0.1.3
源码安装会运行 prepare 构建。pnpm 10 和更高版本会拒绝它,直到 profile allowlist 了失败命令打印的精确 package key;按提示 allowlist 后,重新运行相同的 dsh plugin add 命令。
如果目标是 one-shot agent profile,可以把 web 替换为 headless。
升级时重新运行 dsh plugin add,并使用较新的 release URL。
卸载:
dsh plugin --profile web remove dsh-guardian
配置示例¶
配置使用 YAML 数组,示例如下:
- id: guardian
name: dsh-guardian
config:
profile: standard
rules:
- name: production-host
pattern: production\\.internal
action: ask
reason: production target requires review
redaction:
enabled: true
patterns:
- label: internal-token
pattern: INT_[A-Z0-9]{12}
正则表达式 flags 只能包含 i、m、s、u。无效表达式和 label 会在插件加载时失败。
适用场景与注意¶
dsh-guardian 适合在 DSH 环境中需要约束危险工具调用、避免常见凭证进入模型可见输出的开发者。安装前应先检查源码和 MIT 许可证,并确认当前 DSH 进程权限是否符合预期。
需要注意:
- 它是 MVP,不是进程沙箱、授权系统、数据防泄漏服务,也不是替代其下挂载的 provider 策略。
- 它不读取凭证存储、不发起网络请求、不写工作区文件、不传输遥测、不持久化自定义会话事件。
- 插件不追加自定义会话事件,因为当前外部插件 API 未暴露可忽略事件信封;发出必需的未知事件可能使卸载后旧会话不可读。
- 它检查工具名称、参数、canonical 结果和渲染输出,可以拒绝调用或请求审批,但从不自己执行所请求操作。
- 源码安装可能触发 pnpm 10 和更高版本的构建命令 allowlist 流程。
结尾¶
经过上面的安装和配置,dsh-guardian 为 DSH 提供了一组运行时危险操作策略、canonical 输出脱敏和只读安全审查入口。它适合与现有 provider 策略一起使用,而不是替代底层安全机制。
GitHub 仓库:
- https://github.com/lonelymoon87/dsh-guardian