外观
第3章 核心概念
约 3409 字大约 11 分钟
2026-06-09
这一章来聊聊 Codex 背后的工作原理。了解这些不是为了考试,而是搞明白了之后用起来更顺手,出了问题也知道是哪里卡住了。
3.1 Codex 就像是"雇了一个特别能干的助手"
不用被各种名词吓到。用大白话说,你用 Codex 就像是雇了一个助手:
- 你告诉它要做什么(下达任务)
- 它自己想办法怎么完成(规划步骤)
- 它自己动手去做(执行操作)
- 做完了跟你汇报(返回结果)
关键来了——这个助手不是你问一句它答一句的那种。你给它一个目标,它会自己拆解、自己规划、自己执行,中间可能要来回好几次,直到把事情干完。
行话管这个叫 Agent Loop(智能体循环)。
来看一个真实的例子
假设你说:"帮我把这个项目里的所有 TypeScript 错误修掉。"
Codex 实际上会这样做:
- 想:我得先看看项目里有啥 → 看看文件结构
- 看到结果:是个 TypeScript 项目,有 200 多个文件
- 想:先跑一下类型检查,看看哪些地方有错误 → 执行检查命令
- 看到结果:报了 15 个类型错误
- 想:逐个看看是什么问题 → 打开出错的文件
- 想:这个是类型不对 → 修改代码
- 想:那个是缺少定义 → 补上定义
- 再跑一次检查:还有 3 个错误
- 继续修:……
- 最后再跑一次:没有错误了!
- 汇报:告诉你修了 15 个错误,改了哪些文件
你想想,这个过程中你做了什么?你只说了一句话!剩下的全是它自己搞定的。这就是 Agent Loop 的威力。
3.2 "沙盒"——Codex 的安全带
为啥需要安全带
Codex 能直接操作你电脑上的文件——读文件、写文件、执行命令。这意味着如果它"犯糊涂"了,可能会搞坏你的东西。
所以 Codex 设计了一个安全机制,叫"沙盒"。
打个比方:沙盒就像是一个透明的工作间。Codex 在这个工作间里干活,你能看到它在做什么,但它不能跑出这个工作间去碰工作间外面的东西。
沙盒是怎么实现的
不同操作系统用的是不同的方案:
| 操作系统 | 沙盒方案 | 大白话解释 |
|---|---|---|
| macOS | Seatbelt | 苹果自带的沙盒技术,跟 App Store 的 App 用的是同一套 |
| Linux | bubblewrap | Linux 社区的沙盒工具,很多桌面应用也在用 |
| Windows | Windows 原生沙盒 | 微软自带的隔离机制 |
沙盒里能干啥,不能干啥
┌─────────────────────────────────────────┐
│ 沙盒安全区 │
│ │
│ ✅ 能做的 │
│ ├── 读取项目文件 │
│ ├── 创建新文件 │
│ ├── 修改项目内的文件 │
│ ├── 执行项目相关的命令 │
│ └── 安装项目依赖 │
│ │
│ ❌ 不能做的 │
│ ├── 删除项目外的文件 │
│ ├── 访问你的私人文件夹 │
│ ├── 连接到不该连的网络 │
│ └── 修改系统配置 │
│ │
└─────────────────────────────────────────┘一句话总结
沙盒就是给 Codex 划了一个"作业区",它只能在这个区域里活动,搞不出这个圈。
3.3 三种权限模式——你说了算
虽然沙盒已经提供了基本的安全保障,但 Codex 还给了你更细粒度的控制——三种权限模式。
你想想,这就好比你雇了三个人,信任程度不一样:
模式一:Auto(自动模式)——默认的
| 啥意思 | 详细说说 |
|---|---|
| 一句话总结 | Codex 自己判断,大部分操作自动执行 |
| 就像是 | 你跟助手说"你看着办吧,我信你" |
| 文件读取 | 自动执行,不问你 |
| 文件修改 | 在沙盒里自动执行 |
| 执行命令 | 自动执行 |
| 什么时候用 | 日常使用,你对 Codex 比较信任 |
Auto 是默认模式,大部分情况下用它就行。沙盒已经拦住了危险操作,所以即使是 Auto 模式,你的电脑也是安全的。
模式二:Read-only(只读模式)——最谨慎的
| 啥意思 | 详细说说 |
|---|---|
| 一句话总结 | Codex 只能看,不能改任何东西 |
| 就像是 | 你让助手"你帮我看看,但别动手" |
| 文件读取 | ✅ 能读 |
| 文件修改 | ❌ 不能改 |
| 执行命令 | ❌ 不能执行 |
| 什么时候用 | 你只想让它分析问题、给建议,不想让它动手 |
这个模式特别适合"先让它诊断一下"的场景。比如你有一段代码不知道哪里有问题,让 Codex 在只读模式下帮你看一眼,它看完会告诉你问题在哪、怎么改,但不会真的去改你的文件。
模式三:Full Access(完全访问)——最大权限
| 啥意思 | 详细说说 |
|---|---|
| 一句话总结 | Codex 能做任何事情,不受沙盒限制 |
| 就像是 | 你把家里所有钥匙都给了助手 |
| 文件读取 | ✅ 能读任何位置的文件 |
| 文件修改 | ✅ 能改任何文件 |
| 执行命令 | ✅ 能执行任何命令 |
| 什么时候用 | 你非常信任这个项目,需要 Codex 做系统级的操作 |
慎用!
Full Access 模式下 Codex 能做任何事情,包括删文件、改系统配置。除非你非常清楚自己在做什么,否则不要用这个模式。
怎么选择权限模式
启动的时候可以指定权限模式:
# Auto 模式(默认,不写也行)
codex --approval-mode auto
# 只读模式
codex --approval-mode suggest
# 完全访问模式(慎用!)
codex --full-auto3.4 "Token"和"用量"——Codex 的消耗是怎么回事
啥是 Token
你每次跟 Codex 对话,它都在处理文字。AI 模型处理文字的基本单位就叫 Token。
打个比方:Token 就像是出租车的"计价单位"。出租车不是按趟收费的,是按里程收费的;Codex 不是按次收费的,是按 Token 数量收费的。
一般来说:
- 1 个中文字 ≈ 1-2 个 Token
- 1 个英文单词 ≈ 1 个 Token
- 一段 1000 字的对话 ≈ 大约 1000-2000 个 Token
Token 花在哪了
| 花在哪 | 啥意思 | 占比 |
|---|---|---|
| 你说的话 | 你输入给 Codex 的内容 | 少 |
| Codex 的思考 | 它内部"想"的过程(你可能看不到) | 中等 |
| Codex 的回复 | 它回复给你的内容 | 中等 |
| 读取的文件 | 它看了哪些文件的内容 | 可能很多 |
| 执行的命令 | 命令的输出结果 | 看情况 |
省 Token 的小技巧
- 不要一次让它看太多文件——它会把所有内容都"读"一遍,每个字都算 Token
- 新任务开新对话——避免旧对话占着空间
- 说清楚需求——一次说清楚比来回改要省得多
大概要花多少钱
如果你用的是 API Key 方式,按量计费:
| 使用强度 | 每天大概花费 | 一个月大概 |
|---|---|---|
| 偶尔用用 | $0.5 - $1 | $15 - $30 |
| 日常使用 | $1 - $3 | $30 - $90 |
| 重度使用 | $3 - $10+ | $90 - $300+ |
如果你用的是 ChatGPT 订阅(Plus / Pro),那 Codex 的使用是包含在订阅里的,不用额外付费。但可能有用量限制——用太多了会限速。
3.5 AGENTS.md——给 Codex 写一份"工作须知"
这是个啥
AGENTS.md 是放在项目文件夹里的一个特殊文件。它就像是给 Codex 写的"入职手册",告诉它:
- 这个项目是干什么的
- 用了什么技术
- 有什么规矩要遵守
- 哪些东西不能碰
Codex 每次开始工作的时候,第一件事就是读这个文件。
跟 Claude Code 的 CLAUDE.md 有啥区别
说实话,功能和作用几乎一模一样。只是名字不同:
| Codex | Claude Code |
|---|---|
| AGENTS.md | CLAUDE.md |
| 放在项目根目录 | 放在项目根目录 |
| Codex 每次都读 | Claude Code 每次都读 |
来看一个例子
# 项目说明
这是一个个人博客网站,用 VuePress 搭建。
## 用了什么
- VuePress 2
- vuepress-theme-plume 主题
- pnpm 包管理器
## 要遵守的规矩
- 所有文章用中文写
- 文件名用英文和数字
- 代码注释也用中文
## 特别注意
- 不要动 docs/.vuepress/config.ts 的配置
- 图片放在 docs/.vuepress/public/images/ 下
- 构建命令是 pnpm docs:build写 AGENTS.md 的技巧
- 不用写太多,挑重点写就行
- 特别是"不要做什么"这种禁止类的规则,一定要写清楚
- 项目有什么特殊的依赖或构建方式,写上
- 这玩意儿写得越好,Codex 干活就越合你心意
3.6 多智能体——Codex 的"分身术"
啥是多智能体
这是 Codex 跟 Claude Code 最不一样的地方之一。
简单说,Codex 可以同时派出好几个"小助手"帮你干活。这些小助手叫 Subagent(子智能体)。
打个比方:你需要装修一套房子。一个人干的话,得先刷墙、再铺地板、再装灯……一步一步来,很慢。但如果你请了一个装修队,刷墙的刷墙、铺地板的铺地板、装灯的装灯,同时进行,效率就高多了。
┌──────────────────────────────────────────────┐
│ 主 Codex(你直接对话的) │
│ │
│ 你说:"帮我重构这个项目" │
│ │ │
│ ▼ │
│ Codex 拆分成几个子任务 │
│ │ │
│ ┌────┼────┬────┐ │
│ ▼ ▼ ▼ ▼ │
│ 子助手1 子助手2 子助手3 子助手4 │
│ 重构A模块 重构B模块 更新测试 更新文档 │
│ │ │ │ │ │
│ └────┴────┴────┘ │
│ │ │
│ ▼ │
│ 汇总结果,跟你汇报 │
│ │
└──────────────────────────────────────────────┘啥时候用到
- 项目比较大的时候——一个大任务拆成几个小任务并行处理
- 修多个 bug 的时候——每个助手修一个 bug
- 同时做代码和安全检查 的时候——一个改代码,一个查漏洞
你不用操心怎么分配
Codex 会自动判断任务需不需要拆分、怎么拆分。你只管提需求就行,它会自己安排。你想想,这不就是"好老板"和"微操老板"的区别嘛——你当个好老板,提需求就行,具体怎么分配让它来。
3.7 MCP——给 Codex 装上"外挂"
MCP 是啥
MCP(Model Context Protocol)是一种让 Codex 连接外部服务的协议。简单说,就是给 Codex 装插件。
就像手机装 App 一样:
- 装了 GitHub 插件 → Codex 能帮你操作 GitHub(提 PR、看 Issue 等)
- 装了数据库插件 → Codex 能直接查数据库
- 装了 Slack 插件 → Codex 能帮你在 Slack 里发消息
- 装了 Linear 插件 → Codex 能帮你管理项目任务
┌─────────────────────────────────────────┐
│ Codex │
│ │
│ ┌──────────┐ ┌──────────┐ │
│ │ 自带能力 │ │ MCP 插件 │ │
│ │ │ │ │ │
│ │ 读写文件 │ │ GitHub │ │
│ │ 执行命令 │ │ Slack │ │
│ │ 搜索内容 │ │ 数据库 │ │
│ │ │ │ Linear │ │
│ └──────────┘ └──────────┘ │
│ │
└─────────────────────────────────────────┘Codex 原生支持 MCP,扩展能力几乎没有上限。
小结
| 要点 | 一句话总结 |
|---|---|
| Agent Loop | Codex 不是一个"问一句答一句"的机器人,是能自己想办法、自己干活的助手 |
| 沙盒 | 给 Codex 划了一个安全"作业区",搞不出这个圈 |
| Auto 模式 | 默认模式,大部分操作自动执行,有沙盒保护 |
| Read-only 模式 | 只能看不能改,适合"先诊断一下" |
| Full Access 模式 | 最大权限,能做任何事,慎用! |
| Token | AI 处理文字的"计价单位",按量付费的话用它算钱 |
| AGENTS.md | 给 Codex 写的"入职手册",每次都读 |
| 多智能体 | Codex 能同时派出多个"小助手"并行干活,效率翻倍 |
| MCP | 给 Codex 装插件,连接 GitHub、数据库、Slack 等外部服务 |
你可能想问的
Q1: Codex 会不会不小心删掉我的文件?
沙盒模式下很难。沙盒限制了它只能在项目范围内操作。如果你用的是 Full Access 模式,那确实有可能。所以重要的项目不要用 Full Access。
Q2: Auto 模式安全吗?
相对安全。Auto 模式虽然大部分操作自动执行,但沙盒在底层拦住了危险操作。它不能删系统文件、不能访问你的私人目录、不能做网络攻击。对日常使用来说足够安全了。
Q3: Token 会用很多吗?
取决于你让它干什么。简单的问答消耗很少。让它读大量文件、处理大项目就会多。API Key 按量付费的话注意看看用量,别超预算。
Q4: AGENTS.md 必须写吗?
不是必须的。但强烈建议写。写了之后 Codex 就知道你的项目有什么规矩、需要注意什么,干出来的活会更符合你的期望。不写的话它就"凭感觉"干,可能不符合你的习惯。
Q5: 多智能体是自动的还是需要我手动配置?
大部分情况下是自动的。Codex 会自己判断任务要不要拆分、怎么拆分。你也可以手动配置,但日常使用不需要操心这个。
Q6: MCP 怎么装?
跟手机装 App 的思路一样,需要配置一下。这个属于进阶内容,后面有机会的话单独写一章详细讲。
下一章来聊聊 Codex 的更多进阶用法(后续章节敬请期待)!
