Skip to main content
STAIR
Documentation menu

LLM Models

Read the page as Markdown for LLMs

A model in STAIR is an LLM registered from a model provider; agents use it to answer and evaluations can use it as the judge model.

How models and model providers work in STAIR

STAIR splits an LLM connection into two records. Both live in the sidebar under Configuration → Models, on the AI Models page with the tabs Models and Providers.

  • A model provider is the connection to an LLM service: its type, its Base URL and the Authentication secret STAIR sends to it. One provider serves many models.
  • A model is one model of that provider, picked by its Model name/id, under a display Name that agents and evaluations refer to. The model also holds options that change how STAIR calls it: streamed token counts, the context window, structured output and pricing.

An agent's Model field and an evaluation's Judge model field list the models. Changing a provider's Base URL or secret therefore applies to every model of that provider at once. The API Base URL and Authentication secret are not model fields: a model always takes them from its provider.

The Models tab of the AI Models page filtered to three subscription models, with the Provider column masked.

The Models tab lists Name, Model, Provider, Enabled, Updated At and Actions. Search with "Search by name or model name", or narrow the list with the All providers filter. Click a row to open the model.

How to add a model provider

Managing models and providers needs the Admin role.

  1. If the provider needs a key, first store it as a secret. See Secrets.
  2. In the sidebar, open Models, then the Providers tab.
  3. Click Create. The Add Provider dialog opens.
  4. Choose the Provider type: Open AI, Open Router, Azure OpenAI, vLLM, Ollama or Custom. STAIR fills in Name and Base URL for the type.
  5. Change Name if you keep several providers of one type, and set Base URL to your endpoint if it differs.
  6. In Authentication secret, pick the secret with the key, or keep No secret.
  7. Click Create.

The Add Provider dialog with Provider set to Open AI, the prefilled Name and Base URL, and Authentication secret set to No secret.

The Providers tab lists Name, Type and Status. Use All types to filter by type.

How to test and enable a model provider

  1. On the Providers tab, open the row menu ⋮ of the provider and click Edit.
  2. Click Try provider. STAIR connects to the Base URL with the selected secret and reports whether the connection works.
  3. To change the status, use the Enabled / Disabled control at the top of the dialog. A disabled provider can be enabled only after a successful Try provider in the same dialog.
  4. Click Save changes to keep edits to Name, Base URL or the secret.

How to add a model from a provider's model list

  1. On the Providers tab, open the row menu ⋮ of the provider and click Get models.
  2. The List of models dialog shows the models the provider reports. A check mark marks models that are already added to STAIR. Use Search models for long lists.
  3. Click Add next to a model. STAIR opens the Create Model page with the provider and the model already selected.
  4. Complete the form as in How to create a model.

The List of models dialog of a custom provider, listing model ids with an Add action and check marks on models already added.

How to create a model

  1. In the sidebar, open Models and click Create on the Models tab.
  2. On the General tab, choose the Provider. Model name/id becomes available and lists the models of that provider. Pick one.
  3. Enter a Name (for example "My Model"). Agents and evaluations show this name. Add a Description if useful.
  4. On the Access Control tab, check Manage Access (required, "Me" by default) and add Read Access and Write Access as needed. Add the users, teams and service accounts that may call the model in Execute Access.
  5. On the Advanced tab, set the server options and pricing (see How to set context window, structured output and pricing).
  6. Click Create.

The General tab of the Create Model form with Provider, Model name/id, Name and Description.

How to set context window, structured output and pricing

The Advanced tab of a model has three sections.

Server Configuration

  • Send stream_options: on by default. STAIR asks the backend for token counts on a streamed response. Turn it off only for a backend that rejects unknown request fields: with it on, such a backend fails every streaming request.
  • Context window: how many tokens the model accepts in one request. STAIR trims the conversation history to fit it. Leave it empty ("Never trim the history") to never trim.
  • Structured output: requests responses in the structured output format the model supports.

Pricing: prices in USD per million tokens. An empty price means the model produces no cost.

  • Input price and Output price: the price of prompt and completion tokens.
  • Cached input price: the cached part of the prompt is counted inside the input tokens and billed lower. Leave it empty to price it at a tenth of the input rate.

The prices feed the Estimated cost figures on the Usage tabs of models and agents.

Advanced Settings: Settings (JSON), an optional JSON object with custom configuration. Leave {} if you do not need it.

The Advanced tab of a model showing Send stream_options and Structured output set to Yes, the context window left empty and input, output and cached input prices.

How to test a model

  1. Open the model and choose Edit in the actions menu ⋮.
  2. Click Try model on the General tab, or choose Try model in the actions menu ⋮.
  3. STAIR sends a test call to the model through its provider. It shows "Model is available" on success, or "Model test failed" with the error message from the provider.

To change the model's status, use the Enabled / Disabled badge on the edit page and confirm the status change. Click Update to save other edits, or Discard Changes to drop them.

How to read model usage

Open a model and select the Usage tab. The "Usage Information" dashboard shows, for the selected time range (Last 7 days by default):

  • Estimated cost, LLM calls, Tokens used and Avg response time;
  • Breakdown by agent: Agent, Call count, Tokens used, Estimated cost and Avg response time.

Use the time range picker and Refresh to change the period, and the fullscreen button to enlarge the dashboard.

The Usage tab of a model with estimated cost, LLM calls, tokens used, average response time and the breakdown by agent.

Model settings reference

Model provider fields

Field Required Description
Provider Yes Provider type: Open AI, Open Router, Azure OpenAI, vLLM, Ollama or Custom. Prefills Name and Base URL.
Name Yes Display name of the provider. Must be unique.
Base URL Yes Endpoint of the provider's API. Every model of the provider uses it.
Authentication secret No The secret with the provider key, or No secret.
Enabled / Disabled — Status, shown in the Edit provider dialog. Enabling needs a successful Try provider.

Model fields: General tab

Field Required Description
Provider Yes The model provider the model belongs to.
Model name/id Yes The provider's identifier of the model, picked from the provider's model list.
Name Yes Display name used by agents, evaluations and usage dashboards.
Description No Free text.

The model view also shows the API Base URL that the model takes from its provider.

Model fields: Access Control tab

Field Required Description
Read Access No Users and teams that can view this model.
Write Access No Users and teams that can edit this model.
Manage Access Yes Users and teams that can manage access and settings.
Execute Access No Users, teams and service accounts that can call this model.

Model fields: Advanced tab

Field Required Description
Send stream_options No Asks for token counts on streamed responses. On by default.
Context window No Maximum tokens per request. History is trimmed to fit; empty means never trim.
Structured output No Requests structured output responses.
Input price No USD per 1M input tokens.
Output price No USD per 1M output tokens.
Cached input price No USD per 1M cached input tokens. Empty means a tenth of the input price.
Settings (JSON) No Optional JSON object with custom configuration.

Model actions

Where Actions
Model view, actions menu ⋮ Edit, Copy, Show History, Delete
Model edit page, actions menu ⋮ Copy, Try model, Show History, Delete
Provider row menu ⋮ Get models, Edit, Delete

Copy creates a new model with the same settings and " (copy)" added to the name. Show History opens the Activity Log filtered to the model.

Troubleshooting models

Model name/id is disabled in Create Model

Cause: no provider is selected yet. Fix: choose the Provider first; the model list then loads from that provider.

The model list of a provider is empty

Cause: the provider's Base URL or secret is wrong, or the provider does not report models. Fix: open the provider with Edit, click Try provider and correct Base URL or Authentication secret until the test succeeds.

A provider cannot be enabled

Cause: STAIR enables a provider only after a successful connection test. Fix: in the Edit provider dialog, click Try provider first. If the test fails, the message "Provider is malfunctioning and requires more configuration" appears; fix the Base URL or the secret and try again.

Streaming responses fail with a backend that works for non-streamed calls

Cause: the backend rejects the stream_options request field. Fix: turn off Send stream_options on the model's Advanced tab. Streamed responses then carry no token counts.

Long conversations fail with a context length error

Cause: the conversation is larger than the model accepts. Fix: set Context window on the model's Advanced tab to the model's limit, so STAIR trims the history to fit.

Estimated cost stays at zero

Cause: the model has no prices. Fix: enter Input price and Output price on the Advanced tab. An empty price means the model produces no cost.

FAQ

What is the difference between a model and a model provider in STAIR?

A model provider holds the connection: type, Base URL and authentication secret. A model is one LLM of that provider with a display name, access rules, context window and pricing. One provider can serve many models.

Where do I set the API key of an LLM?

Store the key as a secret, then pick it in the provider's Authentication secret. Models never hold a key of their own.

Which LLM services can STAIR connect to?

The provider types are Open AI, Open Router, Azure OpenAI, vLLM, Ollama and Custom. Use Custom for any other endpoint that speaks the same API.

What does Context window do?

It sets how many tokens the model accepts in one request. STAIR trims the conversation history to fit it; an empty value means the history is never trimmed.

How does STAIR calculate the estimated cost of a model?

It multiplies the tokens used by the model's input, output and cached input prices, set in USD per million tokens on the Advanced tab. Without prices the model produces no cost.

Who can use a model?

Users and teams with Read Access see the model. Execute Access lists the users, teams and service accounts that can call it. Agents refer to the model by its Name.