Cloudflare Workers 전송
Cloudflare Workers 및 기타 workerd 런타임에서는 전역 WebSocket 생성자를 사용해 아웃바운드 WebSocket을 열 수 없습니다. 이러한 환경에서 실시간 에이전트를 간단히 연결할 수 있도록, extensions 패키지는 내부적으로 fetch() 기반 업그레이드를 수행하는 전용 전송 방식을 제공합니다.
-
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기능(도구, 가드레일 등)은 평소와 동일하게 작동합니다 - 개발 중 상세 로그를 확인하려면
DEBUG=openai-agents*를 사용하세요