Codex 不是普通聊天窗口。

当它开始读取项目、修改文件、运行检查,甚至尝试联网时,它做的是接近真实工程操作的事情。所以你在使用过程中看到的权限确认,不是多余步骤,而是 Codex 把决定权留给你。

> 前置教程:第一次让 Codex 阅读项目

> 如果你还没有体验过一次只读分析,先完成前置教程,再回到本篇。

> 依据来源:OpenAI Codex 官方手册中关于 approvals、sandbox、command execution、network access 的说明。

学习目标

学完后,你应该能做到:

  1. 说清楚 Codex 为什么会请求权限。
  2. 2. 区分读文件、写文件、运行命令、联网访问的差别。

    3. 知道哪些批准通常风险较低。

    4. 知道哪些操作不能看一眼就点通过。

    5. 知道遇到拿不准的批准时,先让 Codex 解释。

    核心认知

    很多新手第一次看到批准弹窗,会误以为:

    • 是不是 Codex 坏了
    • 是不是我哪里点错了
    • 是不是它本来就应该自动执行

    都不是。更准确的理解是:

    ``

    Codex 能做事

    但不是它自己决定能做什么

    而是你决定它能做到哪一步

    `

    这就是权限确认存在的意义。

    四类常见的批准

    你每次看到批准,本质上都在确认下面四类事情中的一种:

    1. 它要不要读取更多上下文。
    2. 2. 它要不要真的改动你的文件。

      3. 它要不要在当前环境运行命令。

      4. 它要不要访问网络或外部服务。

      只要你把批准行为理解成这四类,很多紧张感就会消失。

      1. 读文件 (Read)

      这是最常见、也通常风险最低的一类。

      典型场景:

      • 读取 package.json
      • 读取 README.md
      • 读取某个页面组件
      • 读取配置文件
      • 搜索项目里的关键词

      这类操作的特点是:只看,不改

      通常用于:

      • 判断项目技术栈
      • 找入口文件
      • 看脚本命令
      • 定位报错位置
      • 阅读当前实现逻辑

      如果你当前就在做“让 Codex 先分析”的任务,这类批准通常可以通过。

      2. 改文件 (Write)

      只要 Codex 要落地修改,就会进入这一类。

      典型场景:

      • 修改一个页面文案
      • 调整一个样式文件
      • 新增一个 Markdown 教程
      • 更新配置文件

      这类批准的重点不是“能不能改”,而是“它准备改哪里”。你批准前,脑子里要先过一遍这三个问题:

      1. 当前任务范围是不是允许改文件。
      2. 2. 它改的是不是你预期的目录。

        3. 它有没有突然扩大修改范围。

        如果任务本来就是“请先分析,不要修改文件”,那这类批准就不该直接点通过。

        3. 运行命令 (Command)

        这是用户最容易紧张的一类。因为命令一旦执行,影响通常比读文件更大。

        但你也不用把所有命令都看成危险命令。你可以先按目的理解:

        • 分析类:例如查看当前目录、Git 状态、文件列表。风险相对较低。
        • 检查类:例如构建检查、测试检查、lint 检查。这类命令通常不会直接改业务代码,但可能会生成缓存或产物。大多数情况下是合理的。
        • 落地类:例如安装依赖、删除文件、移动文件、提交 Git、推送远程、重置工作区。这类命令不能看一眼就批准,必须先看它为什么要做、影响范围。

        4. 联网访问 (Network)

        网络权限的风险不在“联网”这两个字本身,而在于:它要访问什么,为什么访问,是否会带出敏感信息

        典型场景:

        • 下载依赖
        • 访问模型服务
        • 拉取远程文档
        • 请求外部 API
        • 推送 Git 远程仓库

        如果你当前做的是本地样式微调、文案修改,这类权限通常不该随便出现。如果你做的是安装、登录、配置模型、推送仓库,这类权限就可能是合理的。

        常见问题

        为什么有时同一个任务会连续弹多次批准

        这是正常现象。因为一个完整任务往往会分成多步:先读项目 -> 再定位文件 -> 再修改 -> 再检查 -> 最后总结

        每一步触发的权限类型可能都不一样。你不要把它理解成“Codex 很麻烦”,而要理解成:它每跨过一个动作边界,都会把决定权交还给你

        判断原则

        以后你看到批准,不要急着点。先看这四件事:

        1. 它现在要做的是读、改、跑还是联网。
        2. 2. 这个动作是不是当前任务必须的。

          3. 影响范围是不是和当前任务一致。

          4. 如果你现在拒绝,会不会只是让它先解释得更清楚。

          进阶技巧:先解释,再批准

          很多时候,最稳的做法不是立刻批准,而是先追问一句。如果你看到批准,但没看懂它为什么要做,直接复制这段:

          `

          先不要继续执行。

          请先用中文解释:

          1. 你刚才申请的权限是为了做什么。
          2. 2. 这一步会读取、修改、运行或访问什么。

            3. 这一步是不是当前任务必须的。

            4. 如果我现在不批准,你还能先做哪些只读分析。

            ``

            这段话很好用,因为它把“先解释,再执行”这个节奏拉回来了。

            常见错误

            • 全点批准:这会让任务很容易失控。
            • 全点拒绝:这会让 Codex 根本无法完成实际任务。
            • 不看命令内容:同一个命令,在不同任务里风险可能完全不同。

            总结

            做到这里,如果你已经能稳定回答下面 5 个问题,就说明本篇目的达到了:

            1. Codex 为什么会请求权限。
            2. 2. 读文件、改文件、运行命令、联网访问分别是什么意思。

              3. 为什么同一任务里会连续出现多次批准。

              4. 拿不准时应该先让 Codex 解释,而不是乱点。

              5. 批准的判断依据应该回到当前任务本身。

              下一篇建议看:哪些操作可以批准,哪些要先停一下

              那一篇会把“什么时候可以批、什么时候必须停”讲得更具体。