Cloudflare 上的实时智能体
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*查看详细日志。