Codex 智能体设计拆解¶
这个专题用 Codex 智能体作为案例,分析一个编程智能体运行时如何组织会话、轮次、模型循环、工具执行、权限控制和可恢复状态。阅读重点不是记住实现对象名,而是看清多入口如何汇入同一套核心,用户输入如何在运行中介入,工具副作用如何被权限和沙箱约束,长历史如何压缩、恢复和分叉。
Codex 智能体的核心是模型决策与本地执行分离。模型生成下一步意图,本地运行时负责权限判断、沙箱隔离、工具执行、结果记录和状态收束。一次用户轮次可能包含多次模型采样和多次工具调用,因此运行时的设计重点不是一次 API 请求,而是如何维护一个可中断、可审批、可恢复的长任务。
flowchart LR
A[入口层<br/>CLI / TUI / exec / app-server] --> B[会话协议<br/>线程 / 轮次 / 条目]
B --> C[运行时<br/>会话 / 任务 / 轮次上下文]
C --> D[上下文<br/>历史 / 规则 / 记忆 / 技能]
D --> E[模型<br/>流式输出 / 工具调用]
E --> F[本地执行<br/>工具 / 权限 / 沙箱]
F --> D
C --> G[状态<br/>事件 / 持久化记录 / 线程存储]
推荐阅读路径¶
新手可以先读 00、01、04、11 章,先建立“用户输入 -> 模型采样 -> 工具执行 -> 结果回填 -> 轮次完成”的整体链路。
对照 Claude Code 阅读时,优先并排看 04、05、07、08、11 章。这几章覆盖主循环、上下文、工具、权限和真实任务,是两套运行时最容易建立映射的部分。
术语说明¶
- 线程(Thread):一段长期会话,承载历史、配置和可恢复状态。
- 轮次(Turn):一次用户任务,从输入开始,到完成、失败或中断结束。
- 条目(Item):轮次内的结构化记录,例如用户消息、助手文本、命令、差异和权限请求。
- 轮次上下文(Turn Context):本轮固定的目录、模型、权限、沙箱、工具和输出格式。
- 持久化记录(rollout):用于恢复、分叉和历史回放的关键记录。
- 长期记忆(memory):跨会话保存和读取的稳定信息,不提供额外执行权限。
章节¶
- 00. 总览:Codex 智能体的运行时分层
- 01. 一次请求的完整旅程
- 02. 核心领域模型
- 03. 入口层如何进入核心
- 04. 会话循环:一次轮次如何被推进
- 05. 上下文与记忆管理
- 06. 模型流式请求与重试
- 07. 工具与技能管理
- 08. 权限、安全与审批
- 09. 状态、事件与可观测性
- 10. 常见扩展路径
- 11. 真实任务走读:修复测试失败
横向比较见 Claude Code 与 Codex 智能体设计对照。