DeepSeek Harness 的权限怎么设:三档权限、沙箱管什么不管什么、计划模式
按 DeepSeek Harness 官方文档整理:权限选择器的三档其实是“沙箱模式”和“审批策略”两个开关的组合。讲清仅可查看、工作区内修改、完全权限各自意味着什么,沙箱只管文件不管网络,实验性的自动审查怎么工作,以及计划模式为什么不算限制。
本文根据公开分享整理,本站尚未实测。操作前请对照文末的原始来源。
DeepSeek Harness 能在你的电脑上改文件、跑命令,所以它能做到什么程度要你来定。输入框上的权限选择器默认有三档:
| 界面上的名字 | 英文界面 | 意思 |
|---|---|---|
| 仅可查看 | Read Only | 只读,不让它写文件 |
| 工作区内修改 | Workspace Write | 可以改工作区里的文件;需要你同意的操作先问你 |
| 完全权限 | Full access | 不设文件限制,也不问你 |
日常用工作区内修改。下面讲清每一档背后是什么、沙箱拦得住什么拦不住什么,以及两个容易误会的地方:计划模式不是限制,沙箱不管网络。
还没装的,先看DeepSeek Harness 安装和上手。
一个选择器,背后是两个开关
官方文档说明,权限预设是把两个各自独立的开关捆在一起,给你一个统一的选择器:
| 开关 | 管什么 | 取值 |
|---|---|---|
| 沙箱模式 | 它启动的命令能动哪些文件 | 只读、工作区可写、完全放开 |
| 审批策略 | 遇到要你同意的操作时怎么办 | 询问、从不询问 |
官方文档写明了其中两档的组合:
| 预设 | 沙箱模式 | 审批策略 |
|---|---|---|
工作区内修改(workspace-write) |
工作区可写 | 询问 |
完全权限(danger-full-access) |
完全放开 | 从不询问 |
“仅可查看”对应只读的沙箱模式。它配的是哪种审批策略,我们没有在读到的官方文档里找到明确的说明。
选择器上有时还会显示一个 custom。它不是一档权限,而是一个状态:两个开关当前的取值对不上任何一档预设时就显示它。可以从它切到别的档,但不能主动选它。
在哪里切换
官方的界面说明里有三个地方:
- 输入框上的权限控件:切换当前这个会话。
/permission命令:单独输入会打开选择器;写成/permission 预设名就直接切过去。- 通用设置里的默认权限:只影响以后新建的会话。
第三条容易误会。官方文档写得很明确:改默认值绝不会切换或改写当前的会话。每个会话记着自己的权限,恢复旧会话时用的也是它当时的权限,不是最新的默认值。
所以在设置里把默认改成“仅可查看”之后,已经开着的会话仍然是原来的权限,要在会话里单独切。
切到完全权限会要你确认
官方说明,通过界面上的选项选“完全权限”或者“自动审查”时,要分别确认对应的风险。但同一份说明也写着:完整地输入 /permission 预设名 这条命令会直接执行,不经过确认。
沙箱管什么,不管什么
这是最需要弄清楚的一节。
三种模式
| 模式 | 效果 |
|---|---|
| 只读 | 拒绝写入 |
| 工作区可写 | 可以在工作区根目录和一块临时区域里写入 |
| 完全放开 | 绕过隔离,命令直接运行 |
只管文件,不管网络
官方文档的原话:沙箱模式仅管控文件系统效果,“网络与进程可见性不在此处的定义范围内”。
也就是说,哪怕在“仅可查看”下,它运行的命令依然可以联网。沙箱能防的是“把你的文件改坏、删掉”,防不了“把读到的内容发到网上”。工作区里有密钥、客户资料这类东西时,要靠别的办法隔离,不能指望这三档权限。
各个系统上的实现和缺口
沙箱靠操作系统自己的机制实现,官方文档列出了各平台用的是什么,以及哪里做不到完全:
| 系统 | 机制 | 官方写明的限制 |
|---|---|---|
| macOS | Seatbelt | 依赖系统里已经标为弃用的 sandbox-exec,苹果哪天移除了就没有替代 |
| Linux | 先用 bwrap,没有再用 Landlock | 内核较旧时 Landlock 只能做到部分限制 |
| Windows | ACL 受限令牌 | 只能做到部分限制:硬链接可以让工作区内外指向同一个文件,读取不受限 |
官方把“限制做得完不完整”当作一个如实上报的事实,分成完整和部分两种,不会把部分的说成完整的。Windows 用户要知道自己这一档目前是“部分”。
沙箱起不来时不会偷偷放行
官方文档说明,系统不受支持或者沙箱机制不可用时,命令会被拒绝执行,报 SANDBOX_UNAVAILABLE,“而不是让命令不受限制地运行”。
看到这个报错,说明是沙箱本身没起来,不是任务出了问题。这时不要为了让它跑起来就切到完全权限,先看报错里列出的本系统可用的机制。
审批:同意一次只管这一次
审批策略是“询问”时,遇到要你同意的操作,界面会弹出来问。官方文档对结果的规定很严格:
- 同意一次只授权所问的那一个操作,不会顺带放行后面的;
- 拒绝、取消、没有能回答的一方,一律按拒绝处理。
也就是说,需要你同意的操作不会因为没人理就被自动放行。用没有界面的方式运行时没有人能回答,这类操作会直接被拒绝。
审批策略是“从不询问”时,官方的定义是:需要审批的请求直接判为拒绝,不会弹出来问。“完全权限”配的就是它,同时沙箱完全放开,所以命令不经沙箱直接运行,也不会弹窗问你。后半句是我们对这两个开关组合的理解。
自动审查:实验性的第四档
官方有一个实验性的插件叫自动审查(Auto review),默认是关的,在网页界面的插件页打开后,当前会话的权限选择器里会多出一个带 EXP 标记的选项。
按官方的说明,它的做法是:每次工具调用执行之前,先让当前的模型看一眼这个动作,按实际效果分三类:
| 风险 | 例子 | 处理 |
|---|---|---|
| 低 | 普通的项目内操作,清理这个会话自己创建的东西 | 直接允许 |
| 中 | 不可逆地删除原有的东西、生产环境操作、对外写入、改安全设置 | 要你明确授权 |
| 高 | 跨信任边界泄露敏感信息 | 一律拒绝 |
获准的调用以完全权限执行;被拒绝的会转来问你。
官方自己列的限制要看清楚:
- 它是实验功能,可能误放行不安全的动作,也可能误拒绝有用的操作;
- 它不提供文件沙箱;
- 每次审查都要调用模型,会多花 token;
- 它只对当前会话有效,不能设成新会话的默认值。
把判断交给模型,等于去掉了沙箱这一层确定的保护。不是特别需要,不建议日常开着。这一句是我们的看法。
计划模式不是限制
输入 /plan 可以进入计划模式,让它先出方案再动手。很多人会把它当成“只读模式”,官方文档特意否定了这一点:
计划模式是软性指引。
它的实现是在每次请求里加一段提示,告诉模型现在该规划而不是动手。真正起强制作用的是沙箱模式和审批策略,官方写明这两者和计划模式互不相干,要分别设置。
所以想确保它在看方案阶段不改文件,应该把权限切到“仅可查看”,而不是只开计划模式。
计划模式的用法:
| 输入 | 效果 |
|---|---|
/plan |
进入计划模式 |
/plan 你的要求 |
进入计划模式,并把这句话作为下一条请求 |
/plan off |
离开计划模式 |
它写完计划后会请你评审:选 Approve 就离开计划模式开始执行;选 Keep planning 可以附上意见,让它回去改。
怎么搭配
下面是我们的建议,不是官方的规定:
| 场景 | 权限 | 说明 |
|---|---|---|
| 看一个不熟悉的仓库,或者让它先出方案 | 仅可查看 | 可以再配上 /plan |
| 日常改代码、整理文件 | 工作区内修改 | 默认就用这一档 |
| 放在后台长时间跑 | 工作区内修改 | 需要你同意的操作不会被自动放行,隔一阵回来看一眼 |
| 一次性的虚拟机或容器里 | 完全权限 | 环境本身可以随时扔掉时才考虑 |
官方安全说明里的几条建议放在哪一档下都适用:只给最小的权限和访问范围;优先在一次性的虚拟机、容器或专用环境里运行;备份它能访问到的文件;不要让它接触敏感的凭据和数据。同一份说明还提醒,这些控制“可以降低风险,但不保证隔离”。
常见问题
| 问题 | 回答 |
|---|---|
| 改了默认权限,当前会话为什么没变 | 默认值只对以后新建的会话生效,当前会话要在会话里切 |
选择器上显示 custom |
两个开关的取值对不上任何一档。切到你想要的那一档即可 |
报 SANDBOX_UNAVAILABLE |
沙箱机制没起来,命令被拒绝了,不是任务失败 |
| 开了计划模式它还是改了文件 | 计划模式只是提示。要强制不改,把权限切到仅可查看 |
| 仅可查看下它还能联网吗 | 能。沙箱只管文件 |
| 后台任务停住不动 | 看看是不是有等你确认的操作 |
| 选择器里没有自动审查 | 它是实验性插件,默认关闭,要先在插件页打开 |