F4|源码与官方入口:crate 对章,跳转文档以官网为准
先别把 docs/ 当架构正文
读完 F3,去仓库 docs/ 找「官方说明」,会看到大量只有三行的 md,链到 developers.openai.com。其中 docs/sandbox.md 还链到 codex/security——那是 Codex Security 产品页,不是 Seatbelt(E11)。
判断先说清楚:实现以 codex-rs/ 源码为准;产品能力、地区、套餐以 developers.openai.com/codex 为准;仓库 docs/ 多数只是跳转。 这本电子书是读者向的拆解,不是 OpenAI 文档,也不是贡献指南——不接受外部代码 PR(A0)。
冲突时:源码行为 > 官网当前页 > 本电子书行号 > docs/*.md 跳转。行号会漂,按符号名重新定位。
1. codex-rs/ crate 对照章
不必读 workspace 里每一项。utils/、测试支持、v8-poc 当黑盒。analytics/、otel/ 贯穿各章,不当独立产品层。主干:
| crate / 目录 | 干什么 | 章 |
|---|---|---|
cli/ | 分发器:无参数 TUI、exec、app-server、mcp、plugin、cloud、apply、queue | A1 E1 B1 |
protocol/ | Op / Event / SessionSource / 配置枚举 | B1 |
core/ | Session、run_turn、Task | A2 B1 |
state/ thread-store/ | 索引、分页历史、lineage、持久队列、migrate | G2(队列概念仍见 B1) |
tools/ core/src/tools/ apply-patch/ | Spec / Handler / Orchestrator / patch | B2 |
ext/extension-api/ | 进程内 contributor 总线:install(),不是用户 Plugin | B2 D2 |
ext/image-generation/ ext/items/ | 图生成工具与 turn item | E5 B2 |
ext/git-attribution/ | 提交 / PR 署名说明书(world state) | C1 |
ext/history-notes/ | 历史笔记工具(host extension) | B2 |
file-watcher/ | 盯 skill 根,推 skills/changed | D1 G3 |
shell-escalation/ core/src/tools/runtimes/zsh_fork.rs | Unix zsh-fork:升权走 socket | 附录 B |
sandboxing/ linux-sandbox/ windows-sandbox-rs/ windows-sandbox-service/ mxc-sandbox/ execpolicy/ | 沙箱、前缀规则、permission profile 投影;Windows elevated / MXC 不是第四个 SandboxType | B3 |
network-proxy/ | 沙箱内出站 HTTP/SOCKS、凭证经纪 | G6 |
exec-server/ core/src/environment_selection.rs | 执行后端、ThreadEnvironments | B6 |
core/src/client.rs codex-api/ codex-client/ | Responses WS/HTTP、限流、重试 | G1 |
model-provider/ model-provider-info/ ollama/ lmstudio/ | provider 能力、OSS 端点 | G1 A1 |
models-manager/ | 模型目录 / preset;# Personality 剥离 | G1 C4 |
core/src/unified_exec/ | 可恢复 PTY | B2 附录 B |
context-fragments/ core/src/context/ compact*.rs rollout/ history/ | 注入、压缩、JSONL | B4 |
rollout-trace/ | trace bundle:resume 重放之外的旁路排障/回放记录,不进热路径 | G2 |
config/ codex-home/ utils/home-dir/ message-history/ | 分层、身份根、history.jsonl 输入框历史 | B5 |
features/ | Feature 注册表、Stage、legacy 键 | G4 |
login/ secrets/ keyring-store/ aws-auth/ workload-identity/ | 登录路径、钥匙串、云身份 | B5 |
user-verification/ | 本机 Secure Enclave / Touch ID 签名,证明「这个人、这台机器」;目前只有 macOS 实现,还没接进审批判定 | B3 |
process-hardening/ | pre-main 加固:禁核心转储、反 ptrace、清 LD_/DYLD_ 环境变量;目前只接进 voice-host/responses-api-proxy,主 CLI 没调 | B3 |
git-utils/ | Git 操作共用底座:worktree、trust 根、baseline diff、apply_git_patch | E2 E3 E6 B5 C2 |
backend-client/ cloud-config/ | 账号额度/费用、托管配置包(DeliveredConfigToml 等)、云任务详情的共用后端 client | B5 E3 C2 |
attachment-store/ | 附件持久化的 storage-neutral trait;默认 InlineAttachmentStore | E5 |
feedback/ | /feedback 上报;顺带暂存 Guardian 拒绝记录供用户主动附件上传 | E10 附录A |
core/src/agents_md.rs prompts/ | 说明书发现、review rubric | C1 E6 |
memories/read memories/write | 跨会话笔记 | C2 C3 |
collaboration-mode-templates/ | Default/Plan 说明书预设 | G5 |
ext/goal/ | Goal | C5 |
skills/ ext/skills/ | Skill 发现与注入 | D1 |
plugin/ core-plugins/ utils/plugins/ | 包装盒与市场 | D2 |
codex-mcp/ rmcp-client/ connectors/ | MCP client、Apps | D3 |
hooks/ | 生命周期拦截 | D4 |
agent-roles/ agent-graph-store/ agent-identity/ core/src/tools/handlers/multi_agents* | 子代理 V1/V2 | D5 |
tui/ exec/ sdk/ | 多前端投影 | E1 |
app-server/ app-server-protocol/ v2 app-server-daemon/ app-server-transport/ | 插座、协议、进程寿命 | E1 G3 |
worktree/ | 第二份 checkout | E2 |
chatgpt/ cloud-tasks/ | apply / 云端客户端 | E3 |
file-search/ | @ 文件搜索 | E5 |
voice-host/ realtime-webrtc/ | Voice 音频传输、capture/playback;TUI 已默认开启 | E5 |
external-agent-migration/ | /import:60+ 文件的迁移器,不是一句 slash | E9 |
tui/src/pets/ | 状态灯 | E8 |
code-mode*、ext/guardian-* 是有意留到 F3 第一周之后的;voice-host/ realtime-webrtc/ 撑的是 E5 的语音通道,同样不是 P0。ext/queue 的持久队列在 B1,落盘在 G2。analytics/ / otel/ 是 Event 的投影,项目 toml 不准配 otel(B5)。codex-core 已经太胖(仓库 AGENTS.md):新代码优先新 crate + Extension install(),不要再往 core 塞一章。
2. CLI 子命令对照章
E10 只管 TUI /。下面这些进 Subcommand(cli/src/main.rs),不进 slash 弹窗:
| 命令 | 干什么 | 章 |
|---|---|---|
| (无子命令) | 交互 TUI | E1 |
exec | 无头跑一轮 | E1 |
review | 无头 review | E6 |
login / logout | 鉴权 | B5 A1 |
mcp | 管外部 MCP | D3 |
plugin | 包装盒安装器 | D2 |
app-server / remote-control / agents | 插座、daemon、浏览共享会话 | G3 E3 |
app | 打开桌面壳(macOS/Windows) | A1 |
apply / cloud | 云端 diff 带回家 | E3 |
resume / fork / queue / archive / delete / unarchive / migrate-rollouts | 会话寿命与索引 | A2 G2 |
features | 写用户层开关 | G4 |
doctor | 只读体检 | B5 |
sandbox | 在 Codex 沙箱里跑一条宿主命令 | B3 |
exec-server | 独立执行后端 | B6 |
update / completion | 升级自己、生成补全 | 运维,不是循环 |
debug / execpolicy / responses-api-proxy / stdio-to-uds | 调试或内部 | 不必当产品入口 |
没有这张表会怎样?读者从 E10 以为 slash 就是全部入口,错过 sandbox、migrate-rollouts、agents。slash 是菜单,CLI 枚举才是分发器。
3. 官网页面对照
入口:developers.openai.com/codex。产品页会变,下表对的是 主题,不是永久 URL。
| 主题 | 典型路径 | 章 |
|---|---|---|
| CLI 功能 / slash | /codex/cli/features /codex/cli/slash-commands | E1 E10 |
| 鉴权 | /codex/auth | A1 B5 |
| 配置 | /codex/config-basic 等 | B5 |
| AGENTS.md | /codex/guides/agents-md | C1 |
| Skills | /codex/skills | D1 |
| MCP | /codex/mcp | D3 |
| 沙箱与审批 | /codex/agent-approvals-security | B3 |
| ExecPolicy | /codex/exec-policy | B3 |
| Memories / Chronicle | /codex/memories /codex/memories/chronicle | C2 C3 |
| Goal | /codex/prompting Goal mode | C5 |
| Worktrees | /codex/app/worktrees | E2 |
| Automations | /codex/app/automations | E7 |
| Computer Use | /codex/app/computer-use | E4 |
| App Server | /codex/app-server | E1 G3 |
| 非交互 | /codex/noninteractive | E1 |
| Codex Security 产品 | /codex/security | E11(不是沙箱) |
| Subagents | /codex/concepts/subagents | D5 |
agentskills.io 是 Skill 文件夹跨工具约定(D1),不是 Codex 独占协议。
4. 仓库 docs/ 里哪些只是跳转
几乎整目录都是官网镜像入口:
| 文件 | 跳到 |
|---|---|
getting-started.md | CLI features |
authentication.md | /codex/auth |
config.md example-config.md | config-basic / advanced / reference / sample |
agents_md.md | guides/agents-md |
skills.md | /codex/skills |
exec.md | noninteractive |
execpolicy.md | exec-policy |
slash_commands.md | CLI slash-commands |
sandbox.md | /codex/security(产品名冲突,沙箱应看 agent-approvals-security) |
例外:contributing.md(不接受 PR)、open-source-fund.md、license.md、install.md 是仓库自己的政策,不是功能说明书。
AGENTS.md 在仓库根:给 这个 repo 里的 agent 读的项目政策,也是 C1 的样例,不是用户手册。
5. 读完之后
做自己的 agent:从 F3 P0 开工,一枪合同看 B7,枪怎么飞出去看 G1,钉测试看 附录 F,resume 落盘看 G2,骨架用 F2,放文件用 F1。多前端插座看 G3,开关看 G4。第一周不必做 daemon 和 Network Proxy。
继续挖 Codex:打开上表 crate,对着 path:line 走;产品按钮以官网为准。不要从 docs/sandbox.md 或 tui/src/chatwidget.rs 起手。
6. 结语:带走一句话
源码在 codex-rs/,产品在 developers.openai.com/codex,仓库 docs/ 多数只是跳转——沙箱文档尤其不要点进 Codex Security 产品页;这本电子书教的是 harness 怎么分层,不是把全家桶再实现一遍。