长假期间,OpenAI在2025 DevDay宣布了一系列开发者生态的重大升级,除了我们熟知的模型能力外(如Sora2 API),最引人瞩目的是在 ChatGPT 中引入的“Apps in ChatGPT”及其SDK,及AgentKit工具集。OpenAI正试图把它的ChatGPT助手与背后的模型全面升级为一个功能完备的AI应用构建与分发平台。
本文为大家深度解读其中的三个主要工具:
- Apps SDK:构建真正的Apps in ChatGPT
- Agent Builder:可视化Agent工作流构建
- ChatKit:快速集成Agent到UI应用的工具包
01 Apps SDK:构建真正的Apps in ChatGPT
Apps SDK
还记得OpenAI最早开始尝试的GPT Builder吗?它允许你构建可以通过ChatGPT访问的GPTs(后被大量模型厂家跟进,美其名曰“智能体”):

由于糟糕的体验,GPTs并没有达到预期的AI界AppStore的效果(国内很多通用AI工具中的所谓“智能体”也都是质量低下的”提示词或简单工具的包装器“),Sam Altman也承认该战略”并未奏效”,Apps SDK则是它们最新的尝试。
【Apps SDK是什么】
简单的说,Apps SDK允许开发者在 ChatGPT 中构建可以交互的“真”应用 。
用户在ChatGPT对话中可以直接“召唤出”应用。比如你可以对ChatGPT说:

Expedia帮我查询xx地区低于250$/晚的酒店大床房间

ChatGPT 就会自动在聊天中弹出Expedia的应用界面,完成指定的查询任务并将结果显示在界面上。

注意:这些应用不仅能理解自然语言指令,还能在ChatGPT的对话窗口中以富交互UI(如卡片、地图等)呈现结果,极大的丰富了 ChatGPT 的应用场景。
这种Apps in ChatGPT的开发工具就是Apps SDK。
【Apps SDK与GPT Builder的区别】
GPT Builder 和 Apps SDK 都旨在向开发者开放 ChatGPT平台与流量入口。但很显然Apps SDK开发出的Apps in ChatGPT是为了解决 GPTs 及其前身 Plugins 在用户体验和功能上的局限,将 ChatGPT 彻底转变为一个“超级应用”平台。
两者区别主要体现在交互、技术基础和应用深度等,我们用一张表格总结:

总的来说,Apps SDK的定位是让开发者将现有应用无缝带入 ChatGPT,对用户而言,这些应用就像聊天对话的一部分,在某个对话时机智能出现。它们是可自然语言交互的“真”App,而非简单的提示词加函数调用的增强LLM。
【Apps SDK初体验】
Apps SDK构建在开放的MCP标准之上。其使用方法为:
开发者通过MCP Server向 ChatGPT 声明一系列工具(Tools),并返回结构化数据和交互式UI部件。使用者在与ChatGPT对话时,由ChatGPT自动判断、建议、并调用MCP工具来完成与第三方后端应用的交互,并更新最新的上下文。
一个遵循Apps SDK要求的MCP Server样例:
import { McpServer } from"@modelcontextprotocol/sdk/server/mcp.js";// 创建一个 MCP 服务器实例const server = new McpServer({ name: "my-server", version: "1.0.0"});// 注册一个工具(这里工具名为 kanban-board)server.registerTool("kanban-board", { title: "Show Kanban Board", inputSchema: { tasks: z.string() } // 输入参数结构_meta: { // meta中指定交互界面模板 URI "openai/outputTemplate": "ui://widget/kanban-board.html", "openai/toolInvocation/invoking": "Loading board...", "openai/toolInvocation/invoked": "Board is ready!" }} async () => { const board = await loadKanbanBoard(); // 自定义函数获取数据 return { structuredContent: { // 返回结构化数据供前端渲染 ...... }, content: [{ type: "text", text: "Here is your updated Kanban board." }], }; });
上述代码示例演示了一个 MCP Server 的核心部分:创建服务器、注册工具、并在工具调用时返回结果。这里:
- structuredContent 字段包含了用于前端UI部件渲染的数据
- content 字段为 ChatGPT 收到的文字输出,比如提示文字
- _meta 字段则用来指定UI部件的模板URI(通过MCP Resource获取)
借助 Apps SDK,开发者可以用熟悉的代码定义逻辑,同时为应用编写自定义的交互界面(通过注册前端组件 URI)。
准备好App后,你可以提交给OpenAI(暂未开通),获取商业收益。
02
Agent Builder:可视化Agent工作流构建器
Agent Builder
即使变身“超级应用”的ChatGPT再强大,很多时候你还是需要定制化的Agent来处理复杂自动化任务。所以,OpenAI推出了Agent Builder。
【Agent Builder是什么】
一个面向开发者和企业的可视化Agent工作流构建的低代码工具。

相信用过n8n、Dify、Coze的对此不会陌生:提供拖拽式节点画布,让用户通过“所见即所得”的方式编排多个LLM调用、Agent、工具和逻辑关系,无需手动写复杂的代码 。每个节点可以是一次工具调用、一个分类/决策器、亦或是一个子代理。
Agent Builder 支持版本管理、预览测试、内联评估配置 等功能,方便快速迭代。(预览、评估等功能需要认证)
【Agent Builder有什么不同】
Agent Builder、Dify 和 Coze等都是用于构建Agent工作流的低代码平台。或许在功能丰富度、第三方(模型、向量库、插件等)兼容度等方面,Agent Builder还处于劣势,不过从笔者的体验看,它的最大特点是:
简洁、专注核心问题、与OpenAI生态集成但又保留了开放性。
一些令人印象深刻的特点:
- 平台托管+本地部署的双模式
Agent Builder 与开源的OpenAI Agents SDK共享底层逻辑。因此你可以将可视化的工作流导出成开源Agents SDK的原生代码,从而脱离OpenAI的平台。你可以用代码对Agent Builder无法实现的功能做扩展后自由部署。对开发者而言,既可以享受低代码的效率,又能获得最大的代码控制权和自行部署的能力。
- 原生企业级安全防护(Guardrails)
提供了一个模块化的安全节点,用于实时检测和预防越狱攻击(Jailbreaks)、屏蔽或标记 PII(个人身份信息)等,而无需依赖于自定义提示或第三方工具。Guardrails也是OpenAI Agents SDK的重要特性。
- 内建的 Agent 性能评估(Evals)
OpenAI提供了Evals评估工具集,数据集、跟踪评分和自动化提示优化功能 。这种原生的、与 Agent 运行时深度绑定的评估能力,允许开发者精确地衡量和优化 Agent 的准确性和可靠性,这是现有很多低代码平台所没有的。
- 与前端应用的快速集成能力
Agent与前端应用的集成,通常涉及到较麻烦的流输出、事件跟踪、并发管理等。通过与另一个重要模块ChatKit的集成,Agent Builder可以极大的简化这一工作。比如,你可以指定某个节点处理事件是否反馈到前端UI。
【Agent Builder初体验】
在OpenAI的开发者平台登录,进入Agent Builder工作区,选择一个简单的模板来构建一个测试Agent:

选择”规划助手“这个模板,进入Agent流设计界面。整个操作逻辑与常见的Agent低代码平台类似:

可供选择的工作流节点主要是四类:
- Core:核心的Agent节点。用来定义带有Tools使用能力的“增强型”LLM调用,工具包括搜索、代码解释器、MCP等。
- Tools: 直接的工具调用模块。包括文件搜索(需要在OpenAI创建向量库)、Guardrails(安全模块),以及MCP工具。
- Logic:逻辑控制模块。用来控制条件分支、循环体、以及人类参与节点(HITL,Human-in-the-Loop)。
- Data: 数据处理节点。用来做一些状态变量的设置与数据转换。
注意对第三方应用的插件/工具支持都统一通过MCP实现。
对这个工作流稍作修改与编排后,可以进行预览和评估(认证客户)后发布。
那么如何将创建的工作流部署到自己的应用呢?
点击”Get Code“按钮,可以看到有两种选项:ChatKit和Agents SDK。这就是对应上面我们说的”双模式“部署。
- ChatKit:Agent在OpenAI托管,你的客户端使用ChatKit与其集成。
- Agents SDK:获得Agents SDK的原生代码,自由扩展与本地部署。

ChatKit在下一节介绍,这里选择Agents SDK,就可以获得工作流代码。打开后可以看到这是一个完整的Agents SDK的开发代码,核心为run_workflow函数:
...class WorkflowInput(BaseModel): input_as_text: str# Main code entrypointasync def run_workflow(workflow_input: WorkflowInput): state = { } workflow = workflow_input.model_dump()...
现在你可以自由修改Agent,比如,你想替换使用第三方的模型API后测试这个Agent:
async def main(): #替换默认的模型客户端,这里可以提供第三方的API URL client = AsyncOpenAI( api_key=<api_key>, base_url=<base_url> ) # 设置为默认客户端 set_default_openai_client(client, use_for_tracing=False) set_tracing_disabled(True) # 创建工作流输入 workflow_input = WorkflowInput( input_as_text="我想在未来6个月内启动一个新的AI产品线,目前有5个工程师和50万预算。" ) try: result = await run_workflow(workflow_input) ...
运行代码测试工作流:

所以,即使你无法将Agent托管在OpenAI,你也可以使用Agent Builder:将其作为一个纯粹的代码可视化设计与生成工具(基于OpenAI Agents SDK)。
03
ChatKit:快速集成Agent到UI应用的工具包
ChatKit
Agent Builder 负责复杂的后端逻辑,但Agent 要投入使用,还需要一个美观、友好的交互界面来处理用户输入和 Agent 输出。ChatKit 正是为此而设计。


我们曾经介绍过一个极其类似的产品CopilotKit:
实战 CopilotKit:快速集成前端UI与后端Agent的神器【上】
实战 CopilotKit:生成式 UI 与集成 Human-in-the-Loop【下】

【ChatKit是什么】
ChatKit是用来集成OpenAI Agent与前端UI应用的工具包。
ChatKit用来解决Agent与UI集成中的一些复杂挑战。包括流式响应的处理、高效管理会话线程;并设计更引人入胜的、深度融合的交互体验,是将 Agent的核心逻辑与最终用户无缝衔接的关键环节。
【ChatKit如何使用】
方式一:前端嵌入ChatKit+OpenAI托管Agent
也就是上节提到的Agent托管部署方式:Agent在OpenAI托管运行,前端UI通过ChatKit与Agent直接通信。
这种模式你只需要前端引入ChatKit-JS模块。

简单了解该模式的使用步骤:
- 实现一个本地服务端点:传入您的托管Agent工作流 ID,并借助OpenAI的API创建Session,成功后返回一个客户端秘钥。
- 把ChatKit嵌入到前端应用,并通过上述端点初始化。
方式二:前端嵌入ChatKit+任意的后端Agent
你可以使用本地部署的Server+自定义的Agent+自定义的身份验证,把ChatKit作为开源的集成框架,完全控制其使用方式。
这种模式下你需要使用后端的ChatKit Python SDK来配合前端ChatKit。

该模式的使用过程:
- 后端:实现一个ChatKitServer类及respond接口,在该接口中调用自己的Agent,并输出流事件。
- 后端:实现服务器端点(比如FastAPI),将请求交给ChatKitServer响应。
- 客户端:UI应用中嵌入ChatKit,通过FastAPI端点进行通信。
- 扩展功能:比如Agent可以调用客户端的Tool、服务端可以将Agent结果渲染成UI小部件(Widget)返回等。
【ChatKit初体验】
借助OpenAI的一个例子来体验ChatKit(显然方式二更适合我们)。
1: 实现ChatKitServer
定义一个派生自 ChatKitServer 的服务类,实现respond方法以处理用户输入,并返回聊天事件流。通用的代码逻辑为:
from chatkit.server import ChatKitServer, ThreadMetadata, UserMessageItemfrom agents import Agent, Runnerfrom chatkit.agent import stream_agent_response, simple_to_agent_input, AgentContextclass MyChatKitServer(ChatKitServer): # 定义一个简单的Agent(当然也可以是其他Agent) assistant_agent = Agent( name="Assistant", instructions="You are a helpful assistant" ) async def respond(self, thread: ThreadMetadata, input: UserMessageItem | None, context): # 为当前对话创建上下文 agent_context = AgentContext(thread=thread, store=self.store, request_context=context) # 将输入转换成 Agents SDK 可用的格式 agent_input = await simple_to_agent_input(input) if input else [] # 运行Agent并获取流式结果 result_stream = Runner.run_streamed(self.assistant_agent, agent_input, context=agent_context) # 将代理输出的事件逐个发回 ChatKit asyncfor event in stream_agent_response(agent_context, result_stream): yield event
- 实现服务器端点
负责把客户端请求转交给ChatKitServer。比如:
@app.post("/chatkit")async def chatkit_endpoint( request: Request, server: MyChatKitServer = Depends(get_chatkit_server)) -> Response: payload = await request.body() result = await server.process(payload, {"request": request}) if isinstance(result, StreamingResult): return StreamingResponse(result, media_type="text/event-stream") if hasattr(result, "json"): return Response(content=result.json, media_type="application/json") return JSONResponse(result)
- 客户端嵌入ChatKit
简单配置即可在应用中嵌入一个ChatKit聊天助手,与后端的Agent对话:
const chatkit = useChatKit({ api: { url: CHATKIT_API_URL, domainKey: CHATKIT_API_DOMAIN_KEY },... return ( <div className="relative h-full w-full overflow-hidden border border-slate-200/60 bg-white shadow-card dark:border-slate-800/70 dark:bg-slate-900"> <ChatKit control={chatkit.control} className="block h-full w-full" /> </div> );...
- 测试效果
分别启动前后端。访问前端URL,就会出现ChatKit的对话助手:

- 高级功能
OpenAI提供了很多组件帮助实现更易于交互的前端UI小部件(Widget)。你可以在前端使用,也可以后端将Agent输出渲染成小部件直接返回。
为了方便设计与共享Widget,OpenAI提供了一个Widget Builder。比如我们设计一个天气卡片:

将这个Widget的JSON导出,然后在服务端借助ChatKit Python SDK可以将渲染后的天气卡片返回到客户端。这是测试的客户端效果:

除此之外,你还可以自定义存储(线程、消息、附件等)、鉴权流程、实现Agent调用客户端工具(Client Tool)等高级能力。
04
总结:OpenAI的AI大平台战略
OpenAI
以上我们学习与体验了此次OpenAI发布的几大“平台战略”中的产品。最后做一个简单总结:

Apps SDK 负责将外部应用作为工具引入 ChatGPT 客户端;但如果开发者需要创建自己的Agent应用,就可以利用 Agent Builder 来实现其核心逻辑;而构建出Agent若需快速集成到自有产品中,则可通过 ChatKit 来实现,从而保证了从后端逻辑到前端交互的完整闭环。
需要注意的是,Agent Builder与ChatKit都是AgentKit的一部分;它们与即将推出的Connector Registry(集中管理数据源与工具)、Evals构成完整的Agent开发、部署与优化平台。
很显然,OpenAI正在为其设想的“Agent经济”奠定事实上的"AI操作系统"和开发工具包。

END
推荐学习本公众号最新出版的作品:
📘《MCP原理揭秘与开发指南——构建可扩展的AI智能体》
详情点击下方链接
识别以下名片
加入公众号交流群(说明来意)


被折叠的 条评论
为什么被折叠?



