你以为 AI 写代码只是简单的“你问我答”?

大错特错。

在 OpenAI 最新拆解的 Codex CLI 背后,藏着一个疯狂运转的“Agent Loop”(智能体循环)。它不是一次性给你答案,而是在你的电脑上不断试错、调用工具、撞墙、再重来。

这就像雇了一个不知疲倦、甚至会自我反思的程序员,坐在你的终端前疯狂敲键盘。

OpenAI 刚刚发布了一篇深度技术文章,把这个被称为“Codex Harness”的核心逻辑彻底摊开在了桌面上。这不仅仅是一次技术分享,更是对未来 AI 如何“干活”的一次预演。

不是聊天,是“无限循环”

AI配图

Codex 的核心,根本不是对话,而是一个闭环。

这个循环的逻辑简单到令人发指:输入 -> 推理 -> 工具调用 -> 再推理。

当你在 Codex CLI 里下达指令,模型首先会进行“推理”。它不会直接给你写好的代码,而是决定要不要调用“工具”。比如,它可能会说:“先运行一下 ls 看看目录结构。”

一旦工具执行完毕,结果会被塞回给模型,模型拿着这些新信息,再次进行推理。

这个过程会不断重复,直到模型觉得“行了,不用再调用工具了”,才会生成最终的回复给用户。

正如一位网友在 Hacker News 上的神评论:

while true;

  1. Call the model
  2. 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 参数。这意味着每次请求都是完全无状态的,服务器不存你的数据,这虽然增加了网络传输的负担,却换来了极致的隐私安全。

AI配图

Cache hits are only possible for exact prefix matches within a prompt.

为了哪怕一毫秒的速度提升,他们都在跟每一个字节较劲。

学会“遗忘”也是一种智慧

当缓存也救不了你,上下文窗口真的要爆了怎么办?

Codex 选择了一种近乎“人类”的策略:总结与遗忘。

它引入了自动压缩机制。当 token 数量超过阈值,Codex 会调用一个特殊的 /responses/compact 接口。

这个接口不会简单粗暴地删除旧对话,而是生成一份“压缩包”。里面包含了一份精简的对话摘要,以及一个加密的 encrypted_content

这个加密块里,藏着模型对之前对话的“潜在理解”。虽然人类看不懂,但模型能读出来,仿佛那是它上一轮留下的“潜意识”。

这样既腾出了空间,又保留了上下文的灵魂。

它不是神,它是个“笨拙”的人类

AI配图

看完这些技术细节,你可能会觉得 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/