Codex 源码分析¶
状态:OpenAI 官方 Apache-2.0 开源 CLI;研究快照:2026-09-26。
它是什么¶
OpenAI Codex CLI 是运行在本机终端的 coding agent。官方仓库公开了 Rust 核心、CLI、SDK、文档和构建配置;产品还存在 IDE、桌面和云端形态,本页只分析开源 CLI,不把云端 Agent 的内部实现写成已公开源码。
入口:openai/codex、Codex 文档。
源码地图¶
| 目录 | 研究用途 |
|---|---|
codex-rs/ |
Rust Agent 核心、事件、工具执行和安全边界 |
codex-cli/ |
CLI 入口、参数、交互和发布包装 |
sdk/ |
供其他程序调用的接口边界 |
.codex/ |
仓库内开发与 Agent 约束 |
docs/ |
安装、构建和行为说明 |
patches/ / tools/ |
工具与工程辅助,不等同于 Agent 业务核心 |
阅读顺序建议:先看 README 的权限/安装说明,再跟一条“用户请求 -> policy/sandbox -> tool call -> patch -> test -> final event”的调用链,最后读 SDK 和扩展边界。
安全心智模型¶
Codex 的工程价值不只是模型调用,而是将本地执行风险显式化:
用户目标
-> policy / sandbox / approval
-> read-only inspection
-> patch or command
-> result / test / diff
-> user-visible event and rollback surface
实际安全性取决于运行模式、配置、操作系统和调用者批准。不要把“有 sandbox”当成自动安全证明;要测试文件范围、网络、进程、软链接、密钥环境变量、超时和取消。
适用条件、代价、验证¶
适用条件¶
需要本地执行、代码修改和测试,且希望把沙箱、审批、diff 和退出结果纳入审计的团队。
代价¶
Rust 核心和多种运行模式提高了学习与构建成本;OpenAI 模型能力和 CLI 安全策略还会随 release 演进。企业自定义 provider、模型路由或业务工具要通过公开接口扩展,不应改动内部假设。
验证方式¶
- 在临时仓库测试读、写、shell、网络和删除操作的边界。
- 检查批准前后命令、环境变量、工作目录和退出码。
- 让 Agent 修改代码并执行测试,核对 diff 与最终摘要一致。
- 中断长任务,检查子进程、锁文件和后台任务是否清理。
- 用同一 workload 对比不同模型和 reasoning effort,分离 harness 与模型效果。
和其他 Agent 的差异¶
| 对比 | Codex | dsh | pi | OpenCode |
|---|---|---|---|---|
| 首要重点 | 本地执行安全与 coding workflow | 全能力插件化 | 极简可嵌入 runtime | 多 provider 的团队工作台 |
| 扩展方式 | SDK、配置、工具边界 | Cordis plugin/profile | extension、skill、SDK | config、MCP、plugin、agent |
| 默认学习价值 | sandbox/approval/patch | composition/trace | loop/session/provider | permission/agent/server |
| 企业改造重点 | policy、审计、运行器 | 插件治理与版本 | 补齐集中策略 | server、租户和 provider 路由 |
FDE 结论¶
Codex 最值得借鉴的是 把工具副作用和审批做成一等公民。如果本项目未来要把 Agent 接到真实文件、部署、数据库或运维系统,建议复制这一层的研究方法:先定义能力边界和回滚,再选择模型与提示词。