コンテンツにスキップ

Cloudflare Workers 用トランスポート

Cloudflare Workers とその他の workerd ランタイムでは、グローバルな WebSocket コンストラクタを使用して外向きの WebSockets を開くことはできません。これらの環境から リアルタイムエージェント に簡単に接続できるようにするため、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',
    });
    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: websocket を伴う fetch() を使用し、ソケットの open イベントを待機しません。workerd の API に合わせた挙動です
  • このトランスポートを使用しても、RealtimeSession のすべての機能(ツール、ガードレール など)は通常どおり動作します
  • 開発中の詳細なログ検査には DEBUG=openai-agents* を使用します