⚠️ 重要前置风险

自动运行 = 允许AI无确认读写文件、执行shell、删除代码、运行危险命令;建议只在Git干净备份、容器/临时环境、不重要项目使用,不要直接在主力工程裸跑 YOLO。

一、两种方案(优先选安全版)

方案1:安全全自动(推荐:workspace-write + never)

只允许修改当前工作目录,不破坏系统全局;超出边界才会拦截。

codex --sandbox workspace-write --ask-for-approval never

如果你需要一次性执行任务(不进交互式会话):

codex exec --sandbox workspace-write --ask-for-approval never "完成需求并运行测试"
  • --sandbox workspace-write:只能读写当前项目目录
  • --ask-for-approval never沙盒内操作不再弹窗确认
  • 如需网络:在config里开启 [sandbox_workspace_write].network_access = true

方案2:完全无沙盒无确认(YOLO,高危)

codex --yolo
# 等价完整参数
codex --dangerously-bypass-approvals-and-sandbox

作用:绕过沙盒边界、所有权限不再确认,可访问全盘、运行sudo、删文件;只适合隔离容器/一次性沙箱环境。

二、永久配置(不用每次敲参数)

编辑 ~/.codex/config.toml

# 安全自动模式(推荐)
sandbox_mode = "workspace-write"
approval_policy = "never"
 
# 如需网络
[sandbox_workspace_write]
network_access = true

不要直接全局写 danger-full-access;尽量用 profile 按需加载:

[profiles.auto_safe]
sandbox_mode = "workspace-write"
approval_policy = "never"

启动时加载 profile:

codex --profile auto_safe

三、桌面端/VSCode扩展怎么设置

桌面 App / VSCode 没有简单的一键 YOLO 开关:

  1. 优先使用 CLI 跑自动化任务(上面参数生效更稳定)
  2. 桌面端只能逐个批准;新版本不支持会话内一键永久自动放行
  3. VSCode 内想少弹窗:在设置里把审批策略改为自动评审,但依然受沙盒边界限制;不能完全等同于 CLI —yolo

四、容易踩坑的关键点

  1. approval_policy=never 不会覆盖沙盒边界:即使设never,越出 workspace-write 目录、网络等边界依然会暂停;想要完全不拦才需要yolo
  2. 版本差异:v0.130+ 不再支持会话内 /approvals 临时切换,权限策略必须在启动时指定,不能中途改
  3. 模型提问 ≠ 权限确认:Codex问你设计/架构选择,是业务决策,不是权限弹窗;--ask-for-approval never 不能消除这类对话
  4. 最小权限原则:能 workspace-write + never 就不要上 danger-full-access

五、自动化最佳实践(防止翻车)

  1. git status 确认干净;最好先提交/备份
  2. 长任务用 codex exec 而非交互式会话
  3. 任务指令里强制加校验:执行完成后运行测试、lint,出现异常立即停止
  4. 不要在带密钥、数据库连接的环境开 YOLO

如果你想要,我给一条可直接复制的长期自动化命令模板,附带标准提示词(包含Done when、测试自检)。