Skip to content

Providers and models

The Models and providers tab under Settings decides which intelligence each role works with and what it costs. Here you set up providers, declare their models with their prices and assign one to each role.

A provider is whoever serves the model: OpenRouter, Anthropic, an Ollama on your network, and so on. A model is a specific reference from that provider, with its input and output price per million tokens. Without models, a provider cannot be assigned to anyone.

Element What it does
Title “Providers and models”.
“Provider” button Opens the new provider form.
“Model” button Opens the new model form. It is disabled while there is no provider, because a model without a provider does not exist.
Note Explains that each role can talk to a different provider, that the key is stored encrypted and never shown again, and which is the installation’s default model.

The note names the default model by its technical identifier (for example deepseek-v4.1-flash). That is the one any role uses when you have not assigned it anything.

This is the first table on the page. It has one row per active role, plus one for “Adrián (CEO)”. Each row carries the job title on the left and a dropdown on the right with these options:

Option What it means
“Default · model-name” The role uses the installation’s model.
“Provider · Label” The role uses that specific model.

There is no save button: picking another option saves on the spot and the screen says “Role model updated. It applies from the next assignment”.

The same change can be made from the role’s profile, in the “Model” field of the Identity tab. Both routes write the same thing.

Each row shows:

Part What it is
Type tag “OpenAI”, “OpenRouter”, “Ollama”, “Anthropic (Claude)”…
Name The name you gave the provider.
Detail Its base address (or “no URL”), whether it has a stored key (“key saved” or “no key”) and how many models it has.
“Edit” button Opens the form with what is already there.
Bin Deletes the provider, without asking for confirmation.

If there are none: “None yet. Add the first one with its URL and its key; then its models”.

A provider cannot be deleted if any role uses one of its models. The server answers “cannot delete: N role(s) use a model from this provider. Change their model first” and the screen shows it in red.

Each row shows:

Part What it is
Display name The model’s label, followed by its technical reference in a monospaced font.
Detail “Provider · input X €/M · output Y €/M”, and the context tokens if you declared them.
Test result If you have tested the model, “answers in N ms · “answer”” appears below in green, or the error in red.
“Test” button Makes a real, minimal call to the provider. While it waits, the icon spins and the button is disabled.
“Edit” button Opens the form with the model’s data.
Bin Deletes the model, without asking for confirmation.

If there are no models: “No models: a provider without models cannot be assigned to anyone”.

A model cannot be deleted if it is assigned to any role: “cannot delete: N scope(s) use this model”. Change the assignment first.

Prices are shown with two to four decimals and the “€/M” suffix. A price of zero is shown as “no price”, not as “€0.00/M”.

It opens with “Provider” or with “Edit”. The title is “New provider” or “Edit provider”, and the explanation warns that the key travels encrypted, is never shown again and, if you edit and leave it empty, the previous one is kept.

Field What it is Details
Name What you call this provider. Required. Placeholder examples: “OpenRouter, Anthropic, my Ollama…”.
Type The API family it speaks. See the type table. Switching to OpenRouter fills in its URL; switching to Ollama, http://host.docker.internal:11434/v1.
Base URL The service’s address. Required. It is disabled for OpenAI, Anthropic and Google, which do not need it.
Key The API key. Password field. On a new provider, it is the one stored; when editing, empty means “do not change it”.

The “Save” button is disabled while saving. The server requires at least a name and a base URL: if either is missing, the error says “Enter at least a name and the provider’s base address”.

Available types:

Type Display name
openai OpenAI
openai_compatible OpenAI-compatible
openrouter OpenRouter
ollama Ollama
anthropic Anthropic (Claude)
google Google (Gemini)
azure Azure OpenAI
deepseek DeepSeek
groq Groq
together Together
vllm vLLM (local)
lmstudio LM Studio (local)

It opens with “Model” or with “Edit”. The title is “New model” or “Edit model”. The explanation: the reference is the identifier that travels to the provider, and the prices, per million tokens, are used to measure spending.

Field What it is Details
Provider Who owns the model. Required. The first option is “Choose a provider”.
Reference The technical identifier sent to the provider. Required. Placeholder example: claude-sonnet-4-5.
Display name The label you will see in the dropdowns. Example: “Claude Sonnet”.
Input price Euros per million input tokens. Accepts comma or decimal point. Empty counts as 0.
Output price Euros per million output tokens. Same as the previous one.
Context Context tokens the model supports. Optional. Example: 200000.

“Save” is disabled until there is a reference and a provider is chosen. Without them, the server does not accept it either: “Enter the model’s reference and choose its provider”.

The “Test” button simulates nothing: it launches a real, minimal request to the provider with that model. It spends a few tokens on purpose, because it asks the model to answer “ok”. It is not recorded as an assignment: it is only a check.

  • If it answers, the row shows the time in milliseconds in green and, if there was one, the answer in angle quotes.
  • If it fails, it shows the provider’s error in red. A failure here is usually a wrong key, a wrong base URL or a model that provider no longer serves.

Testing does not change anyone’s assignment: it only checks that the model answers.

  • Each role’s profile has the same model dropdown under Identity; there it is saved along with the rest of the profile.
  • Each role’s spending is measured in tokens and compared with its monthly budget. Prices are stored per million tokens; this screen does not calculate or show the cost in euros of a particular assignment.
  • The CEO’s model is changed in this same table, in the “Adrián (CEO)” row.
  • If a role has no assignment, it uses the installation’s default model, which is configured outside this screen and is only shown here.