TL;DR别把沙箱和审批混为一谈:前者圈地盘,后者设请示。这篇从两层机制讲到一份配置 SOP,用 workspace-write 加 on-failure 起步,再给一个五分钟自测。
来源信号 SOURCES
以下内容整理自社区公开讨论,本页只做拆解与核实,不搬运原帖;观点归属原作者。
事实性知识 FACTS
这些是讨论中被多方印证、或可对照官方文档核实的事实。
- 沙箱与审批是两层独立机制:沙箱约束代理能读写哪些文件,审批决定它在什么时机请求人工确认。
- workspace-write 沙箱在 macOS 上用 Seatbelt 实现,允许写工作区、拦住工作区之外。
--yolo(--dangerously-bypass-approvals-and-sandbox)会同时关掉沙箱与审批两层,官方口径里风险最高。- 已验证行为:on-failure 审批策略下,沙箱失败的命令仍会请求审批——自动档位不等于完全无人值守,GitHub 上有对应记录。
概念性知识 CONCEPTS
社区讨论里的概念不全是事实——每条都标注了它的性质,读之前先看标签。
限制代理文件与系统访问的执行环境层。workspace-write 档允许工作区内写入、挡住区外,macOS 底层靠 Seatbelt。
独立于沙箱的第二层,决定代理何时暂停并请求人工确认;on-failure 表示先执行、失败再请示。
安全文章的通行框架:把只读、工作区内写、全盘访问当作三档风险分别对待。分档思路是共识建议,不是官方强制。
常见误解:以为配了沙箱就不用管审批,或者反过来。两层各管一段,任何一层单独放宽都会改变整体风险结构。
场景 SOP STEP BY STEP
- 01先认两层
沙箱管「能碰什么」,审批管「何时请示」。动配置之前,先在纸上写下本项目的工作区范围和绝不能碰的东西。
- 02默认档起步
日常会话用
codex --full-auto启动。社区与官方文档的通行口径是:它对应 workspace-write 沙箱配 on-failure 审批的组合档。 - 03固定默认值
不想每次记参数,就编辑
~/.codex/config.toml,把 approval_policy 与 sandbox_mode 写成项目默认值。 - 04五分钟自测
让它执行一条必然要写工作区外的命令(比如往仓库外写个临时文件),观察行为:先被沙箱拦下、随后弹审批,说明 on-failure 符合预期。
- 05定红线
列出不放宽清单:密钥与凭据、生产配置、全局安装、对外的不可逆操作(发布、删除)一律保持人工。
- 06会内确认
开工时看一眼界面显示的当前档位;拿不准本版本支持哪些切换命令,输入
/help查。 - 07写进团队约定
把推荐档位与红线清单写进 README 或 AGENTS.md,让规则跟着仓库走,不跟着人的记性走。
看完之后 NEXT
想知道今天的重置判定?回到 首页实时雷达。