首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >OpenAI 为 Responses API 引入 WebSocket 模式

OpenAI 为 Responses API 引入 WebSocket 模式

作者头像
用户11563501
发布2026-06-23 12:38:06
发布2026-06-23 12:38:06
990
举报

OpenAI 刚发布了一个针对长时间运行、大量工具调用场景的重要更新:Responses API 现在支持 WebSocket 模式。

这个功能专门为需要频繁模型-工具交互的工作流设计,比如代码自动化或需要反复调用工具的智能体编排任务。

核心改进:从对话到关系

核心改进在于连接方式的转变。传统的 HTTP 模式下,每次交互都需要重新发送完整的上下文,就像每次打电话都要重新自我介绍一样。WebSocket 模式则保持持久连接,只需要发送新的输入内容和 previous_response_id,大幅减少了重复传输的开销。

建立连接很简单:

代码语言:javascript
复制
from websocket import create_connection
import json
import os

ws = create_connection(
    "wss://api.openai.com/v1/responses",
    header=[
        f"Authorization: Bearer {os.environ['OPENAI_API_KEY']}",
    ],
)

# 发送初始请求
ws.send(
    json.dumps({
        "type": "response.create",
        "model": "gpt-5.2",
        "store": False,
        "input": [{
            "type": "message",
            "role": "user",
            "content": [{"type": "input_text", "text": "分析这个代码文件"}],
        }],
        "tools": [{"type": "code_interpreter"}],
    })
)

后续交互只需要发送增量数据:

代码语言:javascript
复制
# 继续对话,只发送新内容
ws.send(
    json.dumps({
        "type": "response.create",
        "model": "gpt-5.2",
        "store": False,
        "previous_response_id": "resp_123",
        "input": [
            {
                "type": "function_call_output",
                "call_id": "call_456",
                "output": "发现3个性能瓶颈",
            },
            {
                "type": "message",
                "role": "user",
                "content": [{"type": "input_text", "text": "给出优化方案"}],
            },
        ],
        "tools": [],
    })
)

性能提升数据

数据很直观:对于涉及 20 次以上工具调用的复杂任务,端到端执行速度可以提升 20%-40%。这种提升来自于连接级的内存缓存机制,服务器会在内存中保留最近一次响应的状态,避免了重复的状态重建工作。

这种方式特别适合需要多轮工具调用的场景,比如代码重构流程:分析代码 → 发现问题 → 生成修复方案 → 应用修改 → 验证结果。每一步都只需要发送增量数据。

技术细节和限制

技术细节上,WebSocket 模式兼容零数据保留(ZDR)和 store=false 设置,这对隐私敏感的应用很重要。连接限制是 60 分钟,超时后需要重新建立连接:

代码语言:javascript
复制
# 处理连接超时
try:
    response = ws.recv()
except Exception as e:
    if "connection_limit_reached" in str(e):
        # 重新建立连接
        ws = create_connection(
            "wss://api.openai.com/v1/responses",
            header=[f"Authorization: Bearer {os.environ['OPENAI_API_KEY']}"]
        )

如果需要并行处理,目前还不支持多路复用,需要建立多个连接。这意味着如果你有多个独立的智能体任务,每个都需要单独的 WebSocket 连接。

行业影响

值得注意的是,这个更新还提到了与 Open Responses 规范的关系。Open Responses 是一个开源项目,试图为不同 LLM 提供商建立统一的 API 标准,已经获得了 Vercel、Hugging Face、Databricks 等公司的支持。

从社区反应来看,开发者对这个功能比较兴奋,特别是那些在构建复杂智能体系统的人。不过也有人指出这可能是增加供应商锁定的策略,因为状态管理增加了迁移成本。

对于大多数简单的对话场景,这个功能可能用不上。但如果你在构建需要大量工具调用的智能体,比如代码审查助手、数据分析流水线,或者复杂的业务流程自动化,这个更新值得关注。

参考资料:

  • OpenAI WebSocket Mode 官方文档https://developers.openai.com/api/docs/guides/websocket-mode
  • Open Responses 规范https://www.openresponses.org/
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-02-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI工程化 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 核心改进:从对话到关系
  • 性能提升数据
  • 技术细节和限制
  • 行业影响
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档