dsh-vault-wall:让 DSH Agent 无法感知或操作指定敏感路径的隔离墙插件

在 DSH(DeepSeek Harness)环境中,Agent 通常具备对本地文件系统的读写权限。当需要操作敏感路径(如密钥、配置文件或私有数据)时,单纯依靠提示词无法保证安全。dsh-vault-wall 插件通过拦截层机制,让 Agent 在面对特定路径时无法感知文件存在,或直接拒绝访问,或在访问前通过人工审批。

插件概况

这是一个运行在 DSH 宿主上的客户端插件,由 lxwallac 维护,采用 MIT 许可证。

  • 核心定位:为 DSH 的 agent 提供路径隔离能力,使其感知不到、无法操作指定敏感路径。
  • 依赖要求:需要 DSH 宿主环境(DSH Desktop 或官方源码版 dsh),以及 Node.js >= 22.0.0。

核心功能

插件通过配置规则集对文件路径进行分级管控,主要包含以下能力:

1. 三种防护模式

  • 隐藏模式:命中规则的路径对 Agent 伪装为不存在(not-found),连路径名都不透露。
  • 拒绝模式:直接报错并注明该处受规则保护,Agent 会明确知道不应触碰该区域。
  • 询问模式:命中后不直接拒绝,而是通过官方审批通道弹出确认框。Agent 会看到路径、规则、工具及风险等级,只有人工点击“允许”后才放行。若没有审批通道或用户拒绝,则转为明确拒绝。

2. 风险与验证机制

  • 工具风险评级:内置 low(只读)、medium(写入)、high(执行/不可逆)、unknown(未识别,默认从严)四个等级。
  • 执行后验证:每次调用结束后进行两层核对:
    1. 授权一致性:比对 guard 当时做出的决策,防止插件内部逻辑导致“判了拒绝却执行成功”。
    2. 泄漏扫描:检查结果中是否包含受保护路径,按 redact(替换为占位符)、audit(仅留痕)或 block(整条阻断)处理。
  • 循环纠正:同一 Agent 反复命中同一规则时,拒绝文案会追加策略提示,防止无意义的重试。
  • 自我防护:规则文件、审计日志、历史文件对当前 Agent 隐藏,防止 Agent 自行修改墙或查看审计。

3. 规则管理与运维

  • 护栏评估:通过 /wall report 统计拦截/放行次数、审批结果、bypass 情况及漏报风险。
  • 规则体检:通过 /wall lint 检测规则是否存在覆盖过宽、工具名不可达、路径重复等问题。
  • 可回滚:通过 /wall history 和 /wall rollback 管理规则修订历史,支持回滚操作。

安装与启用

本插件非独立程序,必须安装在 DSH 宿主环境中。

  1. 前置条件:
    • 已安装 DSH 宿主(DSH Desktop 或官方源码版 dsh)。
    • Node.js 版本 >= 22.0.0。
  2. 安装命令:
    使用以下命令将插件添加到指定 profile:
    dsh plugin --profile <profile> add dsh-vault-wall
若网络环境不稳定(如镜像不同步),建议下载 tgz 文件后安装:
    dsh plugin --profile <profile> add ./dsh-vault-wall-0.4.0.tgz
  1. 生效:
    安装完成后重启 DSH,在设置页的“保险区 Vault Wall”中配置规则。

典型用法与示例

规则配置

在设置页以 JSON 编辑规则,可指定路径、模式和参数:

{
  "version": 1,
  "rules": [
    {
      "id": "keys",
      "mode": "hidden",
      "paths": ["C:\\keys"]
    },
    {
      "id": "archive-ro",
      "mode": "deny",
      "paths": ["C:\\archive"],
      "tools": ["write", "edit", "bash"]
    },
    {
      "id": "wallet-ask",
      "mode": "ask",
      "paths": ["C:\\wallet"],
      "minRisk": "medium",
      "remember": true,
      "borrowTtlMs": 600000
    }
  ]
}

命令行操作示例

在 DSH 会话中,可使用 /wall 子命令进行管理:

# 测试某路径的判定结果(不消耗借出、不改状态)
/wall test C:\work\repo\**\.env read

# 查看护栏评估报告
/wall report

# 检查规则是否有误
/wall lint

# 临时借出(授权整棵目录,默认 10 分钟)
/wall borrow add C:\Users\you\secret-box

运行效果

  • 隐藏模式:Agent 读取密钥会得到 Error: cannot read "C:\keys\id_ed25519": not found。
  • 拒绝模式:Agent 删除归档目录会得到 Error: [vault-wall] access to "C:\archive" is denied by rule "archive-ro"。
  • 询问模式:Agent 写入钱包会弹出审批框,显示风险等级和工具信息,需人工确认。

总结

dsh-vault-wall 通过在 DSH 架构内构建隔离层,解决了 Agent 在本地文件系统中的安全越界问题。它结合了显式拦截、人工审批和事后验证,能够有效防止敏感数据泄露。配合 /wall 系列命令,运维人员可以清晰地掌握 Agent 的操作边界。

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

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

小夜