Agent Configuration
All the settings available when creating or updating your Omniagent
When you create an Omniagent, you define everything about how it behaves โ its identity, resources, voice, language, and model settings. These apply consistently across every channel the agent is deployed to.
This page is the complete reference for all agent-level settings.
Identity
Name, companion, and language
Knowledge
Documents and FAQs
Tools
Actions your agent can take during conversations
Tags
Label your agent for filtering and analytics
Idle timeout
Keep sessions open indefinitely
Voice
Choose the voice for your agent's speech output
Provider settings
Temperature, turn detection, and noise reduction
Channel overrides
Per-channel customization
Setting and updating configuration
Every field on this page can be set when you create the agent or updated later. Only the fields you include are changed โ everything else stays the same.
Create an agent with your initial configuration:
curl -X POST https://companion-api.napster.com/public/agents \
-H "X-Api-Key: $NAPSTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"companionId": "comp_abc123",
"name": "Support Agent",
"voiceId": "alloy",
"providerSettings": {
"temperature": 0.7
}
}'Update any field later with a PATCH request โ only include what you want to change:
curl -X PATCH https://companion-api.napster.com/public/agents/agent_abc123 \
-H "X-Api-Key: $NAPSTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"language": "Spanish",
"voiceId": "shimmer"
}'Identity
These fields define who your agent is.
Name
An optional label to identify agents in your project โ for example, "Support Agent", "Sales Bot", or "Onboarding Assistant".
Companion
The companionId is required and determines the agent's visual appearance, personality, and behavior. See Companion for how to pick or create one.
Language
When you set language, the agent strictly follows that language for the entire session โ it will not switch even if the user speaks in a different language. Use plain language names โ English, Spanish, French, German, etc. โ not ISO codes.
If you omit language, the agent defaults to English but can switch to a different language when the user asks.
{
"companionId": "comp_abc123",
"name": "Support Agent",
"language": "English"
}Knowledge
Knowledge gives your agent domain expertise through two types of resources.
Documents
The knowledgeBaseId field attaches a knowledge collection to the agent. The agent retrieves relevant documents from this collection during conversations to ground its responses in your content. See Files for details.
FAQs
The faqCollections field accepts an array of FAQ collection IDs. When a user asks a question that matches one of your FAQs, the agent responds with the answer you defined rather than generating one. See FAQs for details.
{
"knowledgeBaseId": "kb_product_docs",
"faqCollections": ["faq_support", "faq_returns"]
}Tools
The functions field accepts an array of tool IDs. These define what your agent can do during conversations โ look up data, trigger workflows, generate content. You can attach as many tools as you need.
Tools must be created before attaching them to the agent. See Tools for details.
{
"functions": ["fn_order_status", "fn_returns", "fn_book_appointment"]
}Tags
The tags field accepts string-to-string key-value pairs for labeling the agent. Use tags to categorize agents by source, environment, team, or any dimension relevant to your application. Tags are stored on the agent and returned on all sessions created from it.
{
"tags": {
"env": "production",
"team": "support",
"source": "ios-app"
}
}Tag keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.
Idle timeout
By default, idle sessions are automatically closed after a timeout. Set disableIdleTimeout to true on the agent to keep all sessions open indefinitely, even if no audio or messages are exchanged.
{
"disableIdleTimeout": true
}Voice
The voiceId field is required and sets the voice for the agent's speech output.
| Provider | Supported voices |
|---|---|
| Azure OpenAI | alloy, ash, ballad, coral, echo, sage, shimmer, verse, marin, cedar |
{
"voiceId": "alloy"
}Provider settings
The providerSettings object controls model behavior and audio processing.
The provider settings below are specific to OpenAI Realtime. Support for additional providers may be added in the future.
| Field | Type | Description |
|---|---|---|
temperature | float | Controls randomness in the agent's responses. Lower values (e.g. 0.3) produce more focused output; higher values (e.g. 0.9) increase variety. |
instructions | string | Overrides the companion's system prompt. Use this to replace the default prompt with custom instructions without modifying the companion itself. |
turnDetection | object | Voice Activity Detection (VAD) configuration. Controls how the system detects when the user starts and stops speaking. |
noiseReduction | object | Noise reduction configuration. Reduces background noise from the user's microphone input. |
{
"providerSettings": {
"temperature": 0.7,
"turnDetection": {
"threshold": 0.9,
"prefix_padding_ms": 400,
"silence_duration_ms": 500
},
"noiseReduction": {
"type": "nearField"
}
}
}Turn detection
The turnDetection object configures Voice Activity Detection (VAD) โ how the system decides when the user has started and stopped speaking. This directly affects interruption behavior and response timing.
| Field | Type | Description |
|---|---|---|
threshold | float | Activation threshold for detecting speech. Higher values (e.g. 0.8) require louder, clearer speech to trigger; lower values (e.g. 0.3) are more sensitive. |
prefix_padding_ms | integer | Milliseconds of audio to include before detected speech begins. Prevents clipping the start of an utterance. |
silence_duration_ms | integer | Milliseconds of silence required before the system considers the user done speaking. Lower values (e.g. 200) make the agent respond faster; higher values (e.g. 800) wait longer for the user to continue. |
Noise reduction
The noiseReduction object accepts a single type field:
| Value | Description |
|---|---|
nearField | Optimized for close-range microphones โ laptops, headsets, phones held to the ear. |
farField | Optimized for distant microphones โ speakerphones, smart speakers, conference room setups. |
If you omit noiseReduction, no noise processing is applied. Choose the mode that matches your user's typical microphone distance for best results.
Channel overrides
All of the settings above apply across every channel by default. If you need different behavior on a specific channel, you can override providerSettings, functions, faqCollections, and knowledgeBaseId per channel using the channel config.
For example, to use different turn detection settings and attach an additional tool on SIP calls:
curl -X PUT https://companion-api.napster.com/public/agents/agent_abc123/channels/sip \
-H "X-Api-Key: $NAPSTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"functions": ["fn_order_status", "fn_returns", "fn_transfer_call"],
"providerSettings": {
"turnDetection": {
"threshold": 0.7,
"silence_duration_ms": 800
}
}
}'Channel overrides apply to every session on that channel. If omitted, the agent's base configuration is used. See the SIP, WebRTC, and WebSockets guides for channel-specific setup.