DeepSeek Harness 权限规则引擎:dsh-permissions

在 DeepSeek Harness(DSH)的使用场景中,精细控制工具调用和文件访问范围是保障环境安全的关键。DSH 提供了基础的沙箱和审批机制,但在处理特定路径匹配、命令前缀拦截等场景时,往往需要更细粒度的策略。dsh-permissions 插件提供了一个面向 Claude Code 风格的权限规则引擎,通过可视化编辑器管理规则,满足这种精细化的安全控制需求。

插件定位

dsh-permissions 是一个规则引擎插件,为 DeepSeek Harness 提供权限控制能力。它支持四级规则优先级、全局与工作区作用域叠加,以及可视化草稿式编辑。所有规则持久化存储,并在运行时注入系统提示,让模型知晓当前的权限限制。

核心功能

四级规则优先级

规则分为四个优先级,从高到低依次为:hard > deny > ask > allow。
* hard 规则:具有最高优先级,即使会话处于“全访问”审批姿态(策略为 never),hard 规则依然生效且不可豁免。
* deny 规则:直接拦截操作。
* ask 规则:根据会话的审批策略决定是否放行。
* allow 规则:跳过本插件的询问,直接放行。

作用域与匹配

  • 作用域叠加:支持 global 全局规则和 workspace 工作区规则叠加。当两者冲突时,deny 规则永远胜出。
  • 通配符匹配:针对文件类工具(read/write/edit/glob/grep/read_image),支持路径通配符匹配。例如,write(*.pem) 匹配以 .pem 结尾的路径,write(.ssh) 匹配路径中任意位置的 .ssh 片段(不区分大小写,统一处理斜杠)。
  • 非文件工具:非文件工具按首参原文做前缀匹配;grep 工具额外匹配其 path 参数。

持久化与透明度

  • 规则存储于 Harness 的 settings.yaml 中,重启后保留。
  • 生效的规则会被注入到系统提示中(标记为 [active-permission-rules]),模型可见完整规则原文,以便调整行为。

可视化编辑器

插件提供浏览器端的设置页面,支持草稿式编辑。所有修改在点击“保存并应用”前不会生效,用户可以随时“放弃修改”恢复上次保存的状态。内置 16 条安全默认值(hard 规则),保护 .ssh、.aws、.gnupg、AppData、.pem、.key、.env、.htpasswd 目录及 deny: pwsh(rm -rf *) 命令。

安装与启用

使用官方安装器进行安装。

dsh plugin add dsh-permissions

安装完成后,重启应用。在设置页面中会出现“权限”选项,点击即可进入可视化编辑器。

典型用法

通过命令或文件操作工具的拦截示例如下:

拦截命令工具

pwsh: 拦截该工具的全部调用
pwsh(npm run): 首参以 npm run 开头

拦截文件写入

write(*.pem): 文件路径以 .pem 结尾
write(*secret*): 文件路径包含 secret
write(.ssh): 路径任意位置出现 .ssh 片段
write(C:\users\*): 绝对路径前缀

适用场景与注意

适用场景:
* 需要限制 AI 只能操作特定目录或文件类型的开发者。
* 希望拦截危险命令(如 rm -rf *)或特定前缀命令的场景。
* 需要在工作区级别强制执行安全策略的情况。

注意事项:
* 安全边界:插件只会收窄现有沙箱或审批姿态,绝不绕过 DSH 沙箱或 tools.guard 守卫。
* 错误反馈:当规则拦截操作时,会以工具错误的形式呈现给模型(例如 Error: 权限规则拒绝... 或 硬规则拒绝(高于 full access,不可豁免)...)。
* 设置端点:设置页面的路由是插件自建的端点,未暴露在 DSH api-proxy 的 settings 白名单中。
* 草稿机制:所有修改均先进入草稿态,必须手动保存并应用才能对 AI 行为产生实际影响。

总结

dsh-permissions 为 DeepSeek Harness 提供了一套从全局到工作区的、可视化的权限管理方案。它通过严格的优先级设计和通配符匹配,让开发者能够以极低的成本构建细粒度的安全策略,同时保持与 DSH 沙箱机制的兼容性。

GitHub 仓库 | 插件目录

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

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

小夜