MODELS

Model tiers for tool-heavy agent use: quality, cost/service, and local Ollama.

06 / 16·guide·v0.14.4

alpi works with any model that speaks the OpenAI tool-calling protocol via LiteLLM, but not every model is a good agent. The important question is not "what scores highest on a benchmark?" but "what model keeps choosing the right tool after 20 turns, with memory, skills, shell commands, browser calls, and user-specific state in context?"

Use this page as a practical selector. Prices, context windows, and provider wrappers move quickly; re-check them every 2-3 months.

Last updated: 2026-07-15.

What matters for alpi

For skill-heavy profiles, model quality mostly shows up in routing:

A cheap model can be excellent for status checks and short commands while still being a bad primary model for a profile with many skills.

External usage signal

Public provider dashboards can be useful when they show model use in tool-heavy agent workloads rather than chat-only benchmarks. Treat that data as a weak signal, not a ranking: defaults, price, rate limits, regional availability, and provider wrappers all bias usage.

Common high-usage models in tool-heavy agent workloads currently include MiMo V2.5 Pro / V2.5, DeepSeek V4 Pro / V4 Flash, MiniMax M3, Claude Sonnet 5 / Opus 4.8 / Fable 5, Nemotron 3 Super, and OpenAI GPT-5.6 Sol / Terra.

Pick by workload

The tables below use OpenRouter routes as the primary ID — a single OPENROUTER_API_KEY covers every entry, and several picks (MiMo, DeepSeek, MiniMax, Nemotron) only ship via OpenRouter. For Anthropic and OpenAI you can also use native routes if you have those provider keys; the convention is shown under the tables.

Skill router / long tool chains

Use these when the profile has many skills, persistent memory, stateful tools, or real side effects. This is the default category for daily interactive alpi use.

ModelOpenRouter IDWhy
DeepSeek V4 Prodeepseek/deepseek-v4-proStrong tool discipline at 1M context; sensible flagship-class daily driver.
MiMo V2.5 Proxiaomi/mimo-v2.5-proStrong adoption in persistent-agent workloads; 1M context, good price-for-quality.
MiniMax M3minimax/minimax-m3Mid-tier agent model; 512K context, decent for persistent sessions.
Claude Sonnet 5anthropic/claude-sonnet-5Premium daily driver; strongest tool discipline and coding judgement at this tier.

If you can only choose one model for a skill-heavy profile, start with DeepSeek V4 Pro, MiMo V2.5 Pro, or Sonnet 5 depending on budget and provider preference.

Cheap service turns

Use these for high-volume service turns, heartbeats, summaries, simple lookups, and low-risk commands. They are not the first choice for creating or debugging skills.

ModelOpenRouter IDWhy
DeepSeek V4 Flashdeepseek/deepseek-v4-flash-07311M context at the cheap-fast tier, and the cheapest way to get that headroom. Pinned snapshot rather than the moving alias, so a silent swap can't change behaviour under you. Replies cap at 64K output.
MiMo V2.5xiaomi/mimo-v2.5Budget sibling to MiMo V2.5 Pro; 1M context, useful for A/B testing cheap service profiles.
Claude Haiku 4.5anthropic/claude-haiku-4.5Cheap and fast with reasoning support; reliable for short-chain turns.
GPT-5.6 Terraopenai/gpt-5.6-terraBalanced OpenAI tier for simple tool use; acceptable as a router when the skill catalog is clean and small.
GPT-5.6 Lunaopenai/gpt-5.6-lunaCheapest OpenAI tier; mechanical turns only.

High-stakes engineering

Use these when a wrong tool call is expensive: refactors, code review, long debugging sessions, schema changes, release work.

ModelOpenRouter IDWhy
Claude Fable 5anthropic/claude-fable-5Ceiling — next-gen intelligence for long-running agents; most capable widely-released model.
Claude Opus 4.8anthropic/claude-opus-4.8Flagship for complex agentic coding and enterprise engineering.
Claude Sonnet 5anthropic/claude-sonnet-5Best daily premium balance for coding-heavy profiles.
GPT-5.6 Solopenai/gpt-5.6-solOpenAI flagship; leads the coding-agent index, strong general engineering.
Nemotron 3 Supernvidia/nemotron-3-super-120b-a12bOpen-weight engineering option; 256K context.

Local / sovereign profiles

"Best" here means best inside the local model ecosystem (Ollama, llama.cpp, vLLM), not best overall. The curated catalog does not pin specific local IDs because the field moves fast and the right pick depends on your VRAM budget. Choose from current Qwen-coder, Gemma, codestral, or Mistral families. Expect more prompt sensitivity than cloud frontier models and tighter context windows.

For privacy-constrained work that needs more headroom than your hardware allows, consider an open-weight cloud model like nvidia/nemotron-3-super-120b-a12b (256K) or deepseek/deepseek-v4-pro (1M) — not local, but no proprietary frontier dependency.

Native routes for Anthropic and OpenAI

If you have ANTHROPIC_API_KEY or OPENAI_API_KEY, you can use native routes instead of the OpenRouter aliases. Native usually means lower latency and one less layer to break.

ProviderOpenRouter routeNative route
Anthropicanthropic/claude-fable-5claude-fable-5
Anthropicanthropic/claude-opus-4.8claude-opus-4-8 (hyphens, not dots)
Anthropicanthropic/claude-sonnet-5claude-sonnet-5
Anthropicanthropic/claude-haiku-4.5claude-haiku-4-5
OpenAIopenai/gpt-5.6-solgpt-5.6-sol (alias gpt-5.6, no prefix)
OpenAIopenai/gpt-5.6-terragpt-5.6-terra
OpenAIopenai/gpt-5.6-lunagpt-5.6-luna

Prompt caching

Prompt caching is transparent and best-effort. Every supported provider and model still runs when caching is unavailable: alpi asks LiteLLM for an explicit cache marker only when that model reports support, and otherwise sends the normal request. OpenRouter routes additionally receive a hashed, stable conversation session_id to improve routing affinity; raw profile, session, peer, schedule, and workgroup identifiers are never sent.

Telemetry varies by provider and model. A reported zero is a measured cache miss; missing cache fields are no provider cache data, not a fabricated zero. OpenRouter, native Anthropic, DeepSeek, and other LiteLLM routes therefore share the same execution path but may expose different cache counts, discounts, or cost precision. This affects observability, never whether the response is accepted.

The cacheable prefix is the stable system prompt. Fresh clock/workgroup/skill/ relay context rides the user turn so normal conversation growth stays append-only. First contact, switching model, changing tools or system content, compaction, resume, reset, and edit-and-resend can legitimately produce a cold or rewritten prefix. Inspect /status for the current session and alpi digest for a calendar-day aggregate; use the provider dashboard as billing authority.

These can still be useful as workers, but they should not be the main model for a profile that depends on skills:

Production setups

alpi selects one primary model per profile, with optional dynamic routing around it (see docs/CONFIG.mdtiers / fallback_models):

Unconfigured tiers always resolve to the main model, so none of this changes behavior until you opt in. Profiles still split roles best:

Switching model

Three ways, any of them works:

The choice is per-profile. alpi -p work can run Sonnet 5 while alpi -p personal runs MiMo V2.5 without interference.

theme