← Knowledge Atlas · 源头
Unrolling the Codex Agent Loop
Codex agent loop 内部机制:prompt 构建、推理流程、prompt caching、compaction
源
拆解 Codex Agent Loop
循环由模型 tool call 驱动——以 assistant message 结束 turn
1System messageserver 控制
2Instructionsgpt-5.2-codex_prompt.md
3ToolsCodex 内建 + Responses API + MCP
4Developer messagesandbox 权限 · 审批模式
5User instructionsAGENTS.md 层级聚合 · skills
6Env contextcwd · shell
7User message本轮输入
Prompt Caching后续请求是前序的精确前缀——O(n²) 采样成本 → O(n)。破坏 cache:改 tools · 切模型 · 改 sandbox。MCP tools/list_changed 尤其棘手。
→ implicit-loop-architecture · codex · context-management · prompt-cachingopenai.com/index
Unrolling the Codex Agent Loop
- 来源:
sources/openai_official/unrolling-codex-agent-loop.md - URL: https://openai.com/index/unrolling-the-codex-agent-loop/
- 作者: OpenAI Codex Team
概述
本文详细拆解 Codex 的 agent loop 内部机制——prompt 构建、推理流程、工具调用循环、性能优化和上下文管理。是理解 隐式循环架构 工程实现的核心参考。
Agent Loop 详解
循环机制
- 用户输入 → 构建 prompt → 发送到 Responses API
- 模型返回:final response(结束 turn)或 tool call(继续循环)
- Tool call → 执行 → 输出追加到 prompt → 重新查询模型
- 重复直到模型产出 assistant message(turn 结束信号)
Prompt 构建
按优先级递减排列:
- System message(由 server 控制)
- Instructions(model-specific,如
gpt-5.2-codex_prompt.md) - Tools(Codex 内建 + Responses API + MCP 工具)
- Developer message(sandbox 权限、审批模式)
- User instructions(AGENTS.md 层级聚合 + skills 元数据)
- Environment context(cwd、shell)
- User message
Prompt Caching
关键性能优化:后续请求的 prompt 是前序请求的精确前缀,使得 prompt caching 可以将采样成本从二次方降为线性。破坏 cache 的操作:改 tools 列表、切换模型、改 sandbox 配置。MCP 工具尤其棘手——notifications/tools/list_changed 会导致中间 cache miss。
Compaction
演进过程:
- 手动
/compact→ 用 LLM 总结对话 → 替换 input - Responses API
/responses/compact端点 → 更高效,包含type=compaction+encrypted_content保留模型对原始对话的潜在理解 - 自动触发:超过
auto_compact_limit时自动调用
与 Anthropic SDK 的对比
两者都采用 隐式循环架构,但实现细节不同:
- Codex:Responses API + SSE 流 + stateless(支持 ZDR)
- Claude Agent SDK:Messages API + compaction 内建
- 共同点:循环由模型 tool call 驱动,以 assistant message 结束
References
sources/openai_official/unrolling-codex-agent-loop.md