Codex 开源仓库深度解析(进阶向)
本文档基于 openai/codex 仓库源码与仓内设计说明,系统梳理 Codex CLI / TUI / app-server / MCP 的架构、关键设计决策、实现依据与可观测优化点,面向有经验的前端/全栈工程师做深度学习与进阶学习。
分析侧重:为何这样分层、协议与状态如何流转、安全边界如何落地、终端 UI 与流式体验如何权衡。
目录
- 仓库与架构总览
- 分层设计:核心 Crate 职责
- 协议、Op 与 Thread/Turn/Item 模型
- 沙箱、执行策略与安全边界
- apply_patch 与自举执行路径
- 上下文管理、Token 与 Compact
- ModelClient、WebSocket 预连接与重试
- TUI:自适应流分块、退出与 Shutdown
- App-Server、JSON-RPC v2 与背压
- Skills、系统技能缓存与 AGENTS.md
- Arg0 多路复用:单二进制多角色
- Hooks、ExecPolicy、观测与优化清单
- 高频问答与追问链
源码与文档范围
- 语言栈:Rust 工作区(
codex-rs/),npm 包(codex-cli/),Python/TypeScript SDK 等。 - 工作区版本号:
codex-rs/Cargo.toml中workspace.package.version为0.0.0(发布版本以 GitHub Releases 为准)。 - 分析时间:2026 年 3 月。
阅读建议
参考资料
- Codex 官方文档
- 仓库根目录 README、AGENTS.md(Rust 贡献与规范)
- 仓内设计文档:
docs/、codex-rs/docs/、codex-rs/app-server/README.md - Model Context Protocol
- 相关 Issue / PR(文中引用处):例如退出流统一设计见
docs/exit-confirmation-prompt-design.md(提及 PR #8936)