Use managed mode
Updated
Use ASR, LLM, and TTS models that Agora provides access to, without your own provider accounts or API keys.
Preview documentation
Managed mode lets your agent use supported ASR, LLM, and TTS models without your own provider accounts or API keys. Agora provides access to the models. You choose the vendor and model to use for ASR, LLM, and TTS, or let the Platform select them. To use your own provider accounts instead, see Use your own provider keys (BYOK).
Understand the tech
An agent has ASR, LLM, and TTS models. To use managed mode for a model, choose a vendor and model from Supported vendors and models, and don't provide a provider API key.
You choose the credential mode for each model. For example, an agent can use managed ASR and TTS with your own LLM key. For details, see Use your own provider keys.
For a complete agent example, see Create an agent.
Choose managed models
Set the managed models when you create an agent. This example uses Deepgram Nova 3 for ASR, OpenAI GPT-4.1 Mini for the LLM, and OpenAI TTS-1 for TTS. The SDK examples use the client that you create in Prerequisites.
Create each model without an API key:
from agora_agent import Agent, DeepgramSTT, OpenAI, OpenAITTS
agent = (
Agent(client=client)
.with_stt(DeepgramSTT(model="nova-3", language="en-US"))
.with_llm(
OpenAI(
model="gpt-4.1-mini",
system_messages=[
{"role": "system", "content": "You are a friendly support agent for Acme. Keep your answers short."}
],
)
)
.with_tts(OpenAITTS(model="tts-1", voice="alloy"))
)
saved_agent = agent.save(name="Support agent")Create each model without an API key:
import { Agent, DeepgramSTT, OpenAI, OpenAITTS } from 'agora-agents';
const agent = new Agent({ client })
.withStt(new DeepgramSTT({ model: 'nova-3', language: 'en-US' }))
.withLlm(
new OpenAI({
model: 'gpt-4.1-mini',
systemMessages: [
{ role: 'system', content: 'You are a friendly support agent for Acme. Keep your answers short.' },
],
}),
)
.withTts(new OpenAITTS({ model: 'tts-1', voice: 'alloy' }));
const savedAgent = await agent.save({ name: 'Support agent' });Create each model without an API key:
agent := agentkit.NewAgent(client).
WithStt(vendors.NewDeepgramSTT(vendors.DeepgramSTTOptions{Model: "nova-3", Language: "en-US"})).
WithLlm(vendors.NewOpenAI(vendors.OpenAIOptions{
Model: "gpt-4.1-mini",
SystemMessages: []map[string]interface{}{
{"role": "system", "content": "You are a friendly support agent for Acme. Keep your answers short."},
},
})).
WithTts(vendors.NewOpenAITTS(vendors.OpenAITTSOptions{Model: "tts-1", Voice: "alloy"}))
savedAgent, err := agent.Save(ctx, agentkit.SaveOptions{Name: "Support agent"})
if err != nil {
log.Fatal(err)
}Send a request to Create an agent with a pipeline:
curl --request POST \
--url https://preview.ai.agora.io/conversational-ai/v1/projects/<your_app_id>/agents \
--header 'Authorization: Basic <your_base64_encoded_credentials>' \
--header 'Content-Type: application/json' \
--data '
{
"agent_name": "Support agent",
"instructions": "You are a friendly support agent for Acme. Keep your answers short.",
"pipeline": {
"mode": "cascaded",
"asr": {
"credential": { "mode": "managed" },
"vendor": "deepgram",
"model": "nova-3",
"language": "en-US"
},
"llm": {
"credential": { "mode": "managed" },
"vendor": "openai",
"style": "openai",
"model": "gpt-4.1-mini"
},
"tts": {
"credential": { "mode": "managed" },
"vendor": "openai",
"params": {
"model": "tts-1",
"voice": "alloy"
}
}
}
}'In this example:
- Each block sets
credential.modetomanaged. A managed block doesn't acceptfieldsor a custom provider endpointurl. - The
asrblock uses Deepgram Nova 3 for US English. - The
llmblock uses OpenAI GPT-4.1 Mini. - The
ttsblock uses OpenAI TTS-1, with the voice inparams.
You then start sessions with the agent as usual. For details, see Start a session.
Supported vendors and models
The following vendors and models are available in managed mode.
ASR
LLM
| Vendor | Models |
|---|---|
| OpenAI | gpt-4o-mini, gpt-4.1-mini, gpt-5-nano, gpt-5-mini, gpt-5.6-luna |
TTS
Reference
For more information, see the following pages:
- Use your own provider keys
- Create an agent and start a session
- For the settings each vendor supports, see the vendor pages under Models, for example Deepgram, OpenAI, and MiniMax.
