你以为 AI 写代码只是简单的“你问我答”?
大错特错。
在 OpenAI 最新拆解的 Codex CLI 背后,藏着一个疯狂运转的“Agent Loop”(智能体循环)。它不是一次性给你答案,而是在你的电脑上不断试错、调用工具、撞墙、再重来。
这就像雇了一个不知疲倦、甚至会自我反思的程序员,坐在你的终端前疯狂敲键盘。
OpenAI 刚刚发布了一篇深度技术文章,把这个被称为“Codex Harness”的核心逻辑彻底摊开在了桌面上。这不仅仅是一次技术分享,更是对未来 AI 如何“干活”的一次预演。
不是聊天,是“无限循环”
Codex 的核心,根本不是对话,而是一个闭环。
这个循环的逻辑简单到令人发指:输入 -> 推理 -> 工具调用 -> 再推理。
当你在 Codex CLI 里下达指令,模型首先会进行“推理”。它不会直接给你写好的代码,而是决定要不要调用“工具”。比如,它可能会说:“先运行一下 ls 看看目录结构。”
一旦工具执行完毕,结果会被塞回给模型,模型拿着这些新信息,再次进行推理。
这个过程会不断重复,直到模型觉得“行了,不用再调用工具了”,才会生成最终的回复给用户。
正如一位网友在 Hacker News 上的神评论:
while true;
- Call the model
- If tool call, execute and append result, goto 1 else break
done;
这代码看着简单,却道尽了 Agent 的本质:它不是神,它是个“边做边学”的笨办法践行者。
这种“试错法”让计算机能处理那些乱七八糟、没法一次性解决的复杂问题。它不再追求一步到位的完美,而是追求在不断的“执行-反馈”中推进进度。
记忆的“二次方”诅咒
但这个循环有个致命的副作用:它会“吃”光你的内存。
每一次循环,每一次工具调用,都会产生新的文本。这些文本必须被塞进下一次请求的“上下文窗口”里。
随着对话越来越长,发送给 API 的数据量会呈二次方增长。
想象一下,你聊了 10 轮,每一轮都要把前面 9 轮的所有历史记录、所有的工具调用结果全部打包发过去。这就像你每说一句话,都要把从小到大所有的日记本背一遍。
Codex 的上下文窗口是有限的。一旦填满,Agent 就会失忆。
为了解决这个问题,OpenAI 玩了个极其精细的平衡术。
为了速度,OpenAI 玩了个“作弊码”
既然不能减少记忆,那就得想办法“偷懒”。
Codex 极度依赖 Prompt Caching(提示词缓存)。
因为每次请求的上下文里,大部分内容其实是不变的——比如系统指令、工具定义。只有最新的那一点点对话是新的。
只要保证这些不变的内容在请求的最前面(精确前缀匹配),服务器就能直接复用之前的计算结果。
这把原本昂贵的“二次方”计算成本,强行拉回了线性的水平。
但为了这个缓存,OpenAI 也是操碎了心。比如,如果中途换了个工具,或者改了沙盒配置,顺序一变,缓存就失效了。
甚至为了支持 Zero Data Retention(零数据留存),Codex 故意不使用 API 的 previous_response_id 参数。这意味着每次请求都是完全无状态的,服务器不存你的数据,这虽然增加了网络传输的负担,却换来了极致的隐私安全。
Cache hits are only possible for exact prefix matches within a prompt.
为了哪怕一毫秒的速度提升,他们都在跟每一个字节较劲。
学会“遗忘”也是一种智慧
当缓存也救不了你,上下文窗口真的要爆了怎么办?
Codex 选择了一种近乎“人类”的策略:总结与遗忘。
它引入了自动压缩机制。当 token 数量超过阈值,Codex 会调用一个特殊的 /responses/compact 接口。
这个接口不会简单粗暴地删除旧对话,而是生成一份“压缩包”。里面包含了一份精简的对话摘要,以及一个加密的 encrypted_content。
这个加密块里,藏着模型对之前对话的“潜在理解”。虽然人类看不懂,但模型能读出来,仿佛那是它上一轮留下的“潜意识”。
这样既腾出了空间,又保留了上下文的灵魂。
它不是神,它是个“笨拙”的人类
看完这些技术细节,你可能会觉得 Codex 强得离谱。
但用户社区里的反馈,却揭示了另一面。
有人吐槽,推理过程中的 Token 在工具调用循环里会保留,但一旦用户开始新的一轮对话,这些 Token 就会被丢弃。这意味着,Agent 可能会忘记上一轮思考过程中的一些细枝末节。
甚至有用户直言不讳地对比:
我试过 Gemini CLI、Claude Code CLI,性能烂得像一坨屎。但 Codex CLI 重写后(据说用了 Rust),性能简直疯狂。
这或许才是最讽刺的地方。
我们以为 AI 是全知全能的上帝,但实际上,它更像一个记忆力有限、需要不断写备忘录(Markdown 文件)、偶尔还会犯傻的实习生。
它通过疯狂的循环、精细的缓存、甚至学会“遗忘”来模拟人类的智慧。
OpenAI 这次拆解 Codex,与其说是在炫耀技术,不如说是在承认:通往 AGI 的路,是由无数个这种笨拙但有效的循环铺就的。
Codex CLI 的开源库已经在 GitHub 上亮出了家底,这一次,轮到开发者们去围观这个“大脑”是如何跳动的了。
参考链接:
https://openai.com/index/unrolling-the-codex-agent-loop/