DSH Command Quarantine
August 15, 2026 · View on GitHub
背景
Agent 直接执行命令存在真实风险:
- 命令写错可能导致误删、误覆盖
- 通配符展开错误可能影响比预期更大的范围
- 模型可能被 prompt injection 诱导执行恶意命令
本项目在 Agent 与命令行工具之间增加一层强制隔离,让命令不能直接执行,必须先经过审查。
核心目标
- 命令文本的唯一来源是隔离区
- 执行器只接受
command_id,不接受调用方传入的命令字符串 - 审查子 Agent 没有任意执行能力
- 所有命令执行过程完整审计
架构
Agent 想执行命令
→ submit_command 写入隔离区
→ request_review 审查
→ APPROVED:自动执行
→ RISKY:弹窗人工确认
→ REJECTED:返回理由
组成
Host 半
运行在 DSH 服务器进程,负责:
- 拦截命令工具
- 管理隔离区文件
- 确定性审查
- 派发 LLM 审查员
- 执行命令
- 写审计日志
Client 半
运行在浏览器,负责:
- 设置卡片 UI
- CQ 审计页签
- 人工审批弹窗
隔离区
每条命令一个目录,保存:
- 命令原文
- 元数据
- 审查结论
- 执行审计
- 标准输出/错误
审查
- 确定性审查:语法检查 + 静态危险规则
- 可选 LLM 审查:
- 普通审查员:判断命令作用与危险程度
- 项目审查员:额外分析对项目的影响
- 危险命令统一弹窗人工确认
范围
本插件只隔离命令行执行,不接管 DSH 自带的 write / edit 文件工具;文件读写空间由 DSH 权限沙箱负责。