前言¶
DeepSeek Harness (DSH) 的内置权限词汇通常仅限制写入操作,读取操作往往缺乏限制。这使得 AI 代理在执行 cat .env 或打开 ~/.ssh/id_rsa 等操作时处于不受控状态。gabrip780/dsh-hidden-paths 作为一个策略守卫插件,旨在通过插件层拦截这些不应被读取的文件和路径,防止 AI 代理意外或恶意读取敏感信息。
核心功能¶
该插件主要具备以下能力:
- 多渠道拦截:阻止 AI 代理通过文件工具(如
read、edit)、Shell 命令(如cat、ls)、搜索选择器以及run_code执行代码来访问隐藏的文件和文件夹。 - 自动脱敏:自动识别并脱敏凭证格式(如 OpenAI/Anthropic 密钥、JWT、GitHub/GitLab 令牌等),在结果中将其标记为
[redacted:kind]。 - 默认保护:默认保护
.env、.ssh、.aws等敏感文件和目录。 - 结果屏蔽:在工具返回的结果中,将隐藏路径的名称统一显示为
[hidden]。 - 双层机制:采用 Layer 1 路径拒绝和 Layer 2 结果过滤。Layer 1 在工具执行前进行路径拒绝;Layer 2 在执行后过滤结果,负责脱敏和路径名称屏蔽。
安装与启用¶
通过官方命令安装插件并激活 profile 层:
dsh plugin --profile web add dsh-hidden-paths
安装后需重启 dsh 服务器以加载新模块。
插件由 bundle 层自动插入配置,不要在配置中手动添加 insert 块。若需调整配置,请使用 id-targeted override 覆盖默认设置。
典型用法¶
在配置文件中添加需要隐藏的路径:
- id: dsh-hidden-paths
config:
hiddenPaths:
- /home/you/private # 隐藏文件夹及其子目录
- /etc/app/master.key # 隐藏单个文件
通过覆盖配置激活插件(不要使用 insert 块):
- id: dsh-hidden-paths
config:
hiddenPaths: []
maskResults: true
hidePathsInResults: true
适用场景与注意¶
该插件适合需要在项目中限制 AI 代理访问敏感目录和文件的开发者。但在使用时需注意以下局限性:
- 策略守卫而非沙箱:这是一个运行在应用层的策略守卫,不是内核沙箱。它无法阻止通过
run_code执行任意代码、硬链接、读取/proc目录或通过环境变量拼接路径等手段绕过保护。 - 配置容错:配置中的字符串会被视为单个条目;相对路径会相对于当前工作目录解析。如果配置无法读取,插件会拒绝所有工具调用。
- 脱敏范围:脱敏规则仅针对明确的令牌格式,不会破坏普通源代码(如
const api_key = ...)的内容。
结语¶
gabrip780/dsh-hidden-paths 是 DeepSeek Harness 生态中用于增强安全性的重要工具。通过配置路径黑名单和默认规则,可以有效降低 AI 代理泄露敏感信息的风险。更多详情请参考 SkillHub 插件目录 或 GitHub 仓库。