Cloudflare Workers 用トランスポート
Cloudflare Workers およびその他の workerd ランタイムでは、グローバルな WebSocket
コンストラクターを使った外向きの WebSocket を開くことができません。これらの環境から リアルタイムエージェント に簡単に接続できるよう、extensions パッケージは内部で fetch()
ベースのアップグレードを行う専用のトランスポートを提供します。
セットアップ
Section titled “セットアップ”-
extensions パッケージをインストールします。
Terminal window npm install @openai/agents-extensions -
トランスポートを作成し、セッションにアタッチします。
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,}); -
RealtimeSession
を接続します。await session.connect({ apiKey: 'your-openai-ephemeral-or-server-key' });
- Cloudflare トランスポートは内部で
Upgrade: websocket
を伴うfetch()
を使用し、ソケットのopen
イベントを待たずに進みます。workerd の API に合わせた動作です - このトランスポート使用時も、すべての
RealtimeSession
機能(tools、ガードレール など)は通常どおり動作します - 開発中の詳細ログ確認には
DEBUG=openai-agents*
を使用します