> ## Documentation Index
> Fetch the complete documentation index at: https://docs.liveavatar.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuring LLM Settings

> Choose the language model behind a FULL Mode conversation

LLM settings select which managed language model generates the avatar's responses in FULL Mode. The setting is a `provider` and `model` pair, configured either on a stored voice agent or inline on `avatar_persona` when creating a session token.

If you omit `llm_settings`, the session uses the managed default model.

## Supported models

LiveAvatar currently supports the following OpenAI models. Support for additional vendors and models is in progress.

| Provider | Model          | Notes   |
| -------- | -------------- | ------- |
| `openai` | `gpt-4o-mini`  | Default |
| `openai` | `gpt-4o`       |         |
| `openai` | `gpt-5-nano`   |         |
| `openai` | `gpt-5.4-nano` |         |

Retrieve the current catalog programmatically with [List LLM Models](/api-reference/llm-models/list-llm-models). The response maps each provider to the models it accepts:

```bash theme={null}
curl https://api.liveavatar.com/v1/llm-models \
  -H "X-API-KEY: <YOUR_API_KEY>"
```

```json theme={null}
{
  "code": 100,
  "data": {
    "openai": ["gpt-4o", "gpt-4o-mini", "gpt-5-nano", "gpt-5.4-nano"]
  },
  "message": "LLM models retrieved successfully"
}
```

A model not in this list is rejected with a `422` when you write it to a voice agent or a session token.

## Schema

| Field      | Type   | Default       | Description                                                                                                |
| ---------- | ------ | ------------- | ---------------------------------------------------------------------------------------------------------- |
| `provider` | string | `openai`      | LLM vendor. Currently only `openai`.                                                                       |
| `model`    | string | `gpt-4o-mini` | Model identifier from the provider's list in [List LLM Models](/api-reference/llm-models/list-llm-models). |

## On a session token

Set `llm_settings` under `avatar_persona` when creating a session token. The choice applies to that session only.

```json theme={null}
{
  "mode": "FULL",
  "avatar_id": "<avatar_id>",
  "avatar_persona": {
    "voice_id": "<voice_id>",
    "context_id": "<context_id>",
    "language": "en",
    "llm_settings": {
      "provider": "openai",
      "model": "gpt-4o"
    }
  }
}
```

## On a voice agent

A stored `liveavatar_agent` saves its own `llm_settings` as part of its `agent_configuration`. Every session that references the agent with `voice_agent` uses the stored model, so the choice is made once rather than on each session token.

Retrieve an agent with [Get Voice Agent](/api-reference/voice-agents/get-voice-agent) to see which model it uses:

```json theme={null}
{
  "id": "<voice_agent_id>",
  "name": "Support agent",
  "agent_type": "liveavatar_agent",
  "agent_configuration": {
    "agent_type": "liveavatar_agent",
    "voice_id": "<voice_id>",
    "context_id": "<context_id>",
    "language": "en",
    "llm_settings": {
      "provider": "openai",
      "model": "gpt-4o"
    }
  }
}
```

An agent created without an explicit model is stored with the default, so `llm_settings` is always present on a `liveavatar_agent`. It does not apply to `elevenlabs_agent` or `cartesia_agent`, which run their own LLM on the provider side.

## Interaction with custom LLMs

`llm_settings` selects a **managed** model that LiveAvatar hosts. A [custom LLM](/docs/full-mode/custom-llm) configured with `llm_configuration_id` replaces the managed model with your own endpoint and key. Today these are two separate settings and cannot be combined.

* `llm_configuration_id` and `llm_settings` are mutually exclusive.
* A session token that sets both `avatar_persona.llm_settings` and `llm_configuration_id` is rejected with a `400`.
* Referencing a stored `liveavatar_agent` with `voice_agent` alongside `llm_configuration_id` is also rejected, since stored agents always carry `llm_settings`.
* To use a custom LLM, configure the session with `avatar_persona` and omit `llm_settings`.

<Warning>
  We are working on unifying custom LLM configuration with `llm_settings` so that a single setting covers both managed and bring-your-own models. Expect this section to change.
</Warning>

Custom LLM endpoints are not listed by [List LLM Models](/api-reference/llm-models/list-llm-models).
