Reusable Agent Configurations allow you to define and persist the agent block of your Settings message using the Deepgram API. Once created, you receive a UUID that can be passed in place of the full agent object—simplifying your client code and enabling consistent agent behavior across sessions.
Reusable Agent Configurations are managed via the API. UI support is not yet available.
When using the Voice Agent API, you typically send a full agent configuration object inside every Settings message. With Reusable Agent Configurations, you can:
agent block using the Console API and receive a unique UUID.Settings message instead of repeating the full configuration.All agent configurations and template variables are visible to every member of your Deepgram project—including members, admins, and owners. Do not store secrets such as API keys or passwords in agent configurations or template variables.
Once you’ve created an agent configuration (see Create an Agent Configuration below), pass its UUID as the value of the agent field in your Settings message:
Deepgram will look up the reusable configuration by UUID, interpolate any template variables, and apply the resulting agent block to your session.
The base URL for all Agent Configuration endpoints is:
Request body:
Example request:
Response:
The returned agent_id is the UUID you’ll pass in place of the agent block in future Settings messages.
Returns all agent configurations for the specified project. Configurations are returned in their uninterpolated form—template variable placeholders will appear as-is rather than with their substituted values.
Example request:
Returns the specified agent configuration in its uninterpolated form.
Example request:
Updates the metadata associated with an agent configuration. The config itself is immutable—to change the configuration, delete the existing agent and create a new one.
Request body:
Example request:
Deletes the specified agent configuration.
Deleting an agent configuration can cause a production outage if your service references this agent UUID. Migrate all active sessions to a new configuration before deleting.
Example request:
Template variables let you define reusable values that can be referenced across agent configurations. When an agent configuration is used in a Settings message, Deepgram automatically interpolates the variable values before applying the configuration.
Template variable values are stored as plain text and are visible to all members, admins, and owners of your Deepgram project. Do not store secrets such as API keys or passwords in template variables.
Template variables follow the format DG_<VARIABLE_NAME>, where <VARIABLE_NAME> must consist of uppercase alphanumeric characters, underscores, or hyphens (e.g., DG_MY_MODEL, DG_DEFAULT_LANGUAGE).
Template variables can substitute any JSON value—a string, number, boolean, or even an entire object. For example:
In this example, DG_LISTEN_MODEL, DG_THINK_MODEL, and DG_SPEAK_PROVIDER are all template variables. DG_SPEAK_PROVIDER resolves to an entire provider object, while the others resolve to strings.
Request body:
Example request:
Request body:
The following example walks through creating an agent configuration with template variables and using it in a Voice Agent session.
Step 1: Create a template variable
Step 2: Create an agent configuration referencing the variable
This returns an agent_id, for example: a1b2c3d4-e5f6-7890-abcd-ef1234567890.
Step 3: Use the UUID in your Settings message
Deepgram resolves the UUID to the reusable configuration, substitutes DG_SYSTEM_PROMPT with its value, and applies the fully resolved agent block to your session.
agent configuration options.Settings message format.