1270 字
约 4 分钟
4
Codex 为什么总在关键时刻停下来?一篇讲透沙盒、审批与 Auto-revie

Codex 为什么总在关键时刻停下来?一篇讲透沙盒、审批与 Auto-review

Codex 能读代码、改文件和执行命令,但这些能力不能没有边界。

当它突然暂停并询问“是否允许访问网络”或“是否允许写入项目外目录”时,不代表任务出错了,而是沙盒和审批机制正在工作。

用“实验室”理解三个概念

可以把 Codex 想象成在实验室里工作的助手:

  • 沙盒是墙和门禁,决定它能碰哪些文件、目录和网络;
  • 审批策略决定什么时候门禁需要确认;
  • 审批人决定由用户还是 Auto-review 回答请求。

三者共同决定 Codex 实际能够做什么。

沙盒决定行动范围

常见模式有三种:

模式 能力边界
read-only 主要读取和分析,写入会触发限制
workspace-write 可以在当前工作区读写和运行常规命令
danger-full-access 移除本地沙盒边界

日常开发通常选择 workspace-write。它允许 Codex 完成项目内修改,又不会默认访问整台电脑。

danger-full-access 不是性能模式,而是风险模式。删除、部署、数据库、支付、权限和生产环境任务尤其不应该轻易使用。

审批策略决定什么时候暂停

策略 行为
untrusted 除明确安全的读取操作外,更多命令需要确认
on-request 沙盒内正常执行,越界时请求审批
never 不发起审批,只在已有权限内处理

最常见的组合是:

sandbox_mode = "workspace-write"
approval_policy = "on-request"
approvals_reviewer = "user"

这意味着项目内常规操作可以继续,联网或写到项目外时再暂停。

需要特别注意:never 不代表自动安全。read-only + never 仍然受到只读边界保护;danger-full-access + never 则同时取消沙盒和审批,是高风险组合。

Auto-review 到底做了什么

Auto-review 改变的是审批人:

approval_policy = "on-request"
approvals_reviewer = "auto_review"

当 Codex 需要越界时,请求先交给 reviewer agent。低风险请求可能自动批准,高风险请求会被拒绝或要求用户确认。

它不会:

  • 扩大工作区;
  • 自动开放网络;
  • 绕过沙盒;
  • 保证所有命令都安全。

所以 Auto-review 是减少打断的机制,不是无限授权。

联网为什么要单独谨慎

联网常用于安装依赖、搜索资料、调用 GitHub API 和访问测试服务,但也引入三类风险:

  1. 恶意网页或内容中的提示词注入;
  2. 代码、日志和凭据意外外发;
  3. 依赖安装带来的供应链风险。

安全做法包括:

  • 没有必要就不开网络;
  • 说明需要访问的域名和用途;
  • 优先限制到可信域名;
  • 不让联网命令读取 .env、cookie、token 和私钥;
  • 安装依赖前检查来源和锁文件变化。

扩展边界,不等于拆掉边界

如果任务需要同时操作两个项目目录,优先把第二个目录加入 writable roots,而不是切换到完全访问。

如果只需要访问 GitHub 和 npm,可以定义只允许这些域名的 permission profile,而不是开放整个公共网络。

如果某类命令风险固定,可以用 rules 设置:

  • 允许;
  • 询问;
  • 禁止。

这就是“最小权限”原则:只增加完成任务真正需要的能力。

哪些操作必须人工把关

遇到以下任务,建议先查看计划和影响面:

  • 删除或批量移动文件;
  • 数据库迁移和生产数据修改;
  • 认证、权限、支付与账单代码;
  • 生产服务器和外部 API;
  • 密钥、token、cookie 与私有凭据;
  • 大规模依赖升级;
  • 发布、部署和推送 release。

可以在任务开头补充:

动手前先说明计划运行的命令和可能影响的文件。
不要读取或输出任何密钥、token、cookie 和私有凭据。
不要执行删除数据、迁移、部署或发布,除非我明确确认。

提示词不能替代沙盒,但可以让风险更早暴露。

写在最后

一套可靠的 Codex 安全模型应该是分层的:

任务范围
→ AGENTS.md 规则
→ 沙盒边界
→ 审批与 Auto-review
→ Hooks 和 rules
→ 测试、CI 与人工 review

没有任何单层机制可以包办安全。沙盒负责限制范围,审批负责处理越界,最终代码质量仍然需要测试和人工审查。

Codex 为什么总在关键时刻停下来?一篇讲透沙盒、审批与 Auto-revie
http://www.clxhxhhr.top/posts/160/
作者
clxstart
发布于
2026-07-23
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。