

新智元报谈
剪辑:好困
【新智元导读】GPT-5.4真是的杀招终于落地!OpenAI连夜重写基建、原生收编七大沙盒,透彻封死第三方框架的活路。旧期间的聊天玩物已被放手,工业级Agent全面觉悟。
OpenAI不声不吭,又下了一手狠棋。
就在刚刚,Agents SDK迎来一次透彻的架构重写。
原生harness、原生沙盒、Codex级的文献系统用具,外加七家头部沙盒厂商一键接入。

3月初,GPT-5.4带着原生computer use(计算机使用)高调登场时,建树者就仍是吐槽过一件事。
模子能操作电脑了,可Agent跑在哪台电脑上、若何保证跑起来不出事,如故得我方东拼西凑一套框架。
今晚这个缺口被OpenAI我方补上了。

一句话版块,OpenAI此次把Agents SDK从「聊天机器东谈主的玩物」窜改成了「坐蓐级Agent的底座」。
harness发扬甘休流、模子调用、用具路由、暂停规复;沙盒发扬读写文献、装依赖、跑代码,两层透彻解耦。
更狠的是,这一刀同期砍在了LangChain、CrewAI、LangGraph这些第三方Agent框架身上。
OpenAI下场把基建层作念了,留给第三方的空间,肉眼可宗旨在收窄。
从「聊天机器东谈主的玩物」到坐蓐级底座
讲此次升级之前,先得搞明晰正本的Agents SDK长啥样。
2025年3月,OpenAI第一次推出Agents SDK,主打轻量、少概括、几行Python就能跑起来的卖点。
但这一版SDK,本体上是为聊天机器东谈主场景作念的。
一年多夙昔,模子在技术上的擢升可谓是天崩地裂——连气儿能跑几个小时、几天,以至几周。
正本那套为聊天机器东谈主盘算的SDK,当然也就跟不上期间了。

此次的重写,主要作念了两件事。
第一件,给模子配一个齐全的初始框架——harness。
配置化驰念、感知沙盒的编排、近似Codex的文献系统用具、通过MCP调用具、通过skills渐进式泄漏信息、通过AGENTS.md自界说请示、用shell用具奉行代码、用apply patch用具剪辑文献,沿途打包进SDK原生辅助。
老练Claude Code和Codex的建树者看到这套清单会很眼熟。
没错,OpenAI此次是把自家Codex夙昔一年踩过的坑、积贮的最好实践,顺遂居品化塞进了SDK。

第二件,把harness和compute透彻分手。
harness跑在你的真实基建里,管模子调用、审批、跟踪、初始景象。compute是一个安详的沙盒,特意发扬读写文献、跑高唱、装包、吐产物。
两层之间的接口尺度化,API key和敏锐根据根柢儿不会干与模子生成代码执行奉行的阿谁环境。

后果便是,沙盒里既莫得API密钥,也莫得任何敏锐根据。沙盒自身皆备拒绝,以至不错和集会断开,莫得任何对外流量。
这不是安全性能的小修小补。这是整个这个词Agent架构的范式滚动。


900页保障单100%索求
一半PR出自Agent
harness/compute分手的第一个后果,是沙盒供应商的生态图今夜铺开。
此次发布,Blaxel、Cloudflare、Daytona、E2B、Modal、Runloop、Vercel七家沙盒厂商同期被写进官方辅助列表。

七家能同期接入,要道在OpenAI给了一个叫Manifest的概括层——一份描写Agent职责区的配置清单。
要挂载哪些土产货文献、从哪个云存储拉数据、产物写到那里,全写在这份Manifest里。AWS S3、Google Cloud Storage、Azure Blob Storage、Cloudflare R2全苦衷。
最要道的是这份Manifest和具体沙盒供应商解耦。
今天用E2B写的Agent,未来念念换成Modal跑,毋庸重写代码,改一转配置。哪家沙盒低廉、哪家离数据近,就切到哪家。
官方给了一个最小示例。让一个Agent跑进土产货沙盒,挂上一个财报目次,对比FY2025和FY2024的三项财务策动,中枢代码不到20行。
# pip install "openai-agents>=0.14.0"import asyncioimport tempfilefrom pathlib import Pathfrom agents import Runnerfrom agents.run import RunConfigfrom agents.sandbox import Manifest开yun体育网, SandboxAgent, SandboxRunConfigfrom agents.sandbox.entries import LocalDirfrom agents.sandbox.sandboxes import UnixLocalSandboxClientasync def main() -> None:with tempfile.TemporaryDirectory() as tmp:dataroom = Path(tmp) / "dataroom"dataroom.mkdir()(dataroom / "metrics.md").write_text("""# Annual metrics| Year | Revenue | Operating income | Operating cash flow

