---
title: "AI models"
description: "Which model Halon runs its chats and investigations on, which one does its quicker tasks, what happens when a provider stops answering, and what Halon says when it cannot carry on."
canonical: https://firefight.app/docs/ai/models
---

# AI models

Halon uses two models from each AI account. Its own work, your chats and its investigations, runs on the main model, and quicker tasks run on a cheaper quick model.

## Main and quick models

Add or edit an account under **Settings → Workspace**, in the **AI accounts** card. Each account has two models. See [AI accounts](https://firefight.app/docs/ai/ai-accounts.md).

| Model | What runs on it | Filled in with |
|---|---|---|
| Main model | Chats and investigations, and the postmortems that grow from them. Code fixes run as [below](#code-fixes) | Claude Sonnet 5.5 on Anthropic, OpenRouter, Amazon Bedrock and Google Vertex AI, and the provider's own pick elsewhere |
| Quick model | Summaries, timeline notes, replies to mentions, helpers, and checking what Halon watches and remembers | Claude Haiku 5.5 on the same four, GLM-5.2 on Mistral, and the provider's own fast model elsewhere |

Firefight recommends Claude Sonnet 5.5 for the main model because it did Halon's work best in our tests of real chats, ahead of Claude Opus 5.5 at about half the cost. Claude Haiku 5.5 did the quick work better than GLM-5.2 at a fifth of the cost. You can pick any other model the provider offers for either one. The main model has to be one Firefight knows, since Halon needs to know how much it can read at once. An account you saved before keeps the models it was saved with, so edit it to move it to the recommended models.

To change the model for one chat in the dashboard, use the model picker in the message box. See [Choosing the model](https://firefight.app/docs/ai/chat#choosing-the-model).

## Code fixes

On an Anthropic or OpenRouter account, a code fix is written on Claude Sonnet 5.5, whichever main model you chose, and Claude Opus 5.5 reads the change before it is pushed and can send it back once. On an OpenAI account, the main model writes the fix and reads it. Everything else stays on the account's own models. Code fixes need an Anthropic, OpenAI or OpenRouter account, so when the first account in the list is another provider, a code fix uses the next account that is one.

On a Firefight you run yourself, code fixes on the server's own keys follow the same choice when it has an Anthropic or OpenRouter key, unless whoever runs it chose other models for them.

## When a provider stops answering

When the main model stops answering in the middle of a chat or an investigation, Halon carries on from the same step instead of failing. It tries the same account's backup model first, which is Claude Haiku 5.5 where the provider runs it and GLM-5.2 on Mistral, so your own key carries on before anything else. Then it tries the next account in the list on another provider. It says so once, where its steps are shown:

```
Claude Sonnet 5.5 is not answering, so I switched to Claude Haiku 5.5 for this reply.
```

You see the line in the chat in the dashboard, in the Slack thread, and on the investigation's page, where it ends "for the rest of this run". Your next question starts on the main model again. To have a backup on another provider too, add a second account there and keep it below the first.

On Google Vertex AI, Claude runs only where your project has it enabled. When it is not, Halon carries on with Gemini 3.1 Pro and says that Claude is not available on this account. Summaries and other quick work carry on with Gemini 3.8 Flash the same way.

When you picked another model for a chat in the dashboard, Halon also says when that model's account runs out of credit or has its key refused, and which model answers instead, such as "The account behind Claude Opus 5.5 is out of credit, so I switched to Claude Haiku 5.5 for this reply."

An account that runs out of credit or has its key refused is skipped. Halon moves to the next account in the list, and the account waits until a check shows it works again. See [AI accounts](https://firefight.app/docs/ai/ai-accounts#the-order).

## When Halon cannot carry on

If no model can answer, Halon says why it stopped and lists what it did first, so your team can pick up from there without it:

```
Something went wrong on my side, so I did not finish that one. Ask me again.

What I did before I stopped:
- Search logs · Checkout
- Restart · Checkout (a change), which failed

I stopped after the last of these, before I decided what to do next.
```

A step marked as a change is one that changed something. When Halon stopped while a step was still running, the last line names it, so check whether it finished before you try it again. An investigation that gives up posts the same list in its thread under the reason it stopped.
