OpenAI 在开发者文档里正式上线了 Agents API,把 Codex 的 harness 通过一个 OpenAI 托管的 REST API 暴露出来。核心端点就一个:POST https://api.openai.com/v1/agents/sessions,带 OpenAI-Beta: agents=v1 头。语义很直白——OpenAI 负责会话、编排、上下文压缩和恢复,应用负责提供工具、决定执行环境。

文档把概念拆成四个:Agent(模型 + 指令 + 工具 + MCP 服务器)、Environment(可选沙箱或计算机,agent 在这里读写文件、加载 skills、跑命令)、Session(一个持久的 agent 实例,处理任务并响应输入)、Events 和 items(session 期间的输入输出)。工作流就是创建会话 → 分配任务 → 流式或 webhook 跟进 → 继续或干预。

托管的 harness 能力清单值得看:在沙箱里运行命令和代码、应用 skills 和指令、通过工具或 MCP 连外部数据、工作过程中随时干预、把之前的上下文压缩掉、拆子任务委派给 subagent、断点续跑。多智能体通过 agent.multi_agent 打开,能设 max_concurrent_subagents。工具支持 programmatic_tool_calling、mcp(HTTP transport)、web_search 三类,环境可选 self_hosted 或 OpenAI 托管沙箱。
定价跟着模型走:模型用量按所选模型计费,OpenAI 工具按标准价,托管沙箱按容器价。但有两个数据层面的限制要留意——数据驻留目前仅限美国,而且不支持 Zero Data Retention(ZDR),选了自托管沙箱也不会让它变成 ZDR 合规。SDK 覆盖 Python、TS/JS、Go(openai-go/v3)、Java、Ruby,统一 client.beta.agents.sessions.create(...)。
社区讨论主要围绕两件事:值不值得把会话交给 OpenAI 托管,以及定价的模糊。有用户直接跳去看了沙箱网络访问配置,发现三种模式(enabled / disabled / restricted),还顺手试出了绕过受限网络会被拦——curl http://example.com/ 返回 Domain forbidden。他对计费也有疑问:"每次执行 agent session 都会新建一个环境吗?那个环境是不是至少按一小时计费(尽管标价按 20 分钟)?有没有办法主动关掉环境省点钱?"
关于为什么要用这个 API 而不是自己跑 SDK,社区分两派。质疑方认为:"至少在我看来这更像是加强 vendor lock-in。"反驳者的想法也很实际:"为了省掉自己维护一个沙箱 VM 的麻烦。"有人则觉得这是个奇怪的中间地带:"我理解为什么要用你的托管会话,但用你赢在哪?"
从架构角度看,Agents API 的实质是把 Codex 客户端里那套 harness(会话管理、沙箱、工具编排、上下文压缩)服务端化。之前这些能力绑定在 CLI 和 IDE 插件里,现在变成了可以被任何后端程序调用的一等公民 API。对想在自己产品里嵌入长期运行、能读写文件、能拆子任务的 agent 的团队来说,这省掉了一大块自建编排层的工程量——代价是把会话状态和执行环境交给 OpenAI。
来源: