Skip to content

Codex 源码精读

OpenAI 官方开源终端编程 Agent 源码深度解析

这里是「Codex 源码精读」专栏,逐行拆解 OpenAI 官方出品的本地编程 Agent。

不同于 Claude Code 和 OpenCode,Codex 选择 Rust 作为核心语言,拥有更激进的跨平台沙箱、完整的 Agent 树编排、以及独特的 event-driven reactor 主循环。本系列逐章拆解它的 100+ crates,讲清架构选型背后的工程哲学。

文章列表

#文章类型字数
1Codex 全景:架构与定位源码解析~16,000 字
2主循环:Submission 驱动的 Turn 系统源码解析~13,000 字
3上下文组合与增量注入源码解析~14,000 字
4Compact 系统:3 种压缩机制源码解析~19,000 字
5多 Agent 编排架构源码解析~25,000 字
6工具系统与安全沙箱源码解析~23,000 字
7模型管理与 Provider 抽象源码解析~20,000 字
8Codex vs CC 设计哲学对比源码解析~14,000 字

关于系列

本系列基于 Codex 源码仓库(GitHub)编写,核心分析范围:

  • 源码层codex-rs/100+ 个 crate,核心在 codex-core
  • 构建系统:Bazel + Cargo(工程规模相当但构建哲学不同)
  • 技术栈:Rust + tokio async + ratatui + SQLite + MCP + WebSocket
  • 特色:每篇文章都附带「Codex vs Claude Code」架构对比

整体架构速览

以下是 Codex 核心引擎 codex-core 的反应器 + turn 流程:

Codex 反应器架构:submission_loop 分发 Ops,run_turn 驱动采样与工具

三个终端 Agent 对比

本博客同时覆盖 Claude Code、OpenCode 和 Codex,三者的核心差异速览:

维度Claude CodeOpenCodeCodex
语言TypeScriptTypeScriptRust
主循环continuation-driven pollingwhile-true loop with Effect-TSevent-driven reactor (channel)
沙箱跨平台沙箱
多 Agent跨进程 Swarm + 同进程 AgentTooltask 工具 spawn原生 Agent Tree
压缩5 级(前 4 级纯数据结构)2 级3 种实现(全部调 LLM)
认证API KeyAPI KeyChatGPT OAuth + API Key
IDE 集成终端内使用终端内使用App Server 守护进程

Agent Src — AI Agent 源码精读