# Codex 为什么总要我批准？看懂沙盒、审批策略和自动审核

分清 Codex 的操作边界、审批时机和审核人，理解 workspace-write 的读取权限，以及不发起审批为什么不等于自动放行。

作者：Lennon

栏目：AI 工具使用

原文：https://lennondu.com/articles/codex-sandbox-and-approvals/

发布日期：2026-11-10

## 为什么有些操作会停下来等批准？

使用 Codex 时，修改项目里的文件往往可以直接完成，但写入另一个目录、访问受限网络时，又可能停下来要求批准。开启自动审核后，也仍然会遇到需要自己处理的授权。

理解这些提示，需要分清三个设置：

| 设置 | 解决什么问题 |
| --- | --- |
| 沙盒权限 | Codex 可以在哪些技术边界内操作？ |
| 审批策略 | 什么时候可以发起审批？ |
| 审核人 | 需要审批时，由谁决定是否放行？ |

## 沙盒：限制文件和网络访问

沙盒给 Codex 执行的命令划定文件和网络访问边界。这些限制通过操作系统机制实施，运行脚本、Git 或测试命令时同样适用。

常见的沙盒模式有三种：

- **只读（read-only）**：允许在读取范围内查看文件；沙盒内不能修改文件。
- **工作空间写入（workspace-write）**：允许在工作空间、额外授权的可写目录及允许的临时目录内读写和运行命令。部分配置目录仍可能受只读保护。
- **完整访问（danger-full-access）**：移除 Codex 的沙盒限制，但操作系统本身的权限、应用授权和组织管理要求仍然适用。

沙盒能缩小误操作的影响范围，但允许写入的目录内，仍可能发生误删或错误修改。它不能替代备份和版本管理。[官方沙盒说明](https://learn.chatgpt.com/docs/sandboxing)

### workspace-write 的读取权限怎么控制？

**workspace-write 不能理解成“只能读写工作空间”。它主要限定写入范围，读取范围要单独看实际文件系统策略。**

在支持权限配置的客户端中，目录可以设为：

- `read`：可以读取文件、列出目录，不能修改。
- `write`：可以读取和修改，包括创建、重命名和删除。
- `deny`：禁止读取和写入。

如果策略给文件系统根目录 `:root` 配置了 `read`，Codex 就可能读取工作空间外的文件，前提是没有更具体的拒绝规则，且操作系统允许。更具体的路径规则优先；同一路径的冲突规则中，`deny` 优先。

要把读取也限制在项目内，可以采用官方的 `workspace-only` 权限配置思路：默认拒绝整个文件系统，再保留工作空间权限和运行工具所需的最小读取范围。临时目录是否开放也要明确设置。具体配置见[官方权限文档](https://learn.chatgpt.com/docs/permissions#common-profiles)。

因此，判断 Codex 能读什么，要看当前会话实际生效的目录权限，以及操作系统的文件权限和隐私授权。网络访问另有控制；网页搜索、插件和浏览器也各有权限边界。[安全与审批说明](https://learn.chatgpt.com/docs/agent-approvals-security)

## 审批策略：不询问不等于自动放行

当操作需要额外权限时，审批策略决定如何处理审批请求。常见设置包括：

- **按需请求（on-request）**：Agent 通常在沙盒内工作，需要越过边界或触发其他审批规则时，可以请求批准。
- **从不请求（never）**：不弹出审批请求。已有权限内的操作继续执行，需要额外权限的操作可能直接失败。
- **细粒度配置（granular）**：按类别允许发起审批或自动拒绝，例如分别处理沙盒提权、命令规则和工具授权请求。

**不发起审批，不代表获得权限。**

保持沙盒限制的同时使用 `never`，不会让 Codex 自动获得沙盒外的访问权限。[配置参考](https://learn.chatgpt.com/docs/config-file/config-reference)

## 审核人：用户或独立 Agent

允许发起审批后，还要决定由谁审核。`approvals_reviewer` 支持：

- `user`：将审批请求交给用户。
- `auto_review`：将符合条件的审批请求交给独立的审核 Agent。

自动审核会结合用户要求、拟执行的具体操作和相关上下文作出判断。它不会扩大原有沙盒边界，也不会逐条审核沙盒内原本就允许执行的命令。

如果自动审核拒绝，主 Agent 应寻找实质上更安全的替代路径；没有合适路径时，停止并询问用户。拒绝后不能换个工具或间接执行来绕过限制，用户确认也不保证所有受策略禁止的操作都能放行。

自动审核也不覆盖所有授权。例如，Computer Use 的应用访问授权直接交给用户；符合条件的具体工具调用仍可能进入自动审核。[自动审核说明](https://learn.chatgpt.com/docs/sandboxing/auto-review)

## 用一个项目理解三者的关系

假设 Codex 正在处理一个网站项目，使用工作空间写入、按需审批和自动审核：

1. **修改项目里的文章**：在允许写入的范围内，通常可以直接执行。
2. **读取项目外的参考笔记**：先看该目录是否可读，不能仅凭“在项目外”就判断必须审批。
3. **把文件写到未授权的目录**：需要额外写入权限；符合条件时，可以发起自动审核。
4. **向受限网络地址上传文件**：需要结合网络规则和工具权限判断，可能请求审核，也可能被明确阻止。

如果目的是减少反复确认，可以在保留沙盒边界的前提下，把符合条件的请求交给自动审核。CLI 的一组常见配置如下：

```toml
sandbox_mode = "workspace-write"
approval_policy = "on-request"
approvals_reviewer = "auto_review"
```

这组设置决定了常见的沙盒与审核方式，不能单独保证“只读取项目内文件”。需要更窄的读取边界时，还要配置目录权限。

本地配置通常位于 `~/.codex/config.toml`。不同客户端、版本和组织管理策略可能影响可选项与最终权限，调整后要检查当前会话生效的设置。[配置与权限说明](https://learn.chatgpt.com/docs/sandboxing#configure-defaults)

## 适用范围与核对日期

本文面向本地 Codex 的权限理解与配置。2026 年 11 月 10 日对照 OpenAI 官方文档核对；本机 Codex CLI 0.167.0 的帮助信息确认支持三种沙盒模式及 `on-request`、`never` 审批选项。文中的配置说明未覆盖所有操作系统和客户端的运行验证，具体能力以当前环境为准。
