Agent X-Ray
RuntimeNotesAbout
Notes/源码拆解/Codex Harness/README

Codex Harness 深度教程

5 分钟 · 更新于 2026-09-01

Codex Harness 深度教程

15 章拆解 OpenAI Codex CLI 的架构设计与实现 —— 一个 102 个 crate、147 万行 Rust 的生产级 agent(智能体)运行外壳

本教程的定位(2026-08-24) 同目录下已有两份 harness 拆解:Pi-Agent 教程拆的是减法哲学(4 个包,刻意不做 MCP / 子 Agent / 权限弹窗),DeepSeek Harness 教程拆的是全插件化(185 个包,连 agent loop 都是配置里的一行)。

Codex 是这道题的第三种答案:不追求最小,也不追求最大可替换性,而是把一个每天被几百万开发者使用的产品该有的东西全部做出来并塞进一个静态二进制里。它的关键词是工程化——协议先行、平台全覆盖、14168 个测试、四套沙箱实现、一个用模型守模型的安全层。

三者不是优劣关系。第 15 章有完整对照。

关于"OpenAI 最近开源了 Codex"这个说法的更正 Codex CLI 的仓库 openai/codex 初始提交是 2025-04-16,从第一天起就是 Apache-2.0 开源,不是最近才开放。本教程核实的时间线:

事件时间依据
仓库初始提交2025-04-16git log --reverse 首条
codex-rs/core(Rust 重写核心)落地2025-04-24该目录首次出现的提交
Guardian 安全层进入仓库2026-03-15core/src/guardian/ 首次出现
ext/ 内部扩展平面2026-05-11codex-rs/ext/ 首次出现

所以真实情况不是"某天开源了",而是持续在公开仓库里开发——包括生产系统提示词、Guardian 风险策略、四套沙箱实现这些通常会被藏起来的东西。本教程认为这才是它值得读的原因。

版本与写作方法 本教程基于 openai/codex main 分支 09609ba4(2026-08-24),对照本机安装的 codex-cli 0.146.0。仓库当时的最新 tag 是 rust-v0.149.1rust-v0.150.0-alpha.7

与 Pi 教程(转载)不同、与 dsh 教程(读打包产物)也不同:本教程读的是原始 Rust 源码——注释、测试、TODO 全在。凡是标注 [源码] 的结论都给了 文件:行号,你可以 clone 仓库当场核对。


一、这套教程解决什么问题

如果你读过前两份 harness 教程,会带着这些问题来看 Codex:

  1. 一个 agent harness 做到"产品级"要多少东西? —— Pi 说 4 个包够了,dsh 说拆成 185 个位置,Codex 的答案是 102 个 crate、147 万行、14168 个测试
  2. core 和 UI 怎么解耦才能同时喂饱终端、IDE 插件、桌面 App、MCP 客户端和云端任务? —— Codex 的答案是一份提交/事件队列协议,前端全是它的消费者
  3. 沙箱这种"每个操作系统都不一样"的脏活,认真做是什么样子? —— macOS Seatbelt、Linux Landlock+seccomp+bwrap、Windows AppContainer,三套独立实现加一层统一抽象
  4. 当静态规则拦不住提示词注入时怎么办? —— Codex 的答案是 Guardian:再上一个模型当判官,风险分类学写成 8KB 的策略提示词放在仓库里

如果你没读过前两份教程,本教程也是自洽的:从第 2 章的工程骨架讲起,不预设你了解任何一个具体 harness,也不要求你会写 Rust(所有代码片段都有中文解读)。


二、章节结构

text
第一部分 · 骨架
ch01 开篇总览  →  ch02 工程骨架  →  ch03 协议先行
                                        ↓
第二部分 · 主干
ch04 Agent Loop  →  ch05 模型调用  →  ch06 上下文工程  →  ch07 上下文压缩
                                        ↓
ch08 工具系统  →  ch09 命令执行与终端
                                        ↓
第三部分 · 边界
ch10 沙箱  →  ch11 审批与策略(含 Guardian)  →  ch12 会话持久化
                                        ↓
第四部分 · 扩展与总结
ch13 扩展面  →  ch14 多 Agent 委派  →  ch15 设计精华
章节主题核心问题难度
第 1 章开篇总览Codex 是什么?和 Pi / dsh 的本质区别在哪?入门
第 2 章工程骨架102 个 crate 怎么塞进一个二进制?入门
第 3 章协议先行为什么 core 完全不知道前端是谁?★ 核心
第 4 章Agent LoopTask / Turn / Step 三级生命周期怎么转?★ 核心
第 5 章模型调用为什么砍掉了 Chat Completions?WebSocket 预热是什么?★ 核心
第 6 章上下文工程那份真实的生产系统提示词长什么样?★ 核心
第 7 章上下文压缩为什么压缩要做两套?进阶
第 8 章工具系统工具太多喂不下时怎么办?★ 核心
第 9 章命令执行为什么跑个命令需要 5000 行代码?进阶
第 10 章沙箱三套内核级隔离机制怎么统一?进阶
第 11 章审批与策略Guardian 凭什么能拦住提示词注入?★ 核心
第 12 章会话持久化一个会话怎么做到能恢复、能分叉、能迁移?进阶
第 13 章扩展面五种扩展方式各自解决什么?进阶
第 14 章多 Agent 委派主 agent 变成协调者之后怎么工作?进阶
第 15 章设计精华哪些设计该抄,哪些不该?总结

阅读建议:第 1–4 章是骨架,建议顺序通读——不理解第 3 章的提交/事件队列,后面每一章都会卡住。第 5 章起可按需跳读。第 11 章(Guardian)和第 15 章即使不读源码也值得单独看。

每一章回答三个层次的问题:是什么(概念)、怎么做(源码取证)、为什么这样做(设计取舍)。


三、素材基线:本教程的每个数字从哪来

本教程的所有事实都可以在一台 clone 了仓库的机器上复核。写作时使用的取证路径:

素材位置规模
Rust 源码codex-rs/102 个 crate / 3293 个 .rs 文件 / 1465720 行
测试同上493 个 tests/ 文件,14168 处 #[test] / #[tokio::test]
生产系统提示词codex-rs/core/*.md + core/templates/6 份模型提示词 + 指令模板 + 2 份人格模板
Guardian 策略codex-rs/core/src/guardian/policy.md8281 字节风险分类学
提示词模板库codex-rs/prompts/templates/压缩 / 目标 / 复核 / 实时 / 权限 五类
协议规范codex-rs/docs/protocol_v1.md191 行,含 Mermaid 时序图
依赖锁定codex-rs/Cargo.lock1359 个 crate
本机运行时codex-cli 0.146.0(npm 全局)350 MB,musl 静态二进制

自己动手复核 每章末尾都有「动手复核」小节,给出可直接运行的命令。教程正文里凡标注 [源码] 的结论都出自这些命令能定位到的位置。

起手式:

bash
git clone --filter=blob:none https://github.com/openai/codex.git
cd codex/codex-rs && ls

原始资料索引见 00-资料索引,研究背景与结论摘要见 Codex Harness 研究摘要。


四、和另外两份 harness 教程的关系

维度Pi 教程dsh 教程本教程
拆解对象pi-agent SDKDeepSeek HarnessOpenAI Codex CLI
语言TypeScriptTypeScriptRust
设计哲学减法:核心极简全插件化:一切可替换工程化:产品该有的全做
规模4 个核心包185 个包102 个 crate / 147 万行
交付形态npm 库npm 运行时 + 插件树单个静态二进制
前端TUIWeb GUI + CLITUI / IDE / 桌面 App / MCP / 云端,共用一份协议
扩展方式TS 扩展文件cordis 插件 + 四层 patchMCP / Skills / Hooks / Plugins / Code Mode 五条路
沙箱无(明确不做)seam + 多后端三套操作系统原生实现
安全上限靠人沙箱 + 审批 seam沙箱 + 审批 + 模型判官
内容来源转载 + 补全本机取证(打包产物)原始源码取证

第 15 章会把这张表展开成完整的哲学对照,并汇总全书 26 条可迁移的设计判断(其中 10 条标星为优先采纳项),最后给出对本仓的具体启示。


  • Pi-Agent 深度教程 —— 减法哲学的对照组
  • DeepSeek Harness 深度教程 —— 全插件化的对照组
  • Harness Engineering 研究报告 —— harness 工程的行业方法论背景
  • Codex Harness 研究摘要 —— 本教程的调研过程与核心结论
  • 00-资料索引 —— 官方与第三方原始资料清单

本章目录
一、这套教程解决什么问题二、章节结构三、素材基线:本教程的每个数字从哪来四、和另外两份 harness 教程的关系Related Documents
苏ICP备2025204887号-2