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.

No model is baked in. Aura ships no bundled inference engine — every model comes from a provider you configure. Any provider you add is immediately available in the quick model switcher and to teams and autonomous agents.

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.

ProviderAPI base URLModels
Anthropicapi.anthropic.comClaude family (Opus, Sonnet, Haiku) for advanced reasoning, analysis, and code
OpenAIapi.openai.comGPT and o-series models for versatile general-purpose tasks
Googlegenerativelanguage.googleapis.comGemini multimodal models with very large context windows
MiniMaxapi.minimax.ioMiniMax 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.

ProviderAuth typeHeader / param
AnthropicAPI key headerx-api-key: sk-ant-…
OpenAIBearer tokenAuthorization: Bearer sk-…
GoogleQuery parameter?key=AIza…
MiniMaxBearer tokenAuthorization: Bearer …

Configuring a cloud provider

  1. Open the Models page from the sidebar.
  2. Click a provider card to expand it.
  3. Paste your API key. Aura queries the provider's /models endpoint and caches the result (~24h TTL), so the model dropdown stays current without manual entry.
  4. Select a model. Adjust sampling parameters if needed (see Model parameters).
  5. Save. The model is immediately available in the quick model switcher for all new tasks.
Thinking / reasoning models. Extended-reasoning depth is set with thinking_level (off / low / medium / high) and wired per provider — see Thinking-mode wiring below.

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.

AggregatorHighlights
OpenRouterUnified API for 200+ models with automatic fallback; many free model options.
Together AIFast inference for open-weight models — Llama, Qwen, DeepSeek, Mistral, Gemma.
GroqUltra-fast LPU inference with sub-second latency; free tier with rate limits.
DeepSeekHigh-performance reasoning and coding at low cost.
SiliconFlowCost-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 / KimiMultilingual, long-context models; supports named sub-keys (e.g. a coding plan).
Mistral AIEuropean models strong in coding and multilingual tasks.
Xiaomi / MiMoXiaomi's MiMo models for general tasks.
OpenCode ZenUnified 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.

Aura does not bundle or run local models. There is no built-in inference engine and no LAN GPU cluster. To use local models, run your own server (Ollama, LM Studio, vLLM, LocalAI, TGI, SGLang, …) and connect it here as a custom provider. The one exception is memory embeddings, which use a separate user-configured endpoint — see Settings → Memory.

Adding a custom provider

  • Name — a human-readable label for the provider.
  • Base URL — the API base, e.g. http://localhost:11434/v1 (Ollama) or http://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

ServerTypical base URLNotes
Ollamahttp://localhost:11434/v1Pull-and-run local model runner; OpenAI-compatible endpoint.
LM Studiohttp://localhost:1234/v1Desktop app that serves local models over an OpenAI-compatible API.
vLLMhttp://<host>:8000/v1High-throughput serving with PagedAttention for production workloads.
LocalAI / TGI / SGLangvariesAny 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.

ParameterDefaultDescription
Temperature0.7Controls randomness. Lower is more focused; higher is more creative.
Top P0.8Nucleus sampling — consider only tokens within this cumulative probability.
Top K20Consider only the K most likely tokens per step. 0 disables.
Min P0.0Discard tokens below this probability floor.
Repeat penalty1.0Values above 1.0 discourage repetition.
Max tokens4096Maximum tokens generated in a single response.
Thinking leveloffExtended-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.

ProviderWire form
OpenAI o-series, Grokreasoning_effort
OpenRouterreasoning
Anthropic, Kimi, DeepSeek, GLM-5thinking: {type: enabled, budget_tokens}
Qwen3, Seedenable_thinking
MiniMax M2reasoning_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:

TierIntended use
SimpleQuick questions, translations, formatting — routed to the cheapest model.
StandardModerate work: writing, analysis, single-step coding.
ComplexMulti-step tasks: architecture, debugging, research — routed to a capable model.
ReasoningDeep 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.

PhaseWhat 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.
A pinned model never silently switches. Fallback applies only to Aura Routing and to over-budget spend limits. If you select a specific model, that model is always used, and any API or provider error surfaces directly in the chat UI rather than quietly swapping models behind your back.

For every knob referenced here — routing config, semantic-cache keys, spend limits, provider keys and URL overrides — see the full reference in Settings.