跳转到内容

Cloudflare 上的实时智能体

Cloudflare Workers 和其他 workerd 运行时无法使用全局 WebSocket 构造函数打开出站 WebSocket。为简化在这些环境中连接实时智能体,extensions 包提供了一个专用传输机制,可在内部执行基于 fetch() 的升级。

  1. 安装 extensions 包。

    Terminal window
    npm install @openai/agents-extensions
  2. 创建一个传输机制并将其附加到你的会话。

    import { CloudflareRealtimeTransportLayer } from '@openai/agents-extensions';
    import { RealtimeAgent, RealtimeSession } from '@openai/agents/realtime';
    const agent = new RealtimeAgent({
    name: 'My Agent',
    });
    // Create a transport that connects to OpenAI Realtime via Cloudflare/workerd's fetch-based upgrade.
    const cfTransport = new CloudflareRealtimeTransportLayer({
    url: 'wss://api.openai.com/v1/realtime?model=gpt-realtime-2',
    });
    const session = new RealtimeSession(agent, {
    // Set your own transport.
    transport: cfTransport,
    });
  3. 连接你的 RealtimeSession

    await session.connect({ apiKey: 'your-openai-ephemeral-or-server-key' });
  • Cloudflare 传输机制在底层使用带有 Upgrade: websocketfetch(),并跳过等待套接字 open 事件,以匹配 workerd API。
  • 使用此传输机制时,所有 RealtimeSession 功能(工具、护栏等)都照常工作。
  • 使用 DEBUG=openai-agents* 在开发期间查看详细日志。