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

# Choose a model

> Pick the AI model an agent or a session uses.

Every agent uses one AI model to decide what to do on the phone. You choose it with the `model` field. If you leave it out, Lusor uses the default model.

## Model ids

A model id names the provider and the model, for example `deepseek/deepseek-flash`. These are the models the Lusor app offers:

| Model id | Good for |
| - | - |
| `deepseek/deepseek-flash` | Simple tasks. The default. |
| `openai/gpt-6-luna` | Simple tasks. |
| `anthropic/claude-haiku-5-5` | Simple tasks. |
| `anthropic/claude-sonnet-5-5` | Moderately complex tasks. |
| `openai/gpt-6.1-sol` | Complex tasks. |
| `anthropic/claude-opus-5-5` | Complex tasks. |

`auto` is an alias for the default model. Lusor stores it as `deepseek/deepseek-flash`, so that is what you read back.

The model you choose affects how many credits a session uses. See [Credits and minutes](https://docs.lusor.ai/billing/credits-and-minutes.md).

> [!NOTE]
>
> Copy model ids exactly as shown, including the provider prefix.

## On an agent

Set `model` when you create the agent, or change it later:

```bash cURL theme={null}
curl -X PATCH https://api.lusor.ai/v1/agents/<agent id> \
  -H "X-Api-Key: $LUSOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "model": "anthropic/claude-opus-5-5" }'
```

```python Python theme={null}
import os, requests

requests.patch(
    "https://api.lusor.ai/v1/agents/<agent id>",
    headers={"X-Api-Key": os.environ["LUSOR_API_KEY"]},
    json={"model": "anthropic/claude-opus-5-5"},
)
```

```javascript Node.js theme={null}
await fetch("https://api.lusor.ai/v1/agents/<agent id>", {
  method: "PATCH",
  headers: { "X-Api-Key": process.env.LUSOR_API_KEY, "Content-Type": "application/json" },
  body: JSON.stringify({ model: "anthropic/claude-opus-5-5" }),
});
```

The agent's next turn uses the new model. The agent's `model` field always holds the model id it uses.

## On a session without an agent

A [session started without an agent](https://docs.lusor.ai/agents/send-a-turn.md#sessions-without-an-agent) takes `model` in its body. Leave it out, or send `null` or `auto`, for the default model.

```bash theme={null}
curl https://api.lusor.ai/v1/workspaces/<workspace id>/devices/<device id>/sessions \
  -H "X-Api-Key: $LUSOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "prompt": "Find the cheapest flight to Lisbon next Friday.", "model": "openai/gpt-6.1-sol" }'
```

A turn sent to an agent always uses the agent's model.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.