Skip to main content

Use presets

Presets are predefined configurations managed by Agora that let you use supported third-party AI providers without supplying your own API keys. You can specify a preset for any or all of the three provider categories: ASR, LLM, and TTS. Pass them together as a comma-separated string in the preset field of the Start a conversational AI agent request body.

Prerequisites

Before you begin, make sure you have:

Understand the tech

The preset field accepts a comma-separated string of preset identifiers. Each identifier maps to one provider category, so you can specify presets from different categories in the same call. When a preset is active for a category, you do not need to supply the provider's endpoint URL, API key, or model name. You can still use the corresponding asr, llm, and tts fields to supply additional settings, such as a system prompt or a specific voice ID.

The following presets are available:

CategoryAvailable presets
ASR
  • deepgram_nova_2
  • deepgram_nova_3
LLM
  • openai_gpt_4o_mini
  • openai_gpt_4_1_mini
  • openai_gpt_5_nano
  • openai_gpt_5_mini
TTS
  • minimax_speech_2_6_turbo
  • minimax_speech_2_8_turbo
  • openai_tts_1

You can specify one preset per category. If you specify a preset for a category, any API key or endpoint URL fields for that category are ignored.

Combine presets for all three categories

The following example starts an agent using Deepgram for ASR, OpenAI for LLM, and MiniMax for TTS, with no BYOK credentials required for any provider.


_39
curl --request POST \
_39
--url https://api.agora.io/api/conversational-ai-agent/v2/projects/<your_app_id>/join \
_39
--header 'Authorization: agora token=<your_agora_token>' \
_39
--header 'Content-Type: application/json' \
_39
--data '{
_39
"name": "my-preset-agent",
_39
"preset": "deepgram_nova_3,openai_gpt_5_mini,minimax_speech_2_6_turbo",
_39
"properties": {
_39
"channel": "my-channel",
_39
"token": "<your_rtc_token>",
_39
"agent_rtc_uid": "1001",
_39
"remote_rtc_uids": ["1002"],
_39
"idle_timeout": 120,
_39
"llm": {
_39
"system_messages": [
_39
{
_39
"role": "system",
_39
"content": "You are a helpful assistant."
_39
}
_39
],
_39
"greeting_message": "Hello! How can I help you today?",
_39
"failure_message": "Sorry, I could not process your request.",
_39
"max_history": 32
_39
},
_39
"tts": {
_39
"params": {
_39
"voice_setting": {
_39
"voice_id": "English_captivating_female1"
_39
}
_39
}
_39
},
_39
"asr": {
_39
"params": {
_39
"language": "en",
_39
"keyterm": "agora"
_39
}
_39
}
_39
}
_39
}'

In this example:

  • The preset field configures Deepgram Nova 3 for ASR, GPT-5 Mini for LLM, and MiniMax Speech 2.6 Turbo for TTS.
  • The llm field sets the system prompt, greeting, and history length without specifying an endpoint or API key, because those are provided by the preset.
  • The tts field overrides the default voice selection for MiniMax.
  • The asr field passes a keyword hint to Deepgram.
info

Presets are independent: you can use one, two, or all three categories in the same request. Categories without a preset require you to supply your own provider credentials.

Reference

For the full list of request parameters, see Start a conversational AI agent.

For provider-specific configuration options available within asr, llm, and tts fields when using presets, see the relevant provider page.