DeepSeek Harness 插件:dsh-fs-deny-policy

前言

DeepSeek Harness (DSH) 的核心理念是“一切皆插件”。在构建智能体应用时,沙箱机制通常能限制写入操作,但读取权限往往保留。dsh-fs-deny-policy 插件填补了这一空白,它通过文件系统根目录的拒绝列表,在模型发起读取、搜索或 Shell 调用之前进行拦截,防止模型触碰敏感目录。

插件介绍

这是一个由 vladlearns 维护的 DSH 插件,旨在提供部署级的文件系统访问控制。它不依赖复杂的沙箱配置,而是直接在工具执行前对路径进行校验。

核心功能

  1. 全类型拦截:在 tools/pre-execute 钩子处拦截读取、写入、搜索和 Shell 工具调用。
  2. 根目录拒绝列表:一旦工具调用的路径解析结果落在被拒绝的根目录内,该调用将被阻断。
  3. 前置告知:插件会将拒绝列表作为系统提示的一部分发送给模型,使其在调用前就知晓限制,避免无效对话。

安装与启用

安装前需确保环境满足 Node.js 22.19 或更高版本,并已安装 dsh CLI。

使用 npm 包安装:

npx @deepseek-ai/dsh plugin --profile main add dsh-fs-deny-policy

如需从 GitHub 安装以使用特定版本:

npx @deepseek-ai/dsh plugin --profile main add github:vladlearns/dsh-fs-deny-policy

注意:添加或移除插件需要重启 DSH 进程。

配置方法

配置文件位于 ~/.dsh/profiles/YOUR_PROFILE/cordis.patch.yml。以下示例将禁止访问 SSH 目录和许可证文件:

- id: fs-deny-policy
  config:
    deniedRoots:
      - C:/Users/you/.ssh
      - C:/Users/you/Desktop/license-dongle

注意:
- 路径必须为绝对路径。相对路径或重复条目会在加载时报错。
- 插件安装后再编辑此配置文件,修改会实时生效。
- 若只需禁止写入而允许读取,可设置 fenceReads: false(写入侧始终开启)。

验证配置

安装并配置完成后,使用以下命令验证配置是否正确写入:

npx @deepseek-ai/dsh --profile main --dump-config

适用场景与注意事项

  • 适用场景:需要保护特定敏感目录(如 SSH 密钥、许可证文件、生产配置)不被模型读取或修改的场景。
  • 安全性:该插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证。
  • 局限性:Shell 检查仅读取命令文本,不实际执行 Shell,因此间接路径(如 $VAR、$(...)、重定向符)可能绕过拦截。
  • 防御纵深:建议将其与沙箱配合使用以获得硬 guarantee,而非替代它。

总结

通过在工具执行前建立文件系统围栏,该插件为智能体提供了额外的安全层。更多配置细节可参考插件目录与源码仓库。

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

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

小夜