本文深入解析 Codex 大模型的六层架构,涵盖模型、Runtime、Context、Tool、Sandbox 和 Environment 的功能与关系。通过分析 Agent Loop 的工作原理,揭示 Token 的计量方式以及 Context Window 与 Memory 的关联。文章还探讨了长任务中出现的“忘记”现象、Compaction 的作用、Sandbox 与 Approval 的区别,以及 AGENTS.md、Skills 和 MCP 如何影响 Agent 行为。最后,本文从“使用 Codex”升级到“设计 Agent 工作系统”,帮助读者全面理解并应用 Codex 大模型技术。
第一篇 认识 Codex 的六层架构
- 先给结论:理解 Codex,必须拆成六层
如果只记一个架构图,请记住下面这个:
上图对应的核心分工是:
| 层 | 核心问题 | 典型对象 |
|---|---|---|
| Goal | 用户到底要什么? | Prompt / Task |
| Runtime | 谁负责组织 Agent 的运行? | Agent loop / state / policy |
| Model | 谁负责理解、推理、决策? | GPT 模型 |
| Tools | Agent 如何观察和行动? | shell / file / search / MCP |
| Sandbox | Agent 被允许做到什么程度? | filesystem / network / process policy |
| Environment | Agent 实际改变了什么? | repo / Git / tests / services |
高阶使用的关键,不是“把 Prompt 写得更长”,而是知道这六层分别能解决什么问题。
Codex Agent 到底是什么?
1 它不是“一个模型”
这是理解 Codex 的第一道门槛。
很多人会把:
Codex = GPT + 编程能力当成完整模型。
实际上,从 Agent 的角度更合理的抽象是:
Codex = Model + Agent Runtime + Context + Tools + Policy + Environment模型负责:
- 理解自然语言
- 分析代码
- 推理
- 规划
- 决策下一步行动
- 产生工具调用
Runtime 负责:
- 组织上下文
- 管理 Agent Loop
- 调用工具
- 接收工具结果
- 执行权限/沙箱策略
- 维护任务状态
- 将新的观察重新交给模型
所以:
模型是“大脑”,但 Agent 不是只有大脑。
- Agent Loop:为什么 Codex 能“自己干活”?
普通聊天更接近:
Agent 则是一个闭环:
可以抽象为:
这意味着:
Agent 的能力不是“一次回答有多好”,而是连续做出多少次正确决策,并能根据环境反馈纠错。
- 1 一个实际例子
用户说:
修复登录接口偶发 500。Agent 可能经历:
1. **查看项目结构** 2. **搜索 login** 3. **找到 controller** 4. **找到 service** 5. **找到 session/cache** 6. **读取异常日志** 7. **形成假设** 8. **查看相关代码** 9. **修改代码** 10. **运行测试** 11. **测试失败** 12. **分析失败** 13. **再次修改** 14. **再测试** 15. **测试通过**所以用户看到的是:
“修复 Bug”而 Agent 实际完成的是:
十几次甚至更多次 Observe → Think → Act- Runtime 与 Model:到底是谁在做什么?
这是高级用户非常需要建立的边界。
- 1 Model
Model 更像:
输入:当前 Context 输出:下一步应该说什么 / 做什么例如:
我需要先看看 UserService。或者产生一个 tool call。
- 2 Runtime
Runtime 更像:
因此:
模型决定“想做什么”,Runtime 决定“怎么执行、是否允许执行、执行结果是什么”。
第二篇 Context、Token 与 Memory
- Context:模型究竟“看到了什么”?
这是整个 Agent 系统最重要的概念之一。
- 1 Context Window 不等于项目大小
假设你的项目:
500 MB并不意味着模型一次可以“看到 500 MB”。
模型真正面对的是:
当前这一次 inference 所提供的 contextContext 可能包括:
System / Developer instructions + Project instructions + User request + Conversation history + Tool calls + Tool results + 被读取的文件 + 搜索结果 + 其他 runtime state- 2 “Agent 看过一个文件”是什么意思?
不要把它理解成:
文件永久进入模型记忆。
更准确的是:
之后如果上下文被压缩、重新开始 Session、或者相关信息没有被保留:
模型未必还拥有完整文件内容。因此:
读取 ≠ 永久记忆。
- Token:到底什么东西在消耗 Token?
Token 是理解 Agent 成本和性能的基础。
OpenAI 当前模型文档将输入、缓存输入、输出等作为独立计量维度;推理模型还存在 reasoning token 支持。当前 GPT-5.3-Codex 文档显示其 context window 为 400K、最大输出为 128K,并支持 reasoning effort。
当前 GPT-5.6 Sol 的官方模型页则列出 1.05M context window、128K max output,并支持none/low/medium/high/xhigh/maxreasoning effort。
- 1 Token 不等于“字数”
例如:
hello world和:
你好世界不会简单按照字符数一比一计算。
代码、JSON、路径、日志也都会被 tokenizer 切分。
因此不要使用:
字符数 × 固定比例 = Token这种粗糙公式。
- 2 Agent 的 Token 来源
可以建立下面的模型:
一次模型调用的输入 = instructions + user input + history + tool results + selected context输出则可能包括:
final answer + tool calls而 reasoning model 还会产生 reasoning computation。
Input Token、Cached Token、Output Token、Reasoning Token
1 Input Token
模型本次调用实际接收到的输入 token。
- 2 Cached Input
如果请求中的部分上下文可以复用缓存,则对应部分可以按 cached input 计价。
例如当前 GPT-5.3-Codex 官方价格页面列出:
Input $1.75 / 1M Cached input $0.175 / 1M Output $14 / 1M这意味着 cached input 的单位价格明显低于普通 input。
注意:
缓存计价不等于:
“缓存内容不占 Context。”
这是两个完全不同的问题。
- 3 Output Token
模型产生的输出。
包括最终回答,也可能包括工具调用相关输出。
- 4 Reasoning Token
Reasoning model 会投入额外的计算预算用于推理。
因此:
最终只回答 300 token并不代表:
模型只进行了 300 token 的计算。高级用户必须把:
Final output和:
Model computation分开理解。
- Context Window 与 Token Usage 不是一回事
这是非常容易混淆的一点。
三者不是一回事
Context Window回答:这一轮模型最多能处理多大的上下文?
Token Usage回答:这次调用实际处理/产生了多少 token?
Session回答:整个 Agent 任务过程中积累了多少状态?
所以:
Context Window ≠ 单次 Token Usage ≠ 整个 Session 的历史长度- 为什么 Agent 读大量代码会变慢?
假设 Agent 做:
read A.java read B.java read C.java read D.java ... read Z.java问题不仅是:
这些文件很大还包括:
所以真正的问题是:
无效上下文会污染后续推理。
- Context Engineering:高级 Agent 使用的核心
高阶用户真正应该优化的是:
Signal / Noise Ratio即:
有效上下文 ──────────── 全部上下文越高越好。
- 1 错误方法
把整个项目全部塞给 Agent。- 2 更好的方法
也就是:
Progressive Disclosure(渐进式暴露上下文)
- 为什么“Context 越大越好”是错误理解?
更大的 Context 提供更多容量。
但:
更多 Context ≠ 更多有效信息如果 Context 中充满:
无关日志 旧失败尝试 重复代码 巨大 diff模型反而更难找到重点。
所以真正应该追求:
Context Density,而不是 Context Size。
- 高级工作方式:Progressive Disclosure
推荐:
而不是:
一开始把所有东西全部塞进去。这与人类高级工程师调查大型系统的方式其实非常相似。
- Compaction:Context 满了以后怎么办?
长任务不可能无限把所有历史保留在原始形式中。
因此 Agent 系统需要一种机制:
OpenAI 的 Responses API 已提供 conversation compaction 能力,用于将长会话上下文压缩成后续调用可继续使用的状态。
- 1 Compaction 不应该理解成“简单删聊天”
更准确的抽象是:
- 2 什么状态最值得保留?
例如:
任务目标 当前方案 已经完成 关键设计决定 失败过的方案 测试结果 剩余问题 重要约束- 3 为什么 Compaction 后 Agent 可能“忘记”?
因为:
原始信息和:
压缩后的状态不是完全等价的。
尤其是:
低价值细节可能被丢弃。
所以大型任务不能只依赖“聊天历史”。
- Memory:Codex 到底有没有记忆?
建议把“记忆”拆成 5 层。
| 层级 | 例子 | 生命周期 |
|---|---|---|
| Context Memory | 当前上下文 | 短 |
| Session State | 当前任务状态 | Session |
| Project State | Git、文件、文档 | 持久 |
| External State | DB、Issue、服务 | 外部持久 |
| Product Memory | 产品提供的持久记忆 | 依产品而定 |
- 1 最重要的认知
如果 Codex 第二天还能“知道”:
这个项目应该怎么测试可能不是:
模型永久记住了。
而可能是:
AGENTS.md仍然存在。
或者:
README docs Git提供了状态。
因此:
工程系统里的“持久记忆”,最好不要依赖模型本身。
- Repository 是 Agent 的外部记忆
这是一个非常重要的高级思想。
传统程序:
程序状态 → DB / FileAgent 工程:
Agent State → Repository / docs / tests / Git / issue system例如:
这些东西可以成为:
Agent 的外部化长期状态。
- Codex 的“记忆”应该怎样工程化?
不要依赖:
模型应该记得。应该依赖:
Repository + Documentation + Tests + Git + External Systems形成:
第三篇 能力、边界与扩展
- Sandbox:为什么 Agent 不能随便操作机器?
Agent 如果拥有:
模型 + Shell + Filesystem + Network那么它已经具有非常强的计算机操作能力。
因此必须增加:
Policy Boundary也就是 Sandbox。
- 1 Sandbox 的本质
不要理解为:
“限制 AI 智力”。
更准确:
限制 Agent 对执行环境拥有的能力。
可以抽象为:
- Sandbox 主要限制什么?
可以从几个维度理解:
Filesystem Network Process Environment Privileges主要限制维度
Filesystem:例如:可以读取哪些路径? 可以修改哪些路径?
Network:例如:是否允许访问外部网络? 哪些网络操作被限制?
Process:例如:允许执行什么命令? 子进程有什么限制?
Environment:例如:哪些环境变量可见? 哪些 Secret 不应该暴露?
- Sandbox 和 Approval 不是一回事
这是高级用户一定要区分的。
Sandbox = 系统能力边界而:
Approval = 用户授权边界例如:
Sandbox 允许 shell不代表:
用户已经批准某个危险操作反过来:
用户批准也不代表:
Sandbox 一定允许执行所以完整判断更像:
- Tool:Agent 的“手”
模型本身不能直接:
ls git diff pytest模型只能产生一个:
tool call由 Runtime 执行。
- 1 Tool 的三个关键阶段
- 2 为什么 Tool Schema 很重要?
模型需要知道:
工具叫什么 需要什么参数 参数类型是什么 返回什么因此工具定义本身也是模型上下文的一部分。
这也是为什么:
工具太多也可能增加 Context Noise。
- Skills:能力模块化
Skill 更像:
可复用工作能力例如:
Code Review Skill Release Skill Migration Skill Incident Analysis Skill它和 Tool 不同。
简单理解:
Skill = 怎么做 Tool = 做什么动作例如:
Skill: 执行数据库迁移审查流程 Tool: 读取 SQL 文件 执行测试 查询数据库- MCP:Agent 的外部接口层
MCP 可以理解为:
把外部系统能力以 Agent 可以发现和调用的工具形式暴露出来。
例如:
因此:
Skills = 能力 / 流程 MCP = 外部工具 / 系统接口二者可以组合。
- AGENTS.md:为什么它有效?
AGENTS.md最重要的价值不是“多一个 Markdown 文件”。
而是:
把项目级行为规则从每次 Prompt 中抽离出来。
例如:
不要修改 migration 必须使用现有 logger 修改业务代码必须有测试 不要自动 push这些是:
Project Policy而不是某一次 Task 的临时要求。
- Instructions 的优先级
高级 Agent 使用必须有一个概念:
不是所有指令都拥有相同优先级。
抽象来看:
具体优先级会随运行环境而变化,不能把上图当成 Codex 内部的固定私有实现。
真正需要掌握的是:
Agent 永远不是只听最后一句 Prompt。
第四篇 可靠性与反馈闭环
- 为什么 Agent 会犯错?
可以把 Agent 错误分成几个类别。
五类错误来源
Model Error:模型本身判断错误。
Context Error:模型没有看到关键事实。
Tool Error:工具执行失败或返回异常。
Environment Error:例如:
依赖缺失 网络不可用 服务没启动 测试环境异常Verification Error:没有足够好的测试告诉 Agent:
你错了。- Agent Reliability 的核心公式
可以把它作为一个工程上的近似思维模型:
Agent Reliability ≈ Model Capability × Context Quality × Tool Quality × Environment Quality × Verification Quality这不是官方数学公式,而是一个工程抽象模型。
它解释了一个非常重要的事实:
换更强模型只是提升一个乘数。
如果:
Context = 0.3 Verification = 0.2即使模型从:
0. **8 → 0.95**整体可靠性仍然可能很差。
- Test:为什么测试是 Agent 的“反馈传感器”?
Agent:
我觉得代码应该正确。测试:
失败。于是:
这实际上形成:
闭环控制因此:
测试不是 Agent 工作的附属品,而是 Agent 环境中的反馈传感器。
- Git:为什么 Git 对 Agent 特别重要?
Git 同时提供:
State History Diff Rollback Isolation对于 Agent 来说非常重要。
Agent 可以:
必要时:
rollback所以:
Git 是 Agent 的“可恢复状态系统”。
第五篇 规模化:Subagent、长任务与状态
- Subagent:为什么多个 Agent 有时比一个 Agent 更好?
不是因为:
2 个模型 > 1 个模型而是因为:
Context Isolation。
例如:
每个 Agent 有自己的:
任务 Context 推理路径- Subagent 的真正优势
三大优势
Context Isolation:避免一个巨大上下文污染所有推理。
Parallel Exploration:不同方向可以并行调查。
Specialized Reasoning:不同 Agent 可以承担不同角色。
但 Subagent 不是免费午餐
会增加:
模型调用 Context 协调成本 结果汇总成本所以:
并行不是越多越好。
- 长任务为什么越来越难?
长任务有几个典型问题:
Context 增长 Tool Output 增长 Decision 增长 错误假设累积 Context Pollution Compaction State Drift可以理解成:
短任务 → 局部最优 长任务 → 状态管理问题- 高阶 Agent 的核心能力:State Management
真正的大型 Agent 项目,不应该把所有状态都放在聊天里。
应该外部化:
- 1 一个好的 status.md
# Current Status ## Goal ... ## Completed - ... ## Current Step ... ## Decisions - ... ## Known Problems - ... ## Next Step ...这样即使:
Session 结束 Context 被压缩 Agent 重新启动仍然可以恢复工作。
最后
当下AI大模型是当下实打实的优质风口,岗位缺口大、发展前景广、薪资待遇突出,对比内卷严重、涨薪晋升困难的传统技术岗,是普通人转行逆袭的绝佳选择。
但很多想要入局大模型领域的朋友,都面临无系统学习路径、无实战资源、求职无方向的难题,一个人硬啃最容易走弯路、浪费大量时间精力。这里我结合多年一线实战与教学经验,整理出一套零基础大模型专属资料,包含:
- 系统化学习路线图(零基础到精通)
- 大模型学习书籍 & 文档(电子版)
- 2026 最新行业报告
- 项目实战 & 配套源码
- 大厂面试真题
需要的朋友,微信扫描下方 CSDN 官方认证二维码免费领取,保证 100% 免费。
👇👇扫码免费领取全部内容👇👇
下面简单介绍一下资料包含的内容:
1、大模型系统化学习路线图
专属定制从零基础入门到企业级实战的全阶段学习体系,划分清晰的四大学习阶段,规避碎片化学习弊端,适配新手
2、0基础到进阶视频教程
配套完整高清实操教程,覆盖Prompt提示工程、RAG知识库搭建、Agent智能体开发、模型微调、部署落地等核心知识点,所有课程搭配实操演示,零基础也能轻松看懂、上手实操。
3、大模型学习书籍 & 文档
汇总30+本行业经典AI、大模型、深度学习精选书籍,涵盖理论原理、开发实战、算法基础、AI产品思维等各类内容
4、AI大模型最新行业报告
整理2024-2026年最新大模型行业白皮书、市场分析报告,清晰展现行业发展趋势、技术迭代方向、岗位需求变化,帮助学习者精准把握行业风口,找准学习和就业方向
5、大厂面试真题
汇总了常见的AI大模型面试问题、知识点梳理和面经参考,方便求职时针对性准备。
6、大模型项目实战 & 配套源码
包含GPT应用开发、RAG私有知识库、智能问答系统等多个企业级实战项目,配套完整可运行源码,从简易Demo到完整商业应用全覆盖,帮助学习者将理论转化为落地实战能力,积累项目经验。
7、适合谁学?
- 传统后端 / Java / 前端开发,想转型 AI 应用
- 大学生、应届生,想拿更好的 offer
- 产品经理、运营,想武装职业竞争力
- 技术负责人,想给团队落地提效
学习是反人性的,但回报是真金白银。技术会更新,赛道会切换,但只要你先动手,机会就永远站在你这边。
8、这些资料真的有用吗?
这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。
想要入局AI大模型赛道、抢占行业红利的朋友,微信扫描下方CSDN官方认证二维码,即可100%免费领取全套学习资料!