HiAPI
博客

使用指南

深入 Codex 智能体循环:来自 Datadog 与 Sora 28 天 Android 发布的经验

Codex CLI 内部的循环如何运作,Datadog 与 OpenAI 的生产团队实际用它做什么,以及同一套架构如何迁移到 hiapi 上的媒体生成智能体。

2026年11月3日
深入 Codex 智能体循环:来自 Datadog 与 Sora 28 天 Android 发布的经验

Codex 用四名工程师在 28 天内交付了 Sora 的 Android 应用。在 Datadog,如今有超过一千名工程师依赖它来捕捉人类审查者过去常漏掉的系统级缺陷。这两个故事都源自同一块架构:一个看似简单的控制循环,包裹着语言模型、一组工具和沙箱环境。

如果你正在构建 AI 编程助手、媒体生成流水线,或任何必须对世界采取行动的智能体,Codex 智能体循环是当下你能研究的最干净的参考。本文会完整走一遍它的运作方式、生产团队实际拿它做什么,以及同一套架构模式如何迁移到你可以基于 hiapi 构建的媒体生成智能体。

本文基于 OpenAI 的公开工程文章:《展开 Codex 智能体循环》(2026 年 1 月)、Datadog 案例研究,以及 Sora Android 交付回顾。下文引用的 Hiapi 平台价格截至 2026-06。

智能体循环到底是什么

智能体循环是位于你、语言模型和模型被允许调用的工具之间的控制流。从用户视角看,一个“轮次”看起来就像一条聊天消息进、一条聊天消息出。但在底层,单轮次可能包含模型与外部工具之间的多次往返。

一个轮次的形态:

  1. 准备提示词。 智能体组装系统提示词、项目级指令(在 Codex 中是 AGENTS.md 文件)、对话历史以及用户的新消息。
  2. 推理。 模型返回最终助手消息,或一个工具调用。
  3. 如果是工具调用,智能体在沙箱中执行该调用,捕获结果,将其追加到对话中,然后回到第 2 步。
  4. 如果是最终助手消息——类似“我已经添加了你要求的 architecture.md”——该轮次终止,控制权交还给用户。

关键特性在于,“输出”不只是你在终端里看到的助手消息。大部分真实输出是工具调用的副作用:写入的文件、运行的测试、安装的包。助手消息只是终止信号。

这就是为什么智能体循环不只是“多了几步的聊天”。聊天每轮只有一次往返。而智能体循环可以在单轮次内完成几十次“推理 → 工具 → 推理”的循环,用户只会看到收尾消息。

让循环变快的三个特性

上述循环的朴素实现能跑,但几轮之后就会变得又慢又贵。Codex 的设计用三个值得借鉴的思路解决了这个问题。

1. 在 Responses API 上做前缀缓存。 每次智能体与模型对话时,提示词开头都是同一段长前缀:先是系统提示词,然后是 AGENTS.md,再是早期对话。第一个请求会计算并缓存该前缀对应的模型内部键值状态。同一会话中的后续请求对任何共享前缀都会跳过重算。

一个实际后果:不要在会话中途编辑 AGENTS.md。系统提示词通常是最大的单个缓存块,修改它会让会话剩余部分的缓存失效。Codex 自己的工程师把这列为最常见的“自找的”变慢原因。

2. 工具调用结果留在循环内部,而不是叠加在循环之上。 每个工具输出都会追加到同一个对话中。这听起来显然,但它意味着模型对其运行过的每条命令、看到的每个错误、检查过的每个文件都有完整记忆——你无需手工做任何总结。代价是上下文窗口增长很快;Codex 在对话过长时通过自动压缩来处理。

3. 终止是从模型输出的形态中检测的,而不是靠计轮次。 智能体没有最大迭代次数的安全网。只要模型持续发出工具调用,它就会一直循环;一旦模型发出普通助手消息,它就会立刻停止。这个决策交给模型,从而让编排代码保持精简。

案例一:Datadog 用该循环做系统级代码审查

Datadog 推广案例最有用的地方在于,它告诉你智能体循环在生产中擅长什么,以及不擅长什么。

Datadog 的 AI 开发体验团队想要一个代码审查智能体,能发现人类审查者漏掉的那类缺陷——不是 lint,不是风格,而是跨服务回归、性能悬崖,以及会重演真实故障的变更。他们指出,之前的大多数工具表现得像“高级 linter”。它们只标记单个 diff 内的浅层模式。它们对周边系统没有模型。

为了在推广前验证该智能体,团队构建了一个故障回放测试框架:他们重建了曾导致过去故障的 pull request,把每一个都像新到达审查一样喂给 Codex,然后询问值班工程师:Codex 的评论是否会改变结果。

公布的结果是:Codex 在约 22% 的历史故障上给出了有用的新反馈——超过团队评估过的任何其他工具。由于每一个 pull request 当时都已通过人类审查,这项测试本质上是在衡量“审查者当时漏掉的东西”。

如今有超过 1,000 名 Datadog 工程师在每个 PR 上使用它。工程师用 👍/👎 回应评论,并要么修改代码,要么附上理由跳过建议。有趣的设计选择是,Datadog 通过旁路渠道衡量影响——工程师在 Slack 中发帖提到有用的发现——而不是正式的工具内指标。团队把智能体视为增强手段,而非把关者;它呈现信号,人类仍然做决定。

由此可借鉴的模式:智能体循环最擅长在整个系统范围内推理(依赖、测试、相关服务),而不仅仅是眼前的 diff。这要求给它合适的工具和合适的读取权限。智能体循环是底盘;工具面和项目上下文才决定它能否呈现真实风险。

案例二:28 天交付 Sora Android 版

Sora Android 的故事是更激进的证明点。2025 年 10 月 8 日到 11 月 5 日之间,四名工程师组成的团队使用 Codex 将 Sora 从“仅 iOS”推进到公开 Android 发布——28 天周期,第 18 天有内部员工构建版,十天后公开发布。该应用登顶 Google Play 商店;用户在最初 24 小时内创建了超过一百万条视频。发布时无崩溃率:99.9%。

团队坦率说明了哪些做法有效,以及——更有用的是——哪些无效。

无效的做法是那个显而易见的提示词:“基于 iOS 代码构建 Sora Android 应用。开始。”他们试了,并很快中止。产物在技术上可用,但产品体验欠佳。用他们的话说,Codex“还不擅长推断未被告诉它的东西”,在没有引导时难以进行“深度架构判断”。

有效的做法是把 Codex 当作平台之间的语义翻译器,并在其周围搭好强力脚手架:

  • 他们先确立项目的架构模式——导航、依赖注入、网络——并手工编写少量示例功能。这些为其余代码库设定了标准。
  • 他们使用 AGENTS.md 文件编码团队约定,使 Codex 的输出保持一致。
  • 他们频繁让 Codex 参考 iOS Swift 代码和现有后端,要求它生成语义等价的 Kotlin。他们的总结是:“跨平台的未来就是 Codex。”
  • 他们把 Codex 当作“新入职的资深工程师”——人类负责架构、系统设计和用户体验;Codex 在边界清晰的范围內承担重活。

据报道,Codex 生成的代码占比接近 85%,四周内大约消耗 50 亿 token 预算。

这里有两个容易低估的经验。第一,智能体的质量受限于你搭建脚手架的好坏:示例、AGENTS.md、清晰的范围。第二,对于绿地项目,“小团队加能干智能体”胜过“扩大工程人数”——弗雷德·布鲁克斯的观察终于在合适的人手里有了反例。

可迁移的模式

剥离代码审查和 Android 交付的具体细节后,剩下四个任何构建智能体的团队都应该复制的模式。

在扩展前先确立模式。 无论是导航模式(Sora),还是什么算“有风险的变更”(Datadog),人类工作都发生在前期。示例功能和稳定的 AGENTS.md 是你把这些模式传递到后续每个轮次的方式——而它们恰好正是前缀缓存所奖励的东西。

给智能体合适的工具面,而不是最大的工具面。 Datadog 的审查者需要跨服务读取。Sora 的翻译器需要读取 iOS 源码和后端。两个团队都精心策划了读取面。工具列表更大并不等于更好。

让人负责架构,让智能体负责实现。 两个案例研究都收敛于这一分工。人类设定结构性决策;智能体在边界清晰的范围內填充。颠倒这一分工正是团队浪费时间的所在。

按结果衡量,而非按工具指标衡量。 Datadog 刻意观察 Slack 反应和故障结果,而不是智能体自身的输出率。这保持了优化目标的诚实。一个评论很多但不改变故障行为的代码审查工具不是有用的工具。

将该循环应用于媒体生成智能体

智能体循环架构并非代码专属。任何你需要模型行动、观察并迭代的地方,同样的控制流都适用。

hiapi 平台通过一个统一的异步端点暴露所有媒体生成模型——POST /v1/tasks 创建生成任务,GET /v1/tasks/:id 收集结果——因此循环中的“行动”步骤是一个你写一次就能在所有模型间复用的两调用函数。具体来说,你可以构建一个视频制作智能体,其循环如下:

  1. 智能体收到简报:“创建一个 6 秒的产品镜头,手表放在大理石上。”
  2. 它组装提示词并通过 POST /v1/tasks 创建一个 seedance-2-0 任务,然后轮询任务 ID 直到完成(截至 2026-06,在 hiapi 平台上 480P 按每秒视频 $0.15 计价,720P 按 2.2 倍系数计价——上面 6 秒片段在 480P 下花费 $0.90)。
  3. 它下载生成的视频,运行一个快速评审步骤——“表盘真的可见吗?光线与简报一致吗?”——然后要么接受输出,要么修改提示词。
  4. 如果评审连续失败 N 次,智能体向用户升级,附上目前最好的结果以及对问题的描述。

同样的形态适用于图像生成智能体:简报 → 文生图调用(例如 gpt-image-2 在 1K 下每张 $0.03,或 Nano-Banana-2 在 1K 下 $0.085)→ 视觉检查 → 修改 → 重试。Codex 的模式“前缀缓存稳定的系统提示词,并让工具调用输出在对话中累积”直接适用:把角色定义和品牌指南放在系统提示词中,让循环把每次生成尝试和评审作为同一线程中的轮次累积起来。

把 Codex 的经验迁移到媒体智能体的几个实用转换:

  • AGENTS.md 变成品牌指南文件。 稳定,只加载一次,绝不在会话中途编辑。这正是前缀缓存所奖励的。
  • 示例功能变成参考输出。 手工策划的“好成果长什么样”的图像,供评审步骤对比。
  • 沙箱变成速率和支出上限。 一个没学会何时停止的媒体智能体可能堆积大量生成。像 Codex 默认限制文件系统写入那样,设置每轮支出上限。
  • 终止信号完全相同。 当评审步骤返回“接受”而不是又一次生成请求时,循环结束。

如果你想先试试这类循环背后的基础模型,而暂时不写编排逻辑,hiapi 定价页列出了当前每张图像和每秒视频的价格,各个模型详情页还有 Playground,你可以在决定把什么接入智能体之前先跑一个提示词。

FAQ

什么是 Codex 智能体循环?

它是 Codex CLI 内部的控制流,编排你、模型和模型被允许调用的工具之间的来回交互。每个“轮次”内部可以包含多次模型推理 → 工具调用循环,当模型发出普通助手消息而不是另一个工具调用时结束。

为什么前缀缓存对智能体如此重要?

因为每一轮都会重新发送一段长前缀——系统提示词、项目指令、对话历史。没有缓存,模型会在每个请求上重新编码所有这些内容,又慢又贵。有了缓存,共享前缀只计算一次,并在同一会话的后续轮次中复用。实际含义是:不要在会话中途编辑项目指令(例如 AGENTS.md),因为这会让会话剩余部分的缓存失效。

交付类似 Sora Android 版的东西需要多少工程师?

OpenAI 公布的数字是四名工程师、28 天,据报道 Codex 生成了接近 85% 的代码库,整个项目消耗约 50 亿 token。团队明确选择保持小规模——引用布鲁克斯的“向已延迟的项目加人只会让它更晚”——并倚重智能体做实现。

Codex 在 Datadog 评估中实际捕捉到了什么?

在团队的“故障回放”方法中,他们通过 Codex 重跑历史上导致故障的 PR,并询问值班工程师反馈是否会改变结果。Codex 在约 22% 的故障上提供了可操作的反馈——例如跨服务回归和性能变化等问题,这些是 PR 最初落地时人类审查者漏掉的。

我可以把同样的智能体循环模式用于图像或视频生成吗?

可以。该架构模式——准备提示词、调用模型、执行工具、追加结果、循环直到终止——与模型无关。你可以把它接到 hiapi 的媒体生成端点上(图像模型如 gpt-image-2 或 nano-banana-2,视频模型如 seedance-2-0),并遵循同样的经验:稳定系统提示词以利前缀缓存,用示例保证质量,用沙箱支出上限保证安全,用评审步骤决定终止。

我应该在 AGENTS.md 里放什么?

具体到 Codex:项目约定、构建/测试/lint 命令、代码风格规则,以及任何“不要碰”的边界。公布的 Sora 和 Datadog 团队都把它当作智能体的入职文档——你会在第一天告诉资深工程师的那些事。在会话期间保持它稳定,以便它留在前缀缓存中。

关键要点

  • Codex 智能体循环是一个简单的控制流:准备提示词 → 模型推理 → 可选工具调用 → 追加结果 → 重复,直到模型发出普通助手消息。
  • 三个实现细节使其达到生产级:前缀缓存、留在对话内的工具调用结果,以及由模型输出形态驱动的终止检测。
  • Datadog 用这个循环为 1,000 多名工程师做系统级代码审查;其故障回放测试框架显示 Codex 捕捉到约 22% 的人类审查者曾漏掉的历史故障相关问题。
  • OpenAI 用四名工程师在 28 天内交付 Sora Android 应用,约 85% 代码由 Codex 生成,发布时无崩溃率 99.9%——靠的是大量用示例和 AGENTS.md 搭脚手架,而不是提示“去构建它”。
  • 同一套智能体循环架构可以干净地迁移到你能在 hiapi 上构建的媒体生成流水线:每个文生图和文生视频模型都使用相同的 /v1/tasks 异步形态,而 Codex 在前缀缓存、沙箱和示例方面的打法可以一一对应到图像和视频智能体。

立即开始构建持久 AI 产物

获取 API 密钥,通过一个基于任务(task)的 API 调用图像、视频和音频模型。

阅读 API 文档