OpenAI Codex智能体循环揭秘:提示词缓存与上下文管理驱动自动化开发
OpenAI Codex 智能体循环深度解析:提示词缓存与上下文管理如何驱动自动化开发
近日,OpenAI 首席执行官山姆·奥特曼在社交媒体上发布了一条引人注目的推文,预告了公司即将推出的一系列与 Codex 相关的重要更新。他特别指出,网络安全将是这些新发布的核心主题,暗示着 OpenAI 正致力于将人工智能驱动的代码生成能力与更高级别的安全保障相结合。

与奥特曼以往的推文一样,这条消息迅速引发了技术社区的广泛讨论。开发者们对即将到来的 Codex 增强功能表现出浓厚兴趣,特别是对其在自动化软件开发和代码安全方面的潜在应用。



似乎是为了呼应这一预告,OpenAI 官方技术博客随即发布了一篇题为《揭秘 Codex 智能体循环》的深度文章,系统阐述了 Codex CLI(命令行界面)的核心架构——智能体循环(Agent Loop)的工作机制。

博客原文地址:https://openai.com/index/unrolling-the-codex-agent-loop/
该技术文档详细揭示了 Codex 如何通过 Responses API 协调用户指令、模型推理与本地工具执行(如 Shell 命令)。文章重点探讨了两个关键技术:通过保持“提示词前缀一致性”来触发缓存优化性能,以及利用自动压缩技术管理上下文窗口。这些机制共同确保了在严格遵循数据隐私原则(特别是零数据保留,ZDR)的前提下,实现安全、高效的自动化软件开发流程。
一、Codex CLI:本地化软件智能体的演进
Codex CLI 是 OpenAI 推出的跨平台本地软件智能体,专门设计用于生成高质量的软件变更。自今年4月首次发布以来,OpenAI 团队在构建世界级软件智能体方面积累了丰富经验。为了分享这些宝贵的见解,公司启动了系列技术博客,本文作为开篇之作,聚焦于智能体循环这一核心概念。

Codex 开源仓库:https://github.com/openai/codex
需要明确的是,“Codex”在 OpenAI 的语境中涵盖了一系列软件智能体产品,包括 Codex CLI、Codex Cloud 和 Codex VS Code 扩展。本文重点讨论的是 Codex Harness——为所有 Codex 体验提供核心智能体循环和执行逻辑的基础架构,主要通过 Codex CLI 呈现给用户。
二、智能体循环:AI驱动开发的核心引擎
每个AI智能体的核心都围绕着“智能体循环”这一概念运转。这个循环可以简化为一个包含多个阶段的持续过程:

- 输入阶段:智能体接收用户输入,并将其整合为一组结构化的文本指令,即提示词。
- 推理阶段:将提示词发送给模型请求生成回复。此过程中,文本首先被转换为输入Token序列,模型基于这些Token采样生成新的输出Token。
- 解码阶段:输出Token被转换回文本,形成模型的回复。由于Token是增量生成的,许多LLM应用能够实现流式输出。
- 决策阶段:模型可能生成最终回复,也可能请求调用工具(如执行Shell命令)。
- 执行与迭代阶段:如果请求工具调用,智能体执行该调用并将结果附加到原始提示词中,然后重新查询模型。这个过程循环进行,直到模型生成最终的用户消息。
从“用户输入”到“智能体回复”的完整过程被称为一个对话轮次。每个轮次可能包含多次推理与工具调用的迭代。随着对话的进行,历史记录会不断累积,导致提示词长度持续增加。
这里面临一个关键挑战:每个模型都有固定的上下文窗口限制,即单次推理调用可处理的最大Token数量。智能体在一个轮次中可能进行数百次工具调用,极易耗尽这一限制。因此,高效的上下文窗口管理成为智能体的核心职责之一。
三、模型推理与提示词构建机制
Codex CLI 通过向 Responses API 发送 HTTP 请求来执行模型推理。这一设计具有高度灵活性,支持多种配置方式:
- 使用 ChatGPT 登录时,端点指向
https://chatgpt.com/backend-api/codex/responses - 使用 OpenAI API 密钥认证时,端点指向
https://api.openai.com/v1/responses - 配合本地模型服务(如 ollama 或 LM Studio)时,默认指向
http://localhost:11434/v1/responses - 也支持与云服务商(如 Azure)托管的 Responses API 集成
在构建初始提示词时,Codex 采用了一种精心设计的结构化方法。终端用户并不直接指定完整的提示词,而是通过 Responses API 的 JSON 负载提供多种输入类型,由服务器决定如何将这些信息组织成模型可理解的格式。

关键的 JSON 参数包括:
- instructions:插入模型上下文的系统或开发者消息
- tools:模型可调用的工具列表
- input:输入给模型的文本、图像或文件列表
Codex 在添加用户消息前,会在 input 中插入多个预定义项目,包括沙箱环境描述、开发者指令、用户指令集以及当前运行环境信息。这些元素共同构成了一个丰富而结构化的上下文,使模型能够准确理解任务要求和执行环境。


四、对话轮次与提示词演化
当 Codex 向 Responses API 发送初始请求时,便开启了对话的第一个轮次。服务器以服务器发送事件(SSE)流的形式返回响应,Codex 消费这些事件流并将其转换为内部事件对象。
假设第一次请求包含了推理和函数调用两类完成事件。当 Codex 使用工具调用结果再次查询模型时,这些事件必须体现在后续请求的 input 字段中。值得注意的是,旧提示词是新提示词的精确前缀——这一设计选择至关重要,因为它启用了高效的提示词缓存机制。

在智能体循环中,推理与工具调用可能迭代多次,提示词持续增长,直到模型生成表示轮次结束的助手消息。在 Codex CLI 中,这条消息会呈现给用户,并将控制权交还。
如果用户继续对话,前一轮的助手消息和新用户消息都会附加到后续请求的 input 中,开始新的轮次。这种设计虽然直观,但也带来了挑战:随着对话深入,发送给 API 的数据量可能呈二次方增长。
五、性能优化:提示词缓存的艺术
面对可能的数据膨胀问题,一个自然的疑问是:智能体循环是否会导致性能急剧下降?虽然 Responses API 支持 previous_response_id 参数来缓解这一问题,但 Codex 目前选择不使用它,主要是为了保持请求完全无状态,并支持零数据保留(ZDR)配置。
“避免使用 previous_response_id 简化了 Responses API 提供者的工作,确保了每个请求的无状态性。这也使得支持选择零数据保留(ZDR)的客户变得简单,因为存储支持 previous_response_id 所需的数据会与 ZDR 原则冲突。”——OpenAI 技术文档
在实际应用中,采样模型的成本通常远高于网络传输成本,因此优化采样效率成为首要目标。这正是提示词缓存技术大显身手的地方——通过重用之前推理调用的计算结果,当缓存命中时,采样模型的时间复杂度可以从二次方降低到线性。
OpenAI 的文档明确指出:“缓存命中仅适用于提示词内的精确前缀匹配。为了获得缓存收益,应将静态内容(如指令和示例)放在提示词开头,而将变量内容(如用户特定信息)放在末尾。”
在 Codex 中,以下操作可能导致缓存未命中:
- 对话过程中更改可用工具列表
- 切换目标模型(这会改变模型特定指令)
- 更改沙箱配置、批准模式或当前工作目录
Codex 团队在引入新功能时格外谨慎,避免破坏提示词缓存。例如,早期对 MCP(模型上下文协议)工具的支持曾因工具排序不一致而导致缓存未命中。MCP 工具尤其需要注意,因为 MCP 服务器可能随时通知工具列表变更,在长对话中响应此类通知可能导致昂贵的缓存失效。
六、上下文管理:智能压缩策略
除了缓存优化,智能体还必须有效管理另一个关键资源:上下文窗口。Codex 采用的总体策略是:当Token数量超过预设阈值时,自动对对话进行压缩。
具体而言,系统会用一个小型的新项目列表替换原有的 input 内容,这个列表能够代表对话的精华,使智能体在理解上下文的同时继续工作。早期的压缩实现需要用户手动触发,而现在的 Responses API 已经演进,提供了专门的 /responses/compact 端点,能够更高效地执行压缩操作。
该端点返回一个包含特殊 type=compaction 项目的列表,其中的 encrypted_content 字段保留了模型对原始对话的潜在理解。当对话长度超过 auto_compact_limit 设置时,Codex 会自动调用此端点进行压缩,确保上下文窗口得到合理利用。
七、展望未来:更深入的架构探索
本文系统介绍了 Codex 智能体循环的核心机制,详细阐述了 Codex 在查询模型时如何构建和管理上下文。在这个过程中,我们强调了在 Responses API 之上构建智能体循环的实际考虑和最佳实践,这些见解对任何从事类似开发的工程师都具有参考价值。
虽然智能体循环为 Codex 提供了坚实基础,但这仅仅是开始。OpenAI 承诺在后续文章中将继续深入探讨 CLI 的架构细节,包括工具调用的具体实现方式,以及 Codex 沙箱模型的安全机制。随着这些技术的不断成熟,我们有理由期待 AI 驱动的自动化软件开发将变得更加智能、高效和安全。
对于开发者和技术团队而言,理解 Codex 的智能体循环不仅有助于更好地利用这一强大工具,也为构建自己的AI辅助开发系统提供了宝贵的设计范式。在人工智能与软件开发深度融合的时代,这类技术正成为提升生产力和代码质量的关键推动力。
想获取更多AI最新资讯与智能工具推荐, 欢迎访问 👉 AI Tools Nav ——优质的 AI导航平台 与 AI学习社区
本文来源:机器之心
原文链接:https://www.jiqizhixin.com/articles/735811a6-3063-4311-9002-5baaba5cd847