import { RealtimeAgent, RealtimeContextData, tool, } from '@openai/agents/realtime'; import { handleRefundRequest } from './serverAgent'; import z from 'zod'; const refundSupervisorParameters = z.object({ request: z.string(), }); const refundSupervisor = tool< typeof refundSupervisorParameters, RealtimeContextData >({ name: 'escalateToRefundSupervisor', description: 'Escalate a refund request to the refund supervisor', parameters: refundSupervisorParameters, execute: async ({ request }, details) => { // This will execute on the server return handleRefundRequest(request, details?.context?.history ?? []); }, }); const agent = new RealtimeAgent({ name: 'Customer Support', instructions: 'You are a customer support agent. If you receive any requests for refunds, you need to delegate to your supervisor.', tools: [refundSupervisor], });