所属教程:OpenAI Codex CLI 从入门到大师级完整教程 预计阅读:22 分钟
审批策略(approval policy)回答"哪些动作需要先经你批准",沙箱(sandbox)回答"技术上允许碰到哪里";两者配合构成 Codex 的安全边界。本节建立三档审批策略的选择直觉,并说明它与沙箱如何协同。涉及具体配置键名与可选值时,以当前版本官方文档为准。
| 策略档 | 含义 | 适用场景 | 风险提示 |
|---|---|---|---|
untrusted | 偏保守,多数越界动作先征求批准 | 陌生仓库、第一次接手、敏感或高风险项目 | 效率略低,但误操作概率最小,新手推荐起步档 |
on-request | 常规开发档,越过既定边界的动作才请求批准 | 熟悉、低风险、已纳入 Git 的日常项目 | 需对请求保持审阅,不能盲目一路同意 |
never | 不再主动请求批准,按既有授权自动执行 | 受控的脚本、CI 自动化等无人值守环境 | 不适合人工在陌生项目直接使用,误放动作缺少人工拦截 |
不要在不熟悉的代码库、含密钥或生产逻辑的项目中使用自动放行策略;never 应限定在隔离、可回滚、已预检的自动化环境,而不是日常交互开发的默认选择。
| 维度 | 审批策略 | 沙箱 |
|---|---|---|
| 回答的问题 | 是否需要人点头 | 物理上允许读写范围与网络边界 |
| 常见姿态 | untrusted / on-request / never | 只读 read-only、工作区可写 workspace-write 等 |
| 只读探索 | 搭配宽松确认即可 | 优先只读,禁止写入与越权访问 |
| 常规实现 | on-request 类常规档 | 工作区可写,限制在项目目录内 |
| 无人值守 | 受控自动执行 | 同时收紧可写目录与网络,最小授权 |
原则是沙箱先把范围圈小,审批再决定边界动作是否要人确认;两者叠加比单用任一手段更可靠。官方安全实践还会限定允许的沙箱模式集合与可写根目录,避免代理触及项目外路径。
长期偏好可写入用户级配置文件(通常位于用户主目录的 .codex/config.toml,路径以当前版本文档为准),按项目覆盖。示意写法(键名与取值以官方文档为准,勿照抄过时示例):
# 示意:固定为常规开发审批档;具体键名/可选值以官方当前文档为准
approval_policy = "on-request"
sandbox_mode = "workspace-write"
| 任务情况 | 推荐姿态 |
|---|---|
| 只读调研、读代码、写说明 | 只读沙箱 + 保守审批 |
| 熟悉项目的小功能、重构、补测试 | 工作区可写 + on-request 类常规档,逐项审阅请求 |
| 升级依赖、跑安装、联网取数 | 逐动作确认,先看命令与目标来源 |
| CI / 脚本化批量任务 | 隔离环境、最小授权、受控自动档 + 完整日志与回退预案 |
| 问题 | 处理建议 |
|---|---|
| 如何判断当前处于哪一档 | 以会话中的审批提示行为与配置生效情况判断;频繁弹窗多为保守档,几乎不弹窗需警惕是否过于宽松。 |
| 一路点"允许"是否安全 | 不安全:每次批准都应核对对象、性质与必要性;默认从保守档起步更稳。 |
| 自动化任务为何还要限制沙箱 | 无人值守没有人工兜底,必须靠沙箱限定可写目录、网络与命令范围,失败可回退。 |
| 配置项记不准怎么办 | 以 codex --help、当前官方配置文档为准;不在教程里硬背可能过时的键名。 |
第 2 章完成了界面反馈解读、计划模式与审批/沙箱安全边界的学习。第 3 章进入第一个完整编码任务:如何把任务讲清楚、如何复核 diff 与测试、以及新手常见问题与排错入口。
← 上一节:计划模式:先调研、出方案,再动手改代码 下一节:向 Codex 下达清晰任务的方法 →