Codex 101|00|Reading Guide

Codex 101 的阅读路线图:从本地 Agent Runtime、工具执行、安全沙箱,到 app-server、状态存储与 SDK。

Codex 101|00|Reading Guide

Codex 101 不是“如何使用 Codex CLI”的教程,也不是按文件顺序展开的实现笔记。它把 Codex 当作一个完整的本地 Agent Runtime 来读:一个命令行入口背后,如何组织用户输入、模型流、工具调用、审批、沙箱、会话状态、TUI、SDK 和云端任务。

如果你想学习的是“一个生产级 coding agent 应该怎样拆层”,这组文章的读法是:先看运行时边界,再看模型闭环,再看工具与安全,最后看产品层和持久化。

本篇目标:这组文章解决什么问题

  • Codex 为什么不只是一个 CLI,而是本地 Agent Runtime
  • Codex 代码库里的关键抽象:Thread、Turn、Item、Op、Event、ToolRuntime
  • 读完系列后,能把这些机制迁移到自己的 agent 系统中

推荐阅读顺序

顺序 文章 你会学到什么
01–04 Runtime、Protocol、Loop、Streaming Codex 如何把用户输入推进成模型事件流和工具闭环
05–08 Tool、Sandbox、MCP、Skills/Hooks 模型提出行动后,本地运行时如何执行、审批、隔离和扩展
09–12 App Server、TUI/CLI、State、SDK/Cloud 同一个 agent core 如何被包装成产品、服务和状态系统

系列写法

这组文章会引用 repo-relative 文件作为机制锚点,但不会把文章写成按文件顺序展开的实现笔记。每篇都按同一条线展开:先说明工程问题,再解释 Codex 的边界设计,然后给出可迁移伪实现,最后总结能迁移到其他 agent 系统的原则。

运行示例

为了保持系列连续性,后续文章会反复使用同一个任务作为心智模型:用户让 Codex 修复一个失败测试。这个任务看似简单,却会触发几乎所有关键机制:读取上下文、构造模型请求、流式返回、调用 shell、申请审批、沙箱执行、应用 patch、记录 rollout、更新 TUI、持久化 thread。

如何判断自己读懂了

读完这组文章,不应该只记住 Codex 里有哪些 crate,而应该能回答四个问题:第一,用户输入如何变成 runtime 可处理的操作;第二,模型输出如何变成事件和工具调用;第三,本地执行如何被审批、沙箱和 hooks 包住;第四,会话为什么既需要可回放日志,也需要查询索引。

本系列不做什么

这不是安装教程,不覆盖每一个命令参数,也不会把文章组织成文件树讲解。文件路径只作为机制锚点出现:当一个概念需要落到实现边界时,读者可以顺着 repo-relative 路径继续深挖。

贯穿示例

贯穿示例是“修复一个失败测试”。后续每篇都会从不同角度解释这个任务:01 看它如何穿过本地 runtime,03 看它如何形成多次模型采样,05 看测试命令如何变成工具执行,06 看命令为什么需要审批和沙箱,11 看这段过程如何被写入 rollout 和 state。这样读,系列就不是十三篇分散文章,而是一条完整路径。

关键源代码入口

文件 用途
README.md 机制锚点
codex-rs/README.md 机制锚点
codex-rs/Cargo.toml 机制锚点

小结

建议先读 01–04,建立“用户输入如何变成模型与工具闭环”的主线;再读 05–08,理解工具、安全和扩展生态;最后读 09–12,理解 Codex 如何把同一个 core 包装成 TUI、app-server、SDK、状态系统和 Cloud Tasks。