前言¶
在 DeepSeek Harness (DSH) 的开发中,沙箱权限升级(如执行 Shell 命令、修改文件)是必须谨慎处理的环节。通常需要手动审批或编写复杂的规则逻辑。dsh-llm-approve-for-me 插件通过内置的审查角色,利用 LLM 自动判定这些权限请求,减少人工干预的繁琐,同时保持决策的灵活性。
插件定位¶
这是一个 DeepSeek Harness 插件,通过内置审查角色自动判定沙箱权限升级。由用户 alaxrpg 维护,遵循 MIT 许可证。它解决了“如何在自动化流程中安全地处理沙箱权限请求”的问题,将决策权交给配置的 LLM 模型,而非硬编码规则。
核心功能¶
- 自动审查权限升级:拦截所有带
sandbox_permissions的工具调用,包括 Shell/PowerShell 命令、write/edit文件写入等。 - 专用审查角色:使用内置的
REVIEWER_ROLE。该角色无工具、无会话、单请求快速裁决,不借用环境中的通用子代理模板。 - 轻量级执行:不创建 Agent 或 Session,不污染子代理列表。每次授权仅返回原生的
allowed-once一次性授权。 - 可视化面板:在 DSH Web 会话顶部提供“帮我批准”面板。
- History:按 session 隔离展示最近 100 条审批记录(包含请求目标、理由、权限、审查模型、AI 结论与结果)。
- Settings:可视化调整审查模型参数。
- 模型配置:支持配置审查模型的 Provider、Model、Timeout 和 Max tokens。
安装与启用¶
在 DSH profile 中执行以下命令安装:
dsh plugin --profile web add github:alaxrpg/dsh-llm-approve-for-me
安装完成后重启 DSH Web。插件会自动添加“帮我批准”权限预设到会话中(可手动在设置页覆盖)。点击会话顶部的“帮我批准”即可进入审批面板。
典型用法¶
1. 配置审查模型¶
安装并重启后,进入“帮我批准”面板的 Settings 页面。建议将审查模型设置为快速非推理模型以提升响应速度。
| 设置项 | 默认值 | 范围 | 说明 |
|---|---|---|---|
| Reviewer provider | 空(继承主会话) | 任意 provider 名 | 留空则继承提出请求的会话配置 |
| Reviewer model | 空(继承主会话) | 任意 model 名 | 推荐指向快速非推理模型 |
| Timeout | 300 秒 | 1–600 秒 | 推理模型的思考时间计入超时 |
| Max tokens | 16384 | 256–65536 | 含推理过程 |
配置保存后会写入 ~/.dsh/llm-approve-for-me.settings.json,无需重启立即生效。
2. 审查协议¶
插件通过 DSH llm 服务向内置角色发起请求,要求其返回严格的 JSON 格式:
{"decision":"allow","rationale":"原因"}
decision:仅支持allow、deny或ask。rationale:必须使用简体中文输出一句话理由。
注意事项与配置¶
- 严格 JSON 格式:审查模型必须返回标准 JSON。如果输出包含 Markdown code fence 或非 JSON 响应,系统会自动回落到人工审批。
- 异常处理:审查超时、取消、模型调用异常或输出无效时,系统会回落人工审批并记录具体原因(同样为中文)。
- 目标提取限制:对于无法提取审查目标的请求(如某些带升级参数的工具),系统会交回人工审批。
- 内容截断:审查摘要会自动截断至 2000 字符,防止大文件刷屏。
- 优先级规则:设置文件
~/.dsh/llm-approve-for-me.settings.的优先级高于静态配置。 - 非安全产品:本插件非安全产品,不能替代人工授权、最小权限原则、数据备份或隔离措施。它的作用是将授权判断交给 LLM,而非作为防火墙使用。
结语¶
dsh-llm-approve-for-me 为 DeepSeek Harness 用户提供了一个基于 LLM 的沙箱权限审查方案。通过配置和监控审批历史,可以在自动化与安全性之间找到平衡。更多细节可参考其 GitHub 仓库。