在 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(未识别,默认从严)四个等级。 - 执行后验证:每次调用结束后进行两层核对:
- 授权一致性:比对 guard 当时做出的决策,防止插件内部逻辑导致“判了拒绝却执行成功”。
- 泄漏扫描:检查结果中是否包含受保护路径,按
redact(替换为占位符)、audit(仅留痕)或block(整条阻断)处理。
- 循环纠正:同一 Agent 反复命中同一规则时,拒绝文案会追加策略提示,防止无意义的重试。
- 自我防护:规则文件、审计日志、历史文件对当前 Agent 隐藏,防止 Agent 自行修改墙或查看审计。
3. 规则管理与运维¶
- 护栏评估:通过
/wall report统计拦截/放行次数、审批结果、bypass 情况及漏报风险。 - 规则体检:通过
/wall lint检测规则是否存在覆盖过宽、工具名不可达、路径重复等问题。 - 可回滚:通过
/wall history和/wall rollback管理规则修订历史,支持回滚操作。
安装与启用¶
本插件非独立程序,必须安装在 DSH 宿主环境中。
- 前置条件:
- 已安装 DSH 宿主(DSH Desktop 或官方源码版
dsh)。 - Node.js 版本 >= 22.0.0。
- 已安装 DSH 宿主(DSH Desktop 或官方源码版
- 安装命令:
使用以下命令将插件添加到指定 profile:
dsh plugin --profile <profile> add dsh-vault-wall
若网络环境不稳定(如镜像不同步),建议下载 tgz 文件后安装:
dsh plugin --profile <profile> add ./dsh-vault-wall-0.4.0.tgz
- 生效:
安装完成后重启 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 的操作边界。