Codex Docs 沙盒和批准
English

沙盒和批准

批准模式

我们为 Codex 在你的计算机上的工作方式选择了一个强大的默认设置:Auto。在这种批准模式下,Codex 可以自动读取文件、进行编辑并在工作目录中运行命令。但是,Codex 需要你的批准才能在工作目录外工作或访问网络。

当你只是想聊天,或者想在深入之前制定计划,你可以使用 /approvals 命令切换到 Read Only 模式。

如果你需要 Codex 在无需批准的情况下读取文件、进行编辑并运行具有网络访问权限的命令,你可以使用 Full Access。在这样做之前请谨慎行事。

默认设置和建议

我可以在没有任何批准的情况下运行吗?

可以,你可以使用 --ask-for-approval never 禁用所有批准提示。此选项适用于所有 --sandbox 模式,因此你仍然可以完全控制 Codex 的自主程度。它将尽最大努力处理你提供的任何约束。

常见的沙盒 + 批准组合

意图 标志 效果
安全的只读浏览 --sandbox read-only --ask-for-approval on-request Codex 可以读取文件并回答问题。Codex 需要批准才能进行编辑、运行命令或访问网络。
只读非交互式 (CI) --sandbox read-only --ask-for-approval never 仅读取;从不升级
让它编辑仓库,如果有风险则询问 --sandbox workspace-write --ask-for-approval on-request Codex 可以在工作区中读取文件、进行编辑并运行命令。Codex 需要批准才能在工作区外的操作或网络访问。
自动(预设) --full-auto(相当于 --sandbox workspace-write + --ask-for-approval on-failure Codex 可以在工作区中读取文件、进行编辑并运行命令。当沙盒命令失败或需要升级时,Codex 需要批准。
YOLO(不推荐) --dangerously-bypass-approvals-and-sandbox(别名:--yolo 无沙盒;无提示

注意:在 workspace-write 中,网络默认禁用,除非在配置中启用([sandbox_workspace_write].network_access = true)。

config.toml 中微调

# 批准模式
approval_policy = "untrusted"
sandbox_mode    = "read-only"

# 全自动模式
approval_policy = "on-request"
sandbox_mode    = "workspace-write"

# 可选:在工作区写入模式中允许网络
[sandbox_workspace_write]
network_access = true

你还可以将预设保存为配置文件

[profiles.full_auto]
approval_policy = "on-request"
sandbox_mode    = "workspace-write"

[profiles.readonly_quiet]
approval_policy = "never"
sandbox_mode    = "read-only"

试验 Codex 沙盒

要测试在 Codex 提供的沙盒下运行命令时会发生什么,我们在 Codex CLI 中提供以下子命令:

# macOS
codex debug seatbelt [--full-auto] [COMMAND]...

# Linux
codex debug landlock [--full-auto] [COMMAND]...

平台沙盒详细信息

Codex 用来实现沙盒策略的机制取决于你的操作系统:

请注意,在 Docker 等容器化环境中运行 Linux 时,如果主机/容器配置不支持必要的 Landlock/seccomp API,沙盒可能无法工作。在这种情况下,我们建议配置你的 Docker 容器,使其提供你正在寻找的沙盒保证,然后在容器内使用 --sandbox danger-full-access(或者更简单地,--dangerously-bypass-approvals-and-sandbox 标志)运行 codex