Core concepts

Models & providers

One pipeline, any model. Every agent in a crew can run on a different model from a different provider, and model usage is passed through to you at the provider's list price — no markup.

How model routing works#

A workflow has a default model, and each agent in the crew may override it. At run time LoopLlama looks at the model id, picks the provider that serves it, makes the call with the platform's pooled credentials, and records the provider's reported token usage and its cost on the step. Tool calling, human-in-the-loop pauses and checkpoints work the same way on every provider, so you can mix models freely within one run — a cheap model to triage, a frontier model to decide, a fast one to format.

  • Bare ids like claude-sonnet-4-6, gpt-5.4 or gemini-2.5-flash are routed by their naming convention.
  • Prefixed ids like openai/gpt-5.4 make the provider explicit — required for models that aren't in the catalog yet, or for a custom endpoint (custom/<model>). An unlisted model is billed at its provider's highest listed rate until it's added to the catalog with its real price (unlisted Claude models are priced by family), so it can never be under-billed.
  • Model ids that can't be routed are rejected with 400 Bad Request when you create or update a workflow, so a typo never reaches a run.
json
{
  "name": "Support triage",
  "model": "gemini-2.5-flash",
  "crew": [
    { "role": "classifier", "systemPrompt": "Label the ticket: billing, bug, or how-to." },
    { "role": "investigator", "model": "claude-sonnet-4-6",
      "systemPrompt": "Pull the relevant account facts and draft a reply." },
    { "role": "reviewer", "model": "openai/gpt-5.4",
      "systemPrompt": "Check the draft for accuracy and tone; output the final reply." }
  ]
}

Web-grounded models (Perplexity Sonar)

Perplexity's Sonar models are available as pipeline steps and behave like Perplexity's answer engine: every call searches the live web and the answer comes back with numbered citations, which LoopLlama appends to the step output as a Sources list. Use sonar for quick cited answers, sonar-pro for thorough multi-angle research, sonar-reasoning-pro for verification and analysis, and sonar-deep-research for long-form reports. The Agent Hub ships ready-made Web Answer, Pro Search, Deep Research Report, Fact Checker, Market & Competitor Monitor and Finance Brief agents built on them.

Sonar models don't call tools
Sonar answers from the web; it can't use connectors or pause for human input. Saving a workflow that gives a Sonar agent connectors returns 400. Chain a Sonar research step with a tool-capable agent (any Claude, GPT or Gemini model) when the workflow needs to act on the findings. Perplexity bills a small per-request search fee on top of tokens (and, for deep research, per-query and reasoning-token fees); all of it is passed through at cost and shown on the step.

Your own fine-tuned models

GPT-4.1, GPT-4.1 mini, Mistral Small and Codestral can be fine-tuned on your own examples — including the steps your workflows have already produced — from Dashboard → Model training or POST /v1/fine-tunes. A finished job's ft:… model id is routable like any catalog id in the account that trained it, billed at the base model's fine-tuned inference rate; training tokens are billed once at the provider's training rate. See the model training guide.

Discovering available models#

The dashboard's model pickers list every model whose provider is configured on your LoopLlama deployment, grouped by provider with its rate. Programmatically, the same list is available to logged-in users at GET /api/models:

json
{
  "models": [
    {
      "id": "claude-sonnet-4-6",
      "label": "Claude Sonnet 4.6",
      "provider": "anthropic",
      "providerLabel": "Anthropic",
      "inPer1M": 3,
      "outPer1M": 15,
      "context": 1000000,
      "tools": true,
      "available": true
    }
  ],
  "providers": [{ "id": "anthropic", "label": "Anthropic", "configured": true }],
  "source": "live",
  "pricingAsOf": "2026-10-02"
}

Billing: at cost, no markup#

Your plan pays for the platform — orchestration, traces, connectors, approvals, scheduling — and is metered in workflow steps. Model usage is a separate, pass-through line: for every step we record the provider's reported input, output and cached tokens and price them at that provider's published list rate. The sum appears as cost_usd on each step and run, in your usage dashboard, and on your invoice at exactly that amount.

cost_usdnumberoptional
On runs and steps: model usage cost in USD at the provider's list price. Zero for stub runs (no provider configured).
Who pays for the model
Paid plans are invoiced for model usage at cost each billing period. The free Developer plan's model usage is covered by its included steps. Enterprise customers can instead bring their own provider keys and pay providers directly.

Model catalog & list prices#

ModelModel idInput / 1MOutput / 1M
Anthropic
Claude Opus 5.5claude-opus-5-5$4.00$20.00
Claude Sonnet 5.5claude-sonnet-5-5$2.00$10.00
Claude Opus 4.7claude-opus-4-7$5.00$25.00
Claude Sonnet 4.6claude-sonnet-4-6$3.00$15.00
Claude Haiku 4.5claude-haiku-4-5$1.00$5.00
OpenAI
GPT-5.5gpt-5.5$5.00$30.00
GPT-5.4gpt-5.4$2.50$15.00
GPT-5.4 minigpt-5.4-mini$0.75$4.50
GPT-5.4 nanogpt-5.4-nano$0.20$1.25
GPT-5gpt-5$1.25$10.00
GPT-5 minigpt-5-mini$0.25$2.00
GPT-5 nanogpt-5-nano$0.05$0.40
GPT-4.1gpt-4.1$2.00$8.00
GPT-4.1 minigpt-4.1-mini$0.40$1.60
Google
Gemini 3.1 Progemini-3.1-pro-preview$2.00$12.00
Gemini 3 Flashgemini-3-flash-preview$0.50$3.00
Gemini 2.5 Progemini-2.5-pro$1.25$10.00
Gemini 2.5 Flashgemini-2.5-flash$0.30$2.50
Gemini 2.5 Flash-Litegemini-2.5-flash-lite$0.10$0.40
xAI
Grok 4grok-4$3.00$15.00
Grok 4.1 Fast (reasoning)grok-4-1-fast-reasoning$0.20$0.50
Grok 4.1 Fastgrok-4-1-fast-non-reasoning$0.20$0.50
DeepSeek
DeepSeek V4 Prodeepseek-v4-pro$1.74$3.48
DeepSeek V4 Flashdeepseek-v4-flash$0.14$0.28
Mistral
Mistral Largemistral-large-latest$0.50$1.50
Mistral Smallmistral-small-latest$0.15$0.60
Codestralcodestral-latest$0.30$0.90
Perplexity
Sonarweb search+ $0.008 per request (search fee)sonar$1.00$1.00
Sonar Proweb search+ $0.010 per request (search fee)sonar-pro$3.00$15.00
Sonar Reasoning Proweb search+ $0.010 per request (search fee)sonar-reasoning-pro$2.00$8.00
Sonar Deep Researchweb search+ $0.005 per web search · reasoning tokens $3.00 / 1Msonar-deep-research$2.00$8.00
Providers' published list prices in USD per 1M tokens (plus any per-request search fee the provider charges), billed at cost with no markup. Rates last verified 2026-10-02; when a provider changes its prices, yours change with them. Cached-input discounts are passed through where the provider reports them.

Providers#

  • Anthropic — Claude models via the official Anthropic SDK.
  • OpenAI — GPT models via the Chat Completions API.
  • Google — Gemini models via the Gemini API's OpenAI-compatible endpoint.
  • xAI — Grok models.
  • DeepSeek — DeepSeek V4 models.
  • Mistral — Mistral models via La Plateforme.
  • Perplexity — Sonar models search the live web on every call and return cited sources — Perplexity's answer engine as a pipeline step. Token rates plus a per-request search fee (medium search context), passed through at cost. No tool calling.
  • Custom endpoint — Any OpenAI-compatible server (vLLM, Ollama, OpenRouter, Together, Groq…). Models are registered with EXTRA_MODELS.

Self-hosting: enabling providers

On your own deployment, a provider is enabled by setting its API key (and, for a custom OpenAI-compatible server, its base URL). Models from unconfigured providers are hidden from pickers, and a run that references one fails fast with a message naming the missing variable. With no provider configured at all, runs complete with a deterministic stub so you can test the integration first.

bash
ANTHROPIC_API_KEY=sk-ant-…
OPENAI_API_KEY=sk-…
GOOGLE_API_KEY=…
XAI_API_KEY=…
DEEPSEEK_API_KEY=…
MISTRAL_API_KEY=…
PERPLEXITY_API_KEY=pplx-…

# Any OpenAI-compatible server (vLLM, Ollama, OpenRouter, Together, Groq…)
OPENAI_COMPAT_BASE_URL=http://localhost:11434/v1
OPENAI_COMPAT_API_KEY=
EXTRA_MODELS='[{"id":"llama-3.3-70b","label":"Llama 3.3 70B","in":0.6,"out":0.6}]'

# Correct a list price without a deploy (USD per 1M tokens)
MODEL_PRICING_OVERRIDES='{"gpt-5.4":{"in":2.5,"out":15}}'

Rates are checked against provider pricing pages regularly; see Pricing for how model usage combines with your plan.