Day 07 / 共 20 天 · 第 2 周 · 核心引擎
Op 协议与 app-server
protocol::Op、JSON-RPC v2、TUI/exec/IDE 共用同一条控制面。
📍 你在整门课的位置 · 第 2 周 · 核心引擎
D06 启动链→D07 Op 协议与 app-server→D08 Agent Turn 主循环→D09 配置分层与 config.toml→D10 认证与模型 Provider
L01
协议层:一切操作是 Op
codex-rs/protocol/src/protocol.rs 的 Op 是 core 提交队列上的「动词」。
类比:浏览器有 DOM 事件;Codex 有 Op。UI 只负责产生 Op,core 负责执行。
L02
你一定会碰到的 Op
| Op | 含义 |
|---|---|
UserInput | 用户发一轮(可带 schema / 额外上下文) |
ExecApproval / PatchApproval | 你点允许/拒绝 |
Interrupt | 打断当前 turn |
ThreadSettings | 改线程设置但不发消息 |
Op::UserInput {
items: Vec<UserInput>,
final_output_json_schema: Option<Value>,
// ...
thread_settings: ThreadSettingsOverrides,
}L03
app-server:对外 JSON-RPC
对外方法风格:thread/*、turn/*(见 codex-rs/app-server/README.md、app-server-protocol/src/protocol/v2.rs)。
为什么多这一层?同一套 core 可被 TUI、VS Code、桌面、远程 daemon 复用,避免每个 UI 复制 agent 逻辑。
L04
今日小结
✅ 能解释 Op vs Event;知道 UserInput / ExecApproval;知道 app-server 是控制面。