Thanks to visit codestin.com
Credit goes to openai.github.io

콘텐츠로 이동

Cloudflare Workers 전송

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',
    });
    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 기능(tools, guardrails 등)이 평소처럼 동작합니다.
  • 개발 중 상세 로그를 확인하려면 DEBUG=openai-agents*를 사용하세요.