跳转至

Codex 智能体设计拆解

这个专题用 Codex 智能体作为案例,分析一个编程智能体运行时如何组织会话、轮次、模型循环、工具执行、权限控制和可恢复状态。阅读重点不是记住实现对象名,而是看清多入口如何汇入同一套核心,用户输入如何在运行中介入,工具副作用如何被权限和沙箱约束,长历史如何压缩、恢复和分叉。

Codex 智能体的核心是模型决策与本地执行分离。模型生成下一步意图,本地运行时负责权限判断、沙箱隔离、工具执行、结果记录和状态收束。一次用户轮次可能包含多次模型采样和多次工具调用,因此运行时的设计重点不是一次 API 请求,而是如何维护一个可中断、可审批、可恢复的长任务。

flowchart LR A[入口层<br/>CLI / TUI / exec / app-server] --> B[会话协议<br/>线程 / 轮次 / 条目] B --> C[运行时<br/>会话 / 任务 / 轮次上下文] C --> D[上下文<br/>历史 / 规则 / 记忆 / 技能] D --> E[模型<br/>流式输出 / 工具调用] E --> F[本地执行<br/>工具 / 权限 / 沙箱] F --> D C --> G[状态<br/>事件 / 持久化记录 / 线程存储]

推荐阅读路径

新手可以先读 00、01、04、11 章,先建立“用户输入 -> 模型采样 -> 工具执行 -> 结果回填 -> 轮次完成”的整体链路。

对照 Claude Code 阅读时,优先并排看 04、05、07、08、11 章。这几章覆盖主循环、上下文、工具、权限和真实任务,是两套运行时最容易建立映射的部分。

术语说明

  • 线程(Thread):一段长期会话,承载历史、配置和可恢复状态。
  • 轮次(Turn):一次用户任务,从输入开始,到完成、失败或中断结束。
  • 条目(Item):轮次内的结构化记录,例如用户消息、助手文本、命令、差异和权限请求。
  • 轮次上下文(Turn Context):本轮固定的目录、模型、权限、沙箱、工具和输出格式。
  • 持久化记录(rollout):用于恢复、分叉和历史回放的关键记录。
  • 长期记忆(memory):跨会话保存和读取的稳定信息,不提供额外执行权限。

章节

横向比较见 Claude Code 与 Codex 智能体设计对照