核心内容摘要
C#上位机工业数据全方案:数据库对接+报表生成+MES系统联动,满足ISO生产追溯合规要求
OpenAI工程师迈克尔·博林日前发布了该公司Codex CLI编程智能体内部工作机制的详细技术解析为开发者深入了解这类能够编写代码、运行测试并修复Bug的AI编程工具提供了宝贵洞察。
这一技术披露补充了我们此前关于AI智能体工作原理的报道详细揭示了OpenAI如何实现其智能体循环机制。
AI编程智能体正在经历类似ChatGPT时刻的突破Claude Code配合Opus
5以及Codex配合GPT-
2已经在快速编写原型、界面和生成样板代码方面达到了全新的实用水平。
OpenAI此时发布Codex设计理念的详细信息正值AI智能体成为日常工作中更加实用的工具之际。
这些工具并非完美无缺在一些软件开发者中仍存在争议。
虽然OpenAI此前向Ars Technica透露他们使用Codex作为编程工具来帮助开发Codex产品本身但我们通过实际体验发现这些工具在简单任务上表现惊人的快速但在超出训练数据范围时仍显脆弱在生产环境工作中需要人工监督。
项目的大致框架往往能快速生成且效果令人惊叹但填充细节则涉及繁琐的调试和解决智能体无法独立克服的局限性。
博林的文章并未回避这些工程挑战。
他讨论了提示词二次方增长的低效性、缓存未命中导致的性能问题以及团队发现并修复的Bug比如MCP工具枚举不一致的问题。
这种技术细节的透明度对OpenAI来说颇为罕见该公司此前并未发布过ChatGPT等其他产品内部工作机制的类似详细分析。
但我们已经在12月的采访中看到OpenAI对Codex的不同态度他们指出编程任务似乎非常适合大语言模型处理。
值得注意的是OpenAI和Anthropic都在GitHub上开源了他们的编程CLI客户端允许开发者直接检查实现代码而他们并未对ChatGPT或Claude网页界面采取同样做法。
智能体循环的官方内幕解析博林的文章重点关注他所称的智能体循环这是协调用户、AI模型以及模型调用执行编程工作的软件工具之间交互的核心逻辑。
正如我们在12月的报道中所述每个AI智能体的核心都是一个重复循环。
智能体接收用户输入并为模型准备文本提示词。
随后模型生成响应要么为用户产生最终答案要么请求工具调用如执行shell命令或读取文件。
如果模型请求工具调用智能体会执行该操作将输出追加到原始提示词中并再次查询模型。
这个过程重复进行直到模型停止请求工具并为用户生成助手消息。
这个循环过程需要一个起点博林的文章揭示了Codex如何构建发送给OpenAI响应API负责处理模型推理的初始提示词。
提示词由几个组件构建而成每个组件都有指定的角色来确定其优先级系统、开发者、用户或助手。
指令字段来自用户指定的配置文件或CLI捆绑的基础指令。
工具字段定义模型可以调用的功能包括shell命令、规划工具、网络搜索功能以及通过模型上下文协议MCP服务器提供的任何自定义工具。
输入字段包含一系列描述沙盒权限、可选开发者指令、当前工作目录等环境上下文以及用户实际消息的项目。
随着对话继续每个新回合都包含之前消息和工具调用的完整历史记录。
这意味着提示词随着每次交互而增长这带来了性能影响。
根据文章描述由于Codex不使用可选的previous_response_id参数该参数允许API引用存储的对话状态每个请求都是完全无状态的即每次API调用都发送完整的对话历史而不是服务器从内存中检索。
博林表示这种设计选择为API提供商简化了操作并使支持选择零数据保留OpenAI不存储用户数据的客户变得更容易。
对话中提示词的二次方增长虽然低效但博林解释说提示词缓存在一定程度上缓解了这个问题。
缓存命中仅适用于提示词内的精确前缀匹配这意味着Codex必须小心避免可能导致缓存未命中的操作。
在对话中途更改可用工具、切换模型或修改沙盒配置都可能使缓存失效并影响性能。
不断增长的提示词长度与上下文窗口直接相关后者限制了AI模型在单次推理调用中能处理的文本量。
博林写道当Token计数超过阈值时Codex会自动压缩对话就像Claude Code一样。
早期版本的Codex需要通过斜杠命令手动压缩但当前系统使用专门的API端点来压缩上下文同时通过加密内容项保留模型对所发生事件理解的摘要部分。
博林表示他系列文章的后续部分将涵盖CLI架构、工具实现细节以及Codex的沙盒模型。
QAQ1什么是Codex CLI编程智能体它有什么功能ACodex CLI是OpenAI开发的AI编程智能体能够编写代码、运行测试并修复Bug。
它通过智能体循环机制与用户、AI模型和软件工具协调交互可以快速生成原型、界面和样板代码但需要人工监督来处理复杂任务和生产环境工作。
Q2AI编程智能体的智能体循环是如何工作的A智能体循环是一个重复过程接收用户输入并准备提示词模型生成响应或请求工具调用如果需要工具调用就执行并将结果追加到提示词中再次查询模型这个过程持续进行直到模型产生最终答案。
每次交互都包含完整的对话历史。
Q3Codex在使用过程中有什么技术局限性A主要局限包括提示词随对话增长导致的性能问题、缓存未命中影响效率、在超出训练数据范围时表现脆弱。
虽然能快速处理简单任务但填充细节时需要繁琐调试且无法独立克服某些技术限制仍需人工监督。