Overview
OpenAI Realtime agents are voice-to-voice agents where Coval connects directly to the OpenAI Realtime API on your behalf. You provide an OpenAI API key, an agent prompt, a voice, and a model — Coval handles everything else. No webhook, no SIP trunk, and no self-hosted server required. This makes OpenAI Realtime the fastest way to evaluate an OpenAI-based agent configuration: tune the prompt, change the voice, bump the temperature, and re-run the same test set to see how the change affects behavior.Use this connection when you want to evaluate an agent built directly on the OpenAI Realtime API. If your production agent runs on Pipecat, LiveKit, or a custom stack, connect it through the matching integration instead.
Configuration Requirements
The only required field for aMODEL_TYPE_OPENAI_REALTIME agent is metadata.openai_realtime_api_key. Every other field below is optional — if omitted, Coval applies the default shown.
OpenAI API Key
- Field:
openai_realtime_api_key - Type: String (required)
- Purpose: Authenticates Coval’s connection to the OpenAI Realtime API
- Format: A valid OpenAI API key (starts with
sk-) with Realtime API access enabled - Security: Stored encrypted and handled securely
Agent System Instructions
- Field:
openai_realtime_instructions - Type: String (optional)
- Default:
""(model default instructions) - Purpose: System prompt sent as session instructions to the Realtime model
- Use Cases: Role definition, behavior guidelines, response formatting
- Example:
"You are a helpful customer support agent. Always be polite and provide accurate information."
Model
- Field:
openai_realtime_model - Type: String (optional)
- Default:
gpt-realtime-2(used when the field is omitted) - Purpose: Selects which OpenAI Realtime model powers the agent
Agent Voice
- Field:
openai_realtime_voice - Type: String (optional)
- Default:
alloy - Purpose: Prebuilt voice used by the agent
marin is only available on GPT Live models. When you change the model, the agent form moves the voice to a supported pairing: switching to gpt-live-1 selects marin, and switching back to a GPT Realtime model while marin is selected falls back to alloy. The same pairing rules apply to model and voice overrides in agent mutations.Temperature
- Field:
openai_realtime_temperature - Type: Number (optional)
- Default:
0.8 - Range:
0.0(deterministic) to2.0(very random) - Purpose: Controls randomness in the agent’s responses
Web Search
- Field:
openai_realtime_web_search_enabled - Type: Boolean (optional)
- Default:
false - Purpose: Allows the agent to search the web for up-to-date information during the conversation. In the app, this is the Web Search checkbox under Advanced Settings.
Simulation Timeout
- Field:
simulation_timeout_seconds - Type: Integer (optional)
- Default:
900(15 minutes) - Range:
1to1800(30 minutes) - Purpose: Maximum duration for a single simulated conversation
Setup Instructions
1
Get an OpenAI API key
Create a key in your OpenAI dashboard and confirm it has Realtime API access.
2
Create the agent in Coval
Open Agents in the sidebar, click New Agent, and select OpenAI Realtime under Voice to Voice.
3
Configure the agent
Paste your OpenAI API key, write your system instructions, pick a model and voice, adjust temperature if needed, and turn on Web Search under Advanced Settings if the agent should be able to search the web.
4
Run a simulation
Create a test set, launch a simulation, and review the transcript and metric outputs.
Creating via the API
OpenAI Realtime agents can also be created with the v1 Agents API:How Simulations Work
When you launch a simulation against an OpenAI Realtime agent, Coval:- Opens a connection to the OpenAI Realtime API using your API key, model, voice, and system instructions
- Plays the simulated user’s turns into the live session
- Captures the agent’s audio responses and transcribes them
- Records the full conversation transcript
- Runs your configured metrics against the transcript
Troubleshooting
Invalid or missing API key- Confirm the key is valid in your OpenAI dashboard and starts with
sk- - Verify your OpenAI account has Realtime API access
- Voice must match one of the allow-listed values above. Other strings are rejected at save time.
marinrequires a GPT Live model
- Temperature must be between
0.0and2.0. Values outside that range are rejected at save time.
- Increase Simulation Timeout if conversations are being cut short
- Check that your system instructions don’t tell the agent to end calls immediately