dsh 安全指南:沙箱、审批与密钥
DeepSeek Harness 如何保证安全:沙箱三档、审批策略、守卫与超时,以及为什么你的 API Key 永远不会进入会话日志。大白话版 dsh 指南。
最近更新: 2026-08-14
威胁模型,一句话
插件是以智能体权限运行的代码——而智能体能执行命令、改文件、访问网络。安全模型存在的意义,就是让有 bug 的或恶意的插件(以及被哄骗的模型)无法悄无声息地造成破坏。
DeepSeek Harness 用四层来应对:沙箱、审批、守卫、密钥处理。
沙箱:诚实的三个档位
每个会话都跑在进程沙箱里,共三档:
| 档位 | 允许什么 | 什么时候用 |
|---|---|---|
read-only | 能读工作区,不能改 | 代码审查、审计,任何想要零写入的场景 |
workspace-write | 工作区内可读可写,工作区外不可写 | 日常开发——工作的默认形态 |
danger-full-access | 用户账户能碰的一切,智能体都能碰 | 仅在刻意、有人监督的系统级操作时使用 |
隔离尽量用操作系统原生的机制——Linux 上 bwrap/Landlock、macOS 上 Seatbelt、Windows 上 ACL 受限令牌。而且后端如实上报:它承诺的隔离到底有没有生效,一查便知;某个档位没生效,会明明白白显示出来,而不是假装安全。
审批:风险操作先问一声
与沙箱相互独立,风险操作要走审批系统:智能体暂停,你来拍板。什么算"风险"由策略预设调节——从"几乎事事都问"到"只在沙箱外才问",一个设置整体切换。
实用习惯:一开始从严,观察智能体表现稳定后再放宽。一次审批提示只花一次点击;一次无人监督的工作区外写入,可能搭进去一个下午。
守卫与超时
两道自动机制专治失控:
- 超时 —— 卡住的工具调用会被强制中断,而不是让这一轮永远等下去。
- 循环检测 —— 反复无进展的动作(同一条失败命令一遍遍重试)会触发守卫打断循环。
插件还可以在每次工具执行、每次模型请求前后的拦截点上加自己的守卫——这个接缝在插件开发入门里有讲。
你的密钥去了哪里
凭据(API Key、token)走的是与会话日志分离的独立通道:日志里只记录引用,不记录明文。所以分享或导出会话不会泄露密钥。
另外两个值得知道的默认值:
- 会话日志默认不上传,遥测需显式开启;
- 你贴进对话框的内容模型照样看得到——所以别把密钥当消息内容贴进去;工具支持供应商侧鉴权时优先用它。
尝试任何新东西前的检查清单
- 从
read-only开始,看到可信行为后再升到workspace-write。 - 安装前读插件的源码、许可证和权限声明——安装指南把这套动作变成了例行公事。
- 在一次性工作区里试新插件,别拿主力项目试。
- 留意最初的几条审批提示:它们会告诉你插件到底想干什么。
- 出问题就停会话、删掉插件条目、去仓库提 issue。
