Models & Providers
Aura Workshop is model-agnostic. Bring your own keys for 16 built-in providers and aggregators, plus any OpenAI-compatible endpoint — point a custom provider at any OpenAI-compatible server you run yourself, set sampling parameters per model, and let Aura Routing 2.0 pick the right model for each task — with a circuit breaker, load balancing, conditional rules, a semantic cache, and spend-limit fallback layered on top.
Cloud providers (direct API)
Aura Workshop connects directly to each provider's own API. The provider is auto-detected
from the model slug (org/model), so in most cases you only need to paste an
API key and pick a model. Each provider appears as an expandable card on the Models page.
| Provider | API base URL | Models |
|---|---|---|
| Anthropic | api.anthropic.com | Claude family (Opus, Sonnet, Haiku) for advanced reasoning, analysis, and code |
| OpenAI | api.openai.com | GPT and o-series models for versatile general-purpose tasks |
generativelanguage.googleapis.com | Gemini multimodal models with very large context windows | |
| MiniMax | api.minimax.io | MiniMax models for text, plus voice and video generation |
Authentication
Keys are held per provider, so one install can carry several at once
(provider_keys), with optional per-provider base-URL overrides
(provider_urls) and per-model key selection (key_overrides) when
a single model should bill to a specific plan.
| Provider | Auth type | Header / param |
|---|---|---|
| Anthropic | API key header | x-api-key: sk-ant-… |
| OpenAI | Bearer token | Authorization: Bearer sk-… |
| Query parameter | ?key=AIza… | |
| MiniMax | Bearer token | Authorization: Bearer … |
Configuring a cloud provider
- Open the Models page from the sidebar.
- Click a provider card to expand it.
- Paste your API key. Aura queries the provider's
/modelsendpoint and caches the result (~24h TTL), so the model dropdown stays current without manual entry. - Select a model. Adjust sampling parameters if needed (see Model parameters).
- Save. The model is immediately available in the quick model switcher for all new tasks.
thinking_level (off / low / medium /
high) and wired per provider — see
Thinking-mode wiring below.
Sign in with your subscription
Some providers let you sign in with your existing model subscription instead of pasting an API key. Aura brokers this with its own OAuth: click Sign in on the provider card, complete consent in your browser, and the token is stored in your encrypted local database and refreshed automatically before it expires. Supported today: Anthropic Claude, OpenAI, Kimi (Moonshot), and MiniMax.
Aggregator services
Aggregators expose many models behind a single key. All speak an OpenAI-compatible API with Bearer-token auth, so adding one key unlocks a wide catalog. Aura auto-detects the underlying vendor from the model slug's prefix.
| Aggregator | Highlights |
|---|---|
| OpenRouter | Unified API for 200+ models with automatic fallback; many free model options. |
| Together AI | Fast inference for open-weight models — Llama, Qwen, DeepSeek, Mistral, Gemma. |
| Groq | Ultra-fast LPU inference with sub-second latency; free tier with rate limits. |
| DeepSeek | High-performance reasoning and coding at low cost. |
| SiliconFlow | Cost-effective GPU cloud inference for Qwen and DeepSeek models. |
| Zhipu AI (z.ai) | GLM models with free tiers; exposes a reasoning_effort knob on GLM-5.2+. |
| Moonshot / Kimi | Multilingual, long-context models; supports named sub-keys (e.g. a coding plan). |
| Mistral AI | European models strong in coding and multilingual tasks. |
| Xiaomi / MiMo | Xiaomi's MiMo models for general tasks. |
| OpenCode Zen | Unified endpoint exposing GPT, Claude, Gemini, Grok and Qwen model families behind one key. |
Cloud tool integrations (Slack, Gmail, GitHub, Notion and 100+ more) are handled separately through Composio and MCP — see Integrations.
Custom & local providers
Any endpoint that speaks the OpenAI API format can be added as a custom provider. This is how you run models on your own hardware: stand up a local OpenAI-compatible server and point a custom provider at it.
Adding a custom provider
- Name — a human-readable label for the provider.
- Base URL — the API base, e.g.
http://localhost:11434/v1(Ollama) orhttp://localhost:1234/v1(LM Studio). - API key — a bearer key if the server requires one; local servers often need none.
- API format — OpenAI, Anthropic, Google, or generic OpenAI-compatible.
- Context window — set it so context compaction triggers at the right point for the model.
- Test connection — verify the endpoint is reachable before saving.
A custom provider stores its own base_url and (optional) key. Once saved, its
models sit alongside cloud models in the quick switcher and can back
teams and routing tiers like any other provider.
Common local servers
| Server | Typical base URL | Notes |
|---|---|---|
| Ollama | http://localhost:11434/v1 | Pull-and-run local model runner; OpenAI-compatible endpoint. |
| LM Studio | http://localhost:1234/v1 | Desktop app that serves local models over an OpenAI-compatible API. |
| vLLM | http://<host>:8000/v1 | High-throughput serving with PagedAttention for production workloads. |
| LocalAI / TGI / SGLang | varies | Any other OpenAI-compatible server works the same way. |
Model parameters
Sampling parameters shape a model's output. The values below are the global defaults; a
per-model override in model_params always wins over them, and is the source
Aura Routing, fallback, and hot-swap read to pull the correct settings for whatever model
they switch to.
| Parameter | Default | Description |
|---|---|---|
| Temperature | 0.7 | Controls randomness. Lower is more focused; higher is more creative. |
| Top P | 0.8 | Nucleus sampling — consider only tokens within this cumulative probability. |
| Top K | 20 | Consider only the K most likely tokens per step. 0 disables. |
| Min P | 0.0 | Discard tokens below this probability floor. |
| Repeat penalty | 1.0 | Values above 1.0 discourage repetition. |
| Max tokens | 4096 | Maximum tokens generated in a single response. |
| Thinking level | off | Extended-reasoning depth: off / low / medium / high, on models that support it. |
Per-model overrides
model_params is a map of modelId → {temperature, topP, topK,
maxTokens, …}, seeded from the built-in model presets and updated whenever you
override a value on the Models page. Notable built-in defaults: Gemma (temp 1.0, top_p
0.95, top_k 64) and Qwen3 (temp 0.6). Keeping overrides per model means routing to a
different model automatically carries that model's correct sampling settings.
Thinking-mode wiring
A single thinking_level maps to whatever each provider's API expects. Budget
tokens are derived from the level: low = 1024, medium = 4096, high = 16384.
| Provider | Wire form |
|---|---|
| OpenAI o-series, Grok | reasoning_effort |
| OpenRouter | reasoning |
| Anthropic, Kimi, DeepSeek, GLM-5 | thinking: {type: enabled, budget_tokens} |
| Qwen3, Seed | enable_thinking |
| MiniMax M2 | reasoning_split |
Aura Routing 2.0
Aura Routing automatically picks a cost-appropriate model for each task. A 23-dimension scorer classifies every request into a tier and resolves a model from that tier, and five phases layer on top of the scorer. Everything runs locally and in-DB, and every decision is written to a routing decision log that powers the Routing Debug Log UI.
Enable it in Settings → Routing (routing_enabled). When
disabled, every task uses the globally selected model.
Tiers
Four tiers, each with its own model and boundary score, are configured in routing_config:
| Tier | Intended use |
|---|---|
| Simple | Quick questions, translations, formatting — routed to the cheapest model. |
| Standard | Moderate work: writing, analysis, single-step coding. |
| Complex | Multi-step tasks: architecture, debugging, research — routed to a capable model. |
| Reasoning | Deep reasoning, math, or extended chain-of-thought — routed to the most powerful model. |
The five phases
A request first checks conditional rules; on no match it falls through to the scorer, then load balancing, the health breaker, the semantic cache, and finally the guardrails registry before the provider call.
| Phase | What it does |
|---|---|
| 1 — Health circuit breaker | Passive latency + rate-limit breaker per model (Closed / Open / HalfOpen). A model that keeps failing is avoided and the next healthy alternative is picked; the circuit recovers with a single probe. Tracked in-memory with zero request overhead. |
| 2 — Weighted load balancer | When a tier holds several models, spreads traffic with a task-id-sticky weighted pick, skipping any model the health breaker has flagged. Stickiness keeps one task on one model across its turns. |
| 3 — Conditional routing rules | (when_expr, target) rows in the routing_rules table, evaluated by priority. The first match pins a tier or model and short-circuits the scorer — e.g. force a specific model when the prompt matches a condition. |
| 4 — Guardrails | Input / Output / Tool rules with actions Allow / Block / Redact; the first Block wins. Bundled rules cover destructive bash, a max-token cap, PII, secrets, and prompt injection. Seeded disabled — operators opt in per rule. (Hard-coded bash guardrails always block regardless.) |
| 5 — Semantic cache | Exact-hash plus embedding-cosine lookup keyed on namespace, model, and the tool fingerprint. A close-enough prior answer can be served without an LLM call. Off by default (semantic_cache_enabled); threshold defaults to 0.95 and never serves on a retry/restart or empty prompt. |
Routing analytics
The routing view reports tasks per tier, actual cost versus the hypothetical cost of running everything on the most capable model, and the resulting dollar and percentage savings — updated in real time. Reset from the billing reset control.
Spend limits & fallback
Spend limits and the fallback chain are their own tables, managed under
Settings → Billing (or via GET/PUT /api/billing/limits and
/api/billing/fallback-order).
- Spend limits — per-provider
{daily_limit_usd, monthly_limit_usd, enabled}. When the current provider is over budget, the resolver walks the fallback chain until it finds a provider that is in budget and reachable. - Fallback order — priority-ordered
{provider, model, base_url, api_key_ref}rows that define where routing spills over.
For every knob referenced here — routing config, semantic-cache keys, spend limits, provider keys and URL overrides — see the full reference in Settings.