13 — 高频问答与追问链
以下为 基于本仓库实现 的问答模板;进一步追问时可下钻到对应文档与源码路径。
架构与分层
Q:Codex 为什么拆 protocol 和 core?
A: protocol 只做类型与序列化契约,依赖最小;core 承载状态机、工具执行、沙箱、上游 API。这样 TUI、exec、app-server 共享同一语义,且协议可单独版本化与生成 TS/JSON Schema,避免「UI 改一点牵动全仓库」。(见 codex-rs/protocol/README.md、docs2/02。)
追问:Op 为什么 non_exhaustive?
A: 向后兼容:新增操作类型时,旧客户端的 serde 仍可读,Rust 下游必须处理未知或升级,防止静默漏处理。(protocol/src/protocol.rs。)
会话模型
Q:Thread / Turn / Item 和 ChatGPT 的 messages 有什么区别?
A: Thread/Turn/Item 是 可同步的树状/时间线模型,适合 IDE 增量推送、持久化与工具审计;flat messages 难表达「同一轮里多个工具并行、部分失败重试」等结构。(app-server/README.md Core Primitives。)
安全
Q:沙箱策略为什么随 UserTurn 传,而不是只在 config 里全局配置?
A: 每轮可能切换 cwd、审批模式、模型;与工具调用环境强绑定,放 Turn 上保证 请求级一致性,减少隐式全局状态。(Op::UserTurn 字段;docs2/03。)
Q:Linux 为什么需要 bubblewrap,而不仅是 Landlock?
A: 复杂文件系统 carve-out 无法无损映射到旧 Landlock 模型时,必须用更强容器边界;无法安全映射时 fail-closed。(codex-rs/core/README.md Linux 小节。)
文件编辑
Q:apply_patch 为什么要「显式调用」?
A: 防止模型在普通文本中夹带可执行补丁、保证审批链路与 telemetry 有明确 tool 边界;否则安全与 UX 都难定义。(ApplyPatchError::ImplicitInvocation;docs2/05。)
Q:单二进制怎么跑 apply_patch?
A: argv0 别名或 --codex-run-as-apply-patch 内嵌路径,由 codex-arg0 分发。(docs2/11。)
模型与网络
Q:WebSocket prewarm 是什么?失败会怎样?
A: 先发 generate=false 的 response.create 完成握手,降低真正流式请求的冷启动;失败计作首次连接尝试,由统一重试/降级处理。(core/src/client.rs 顶部文档。)
终端 UI
Q:流式输出卡顿怎么优化?
A: 自适应 chunking:积压小用 Smooth 保持节奏,积压大用 CatchUp 清队列,并用滞回避免模式抖动;常量按 docs/tui-stream-chunking-tuning.md 调。(tui/src/streaming/chunking.rs。)
Q:Ctrl+C 第一次为什么不直接退出?
A: 分层:modal 优先、可取消工作走 Interrupt、空闲双击才 ShutdownFirst quit,避免误触与未清理子进程。(docs/exit-confirmation-prompt-design.md,PR #8936。)
IDE / App-Server
Q:app-server 过载时行为?
A: 有界队列,返回 -32001 可重试错误;客户端应退避。避免内存无限增长与 IDE 卡死。(app-server/README.md。)
扩展
Q:Skills 和系统 prompt 有什么区别?
A: Skills 是可安装、可缓存、可带资源的包;系统 prompt 是内置静态指令。Skills 用 marker 优化启动安装。(skills/src/lib.rs;docs2/10。)
开放题(考察系统思维)
Q:如果你给 Codex 加一个新工具,要动哪些层?
A: 典型路径:protocol(工具 schema/结果类型)→ tools 注册与 Responses API JSON → core 执行与沙箱/审批钩子 → TUI/app-server 展示事件 → 文档与 schema 生成;若有 MCP 对称能力还要更新 MCP 描述。(需结合具体工具类型作答。)
本仓库未包含的内容
GitHub Issues 全文:本机快照未附带 issue 数据库;分析以 仓内源码与
docs/、codex-rs/docs/为主。建议结合 openai/codex issues 按关键词(sandbox、app-server、TUI、apply_patch)补充实战案例。官方长文:多数
docs/*.md指向 developers.openai.com/codex,进阶学习可交叉阅读。
返回总目录:readme.md