DeepSeek Harness 沙箱与安全:三种权限模式
2026-08-16 14:38:18阅读 4
agent 会读写文件、执行命令——这两件事都指向你机器上的真实资源。DSH 的安全核心是一套沙箱 + 权限模式机制:给 agent 划活动边界,越界操作要么被拦、要么先问你。这一篇讲清三种模式怎么选、命令执行和文件访问分别怎么被管住。
三种权限模式:按任务风险选
| 模式 | 文件写入范围 | 适用 |
|---|---|---|
read-only |
不能写 | 只读分析、代码审查、纯问答 |
workspace-write |
限工作区 + 会话临时目录 | 日常开发默认:能改项目文件,动不了系统 |
danger-full-access |
不限制 | 明确需要全盘操作时(如系统维护),风险自担 |
选择思路:能用 read-only 就不给写权限;日常工作用 workspace-write;full-access 只在确有必要时开,用完即关。 别图省事常驻 full-access——agent 被错误指令带偏时,权限就是损失上限。
命令执行怎么被管:沙箱包一层
agent 跑命令不是裸奔,而是经过沙箱包装:命令连同它派生的所有子进程,都在受限环境里运行。平台实现不同,效果一致:
| 平台 | 机制 |
|---|---|
| Linux | bwrap / Landlock |
| macOS | sandbox-exec / Seatbelt |
| Windows | ACL 受限令牌(PowerShell 执行栈) |
超出当前权限模式的命令会报明确错误,而不是静默降级执行。你在界面上看到的 "是否允许执行" 审批弹窗,也是这条链路上的关卡。
文件访问怎么被管:围栏式文件系统
agent 的 read/write/edit 走的是受限文件系统视图:权限模式决定了它能 "看到" 和 "碰到" 哪些路径。
workspace-write下,写入被围在工作区里,越界写操作直接被拒- 拒绝是策略拒绝,不是 bug——agent 会收到 "文件访问被拒" 的明确反馈,然后绕道或向你求助
权限升级:一次一授权
需要更大权限时,DSH 走 "单次批准" 路线:某次具体操作请求更宽模式,向你申请,你批准后仅那次操作生效——不是把整个会话永久提权。这符合最小权限原则:默认收着,需要时临时放开。
实用建议
- 测试目录练手——不熟悉 agent 行为前,工作区指向隔离目录(呼应 第一个任务 里的提醒)
- 给子代理降权——委派只读任务时,用工具过滤限制子代理能力(见 子代理)
- 敏感项目配规则——在 AGENTS.md 写死 "不要改 src/core/",双保险(见 AGENTS.md)
- 审批弹窗别机械点允许——看一眼 agent 要执行什么,那是安全机制在替你把关
常见问题
| 问题 | 解答 |
|---|---|
| agent 说 "文件访问被拒"? | 当前权限模式不够,或路径超出工作区;确认后决定是否提权 |
| Windows 和 Linux 行为一致吗? | 机制不同(ACL vs bwrap),权限语义一致 |
| 审批被拒后能重试吗? | 可以,用更宽权限重新发起同一操作(需你批准) |
| full-access 什么时候开? | 确需系统级操作时单次开;不常驻 |
接下来读什么
- 权限如何配置到会话 → 配置层与 patch:叠加规则详解
- 限制子代理的工具面 → 子代理 Subagent:委派任务给子 Agent
- 常见安全问题排查 → 排错指南:常见错误与修复
← 上一篇:4.4 MCP 集成:stdio 与 HTTP 配置 | 下一篇:5.1 插件机制与 Cordis 入门 →
↑ 返回 教程总目录




