AI model recommendations by use case

living

Single source of truth for which model to use for which job, consumed by:

  • Koder AI Gateway via the Aliases map (services/ai/gateway/internal/config/config.go) — clients pass an alias like model: "reasoning" and the gateway resolves to the current pick. Updating the pick is a one-line edit; consumers stay untouched.
  • Kode (the agentic Koder AI) and other AI agents — read this file when deciding which backend to invoke for a given task.
  • Humans — review on every flagship release; promotedemote alternatives based on `k-bench` results.

How to read: "primary" is what the gateway alias resolves to today. "Alternatives" are equally valid choices with different costqualitylatency trade-offs. "Why not the others" notes why something is not primary, so future revisions are informed rather than impulsive.


1. Reasoning pesado · alias reasoning

Primary anthropic/claude-opus-4-8
Alternatives openai/o3, xai/grok-4.20-0309-reasoning, deepseek/deepseek-reasoner, kimi/kimi-k2.6
Why primary Best raw reasoning quality for high-stakes architectural decisions, RFC analysis, ambiguous bugs. Worth the cost.
Why not OpenAI o3 Comparable quality; pick Opus when context > 100K or when you need strong code understanding. o3 wins on math-heavy reasoning.
Why not DeepSeek-R1 ~95% as good in many cases at 120 the cost — promote to primary if `k-bench` gap closes further.

2. Código (arquitetura/refactor) · alias code-arch

Primary anthropic/claude-opus-4-8
Alternatives openai/o3, openai/gpt-5, xai/grok-4.3
Why primary Best at multi-file refactors, understanding cross-cutting concerns, suggesting policies. Same model as reasoning — same justification.

3. Código (boilerplate / fast iteration) · alias code-fast

Primary xai/grok-code-fast-1
Alternatives mistral/codestral-latest, deepseek/deepseek-chat, openai/gpt-5-mini
Why primary Specifically tuned for code; sub-second latency; cheap. Pareto-optimal for "scaffold this CRUD endpoint" or "write 50 unit tests".
When to escalate Logic gets non-trivial → switch to code-arch.

4. General-purpose conversational · alias general

Primary openai/gpt-5
Alternatives anthropic/claude-sonnet-4-6, xai/grok-4.3, kimi/kimi-k2.6
Why primary Strong all-rounder; multimodal native (imagesaudio); best ecosystem of toolsfunction-calling. Defaults that "just work".

5. Cheap commodity · alias cheap

Primary deepseek/deepseek-chat
Alternatives google/gemini-2.0-flash, openai/gpt-4o-mini, mistral/mistral-small-latest
Why primary ~$0.14/M input with cache hit — 10× cheaper than gpt-4o-mini, comparable quality on common tasks (classification, summarization, simple Q&A).
When to switch to gemini-2.0-flash Need free tier (1500 req/day no billing) OR Google ecosystem features (grounding, native search).

6. Vision / multimodal · alias vision

Primary openai/gpt-4o
Alternatives anthropic/claude-sonnet-4-6, mistral/pixtral-large-latest, kimi/moonshot-v1-128k-vision-preview
Why primary Best chart/diagram OCR, screenshot understanding, frame-by-frame video analysis (relevant for Koder Konsul, Koru, dek workflows).

7. Audio / transcription · alias audio

Primary openai/whisper-1
Alternatives koder-ai-voice (local, post-VOICE-52 with CUDA backend)
Why primary Mature, multilingual, accurate for Brazilian Portuguese.
Future When VOICE-52 ships, default to local for cost savings (T4 GPU = $0/hour); keep whisper-1 as fallback for high-quality batch jobs.

7a. Local STT models · deployed at s.khost1:aivoice

Self-hosted speech-to-text models running on the Koder Stack infrastructure (/var/lib/koder-ai-voice/models/). Zero cost per call; privacy-first.

Source: Handy (desktop STT app) + upstream repos (ggerganovwhisper.cpp, NVIDIA NeMo, snakers4silero-vad).

Model Size Format Use case Status
ggml-tiny.bin 75 MB GGML Dev/test, low-latency preview deployed
ggml-base.bin 142 MB GGML Lightweight transcription deployed
ggml-small.bin 466 MB GGML Balanced quality/speed deployed
ggml-medium.bin 1.5 GB GGML Good quality, moderate latency deployed
ggml-large-v3-q5_0.bin 1.1 GB GGML Highest whisper quality (quantized) deployed 2026-05-27
ggml-large-v3-turbo-q5_0.bin 548 MB GGML Fast large model (speed-optimized) deployed 2026-05-27
parakeet-tdt-0.6b-v3-int8 640 MB ONNX CPU-only STT (~5× real-time, no GPU) deployed 2026-05-27
silero_vad.onnx 2.3 MB ONNX Voice activity detection (pre-filter) deployed 2026-05-27
diarization-segmentation.onnx 5.8 MB ONNX Speaker diarization segmentation deployed
diarization-speaker-embedding.onnx 38 MB ONNX Speaker embedding extraction deployed

Update cadence: check Handy releases and whisper.cpp models quarterly for new model versions. Parakeet updates from blob.handy.computer. Download to aivoice LXC and update this table.

Integration status: Whisper models active via whisper.cpp worker pool. Parakeet backend integration tracked in VOICE-058. Silero VAD integration tracked in VOICE-058 R3.

8. Embeddings · alias embed

Primary openai/text-embedding-3-large
Alternatives mistral/mistral-embed, google/embedding-001
Why primary 3072-dim, well-supported by every vector DB. Mature SDKs.

9. Image generation · alias image

Primary openai/dall-e-3
Alternatives xai/grok-imagine-image, xai/grok-imagine-image-pro, stability/... (when key added)
Why primary Best instruction-following on text-in-image, branded layouts.
Primary xai/grok-3
Alternatives perplexity/sonar-pro (when key added)
Why primary Built-in real-time search, no extra setup. Already paid (xAI auto-reload active).
Why not Perplexity yet Card declined 2026-05-06 — pending payment fix. When paid, sonar-pro likely takes primary because it's purpose-built for citations.

11. Long context (>200K tokens) · alias long-context

Primary google/gemini-2.5-pro
Alternatives anthropic/claude-sonnet-4-6 (~1M ctx), kimi/moonshot-v1-128k
Why primary ~2M token context window; cheapest per token at that scale; still on free tier today.

12. Local zero-cost · alias local

Primary ollama/qwen2.5:3b
Alternatives future ollama models pulled on demand
Why primary Already running on Tesla T4 GPU at ~172 toks. Free per-call. Use for: low-stakes classification, embeddings of bulk data, devstaging defaults.

Tier shortcuts (legacy — back-compat)

These predate the use-case aliases. Kept so existing code doesn't break.

Alias Resolves to Notes
fast anthropic/claude-haiku-4-5-20251001 cheap fast Anthropic
smart anthropic/claude-sonnet-4-6 balanced Anthropic
best anthropic/claude-opus-4-8 flagship Anthropic
claude anthropic/claude-sonnet-4-6 "I want Claude"

Update protocol

When updating this registry, also update the Aliases map in services/ai/gateway/internal/config/config.go in the same commit. The gateway's binary needs a rebuild + redeploy for the alias change to take effect (the model name is still hard-coded there).

Trigger conditions for revision:

  • New flagship model from any provider → reassess primary in relevant categories
  • /k-bench results show alternative beats primary by ≥10% on quality OR is ≥2× cheaper at same quality
  • A provider deprecates the current primary model
  • A new use case emerges that doesn't fit any existing alias

Quarterly review minimum even if no triggers fire.

Future: auto-tuned routing

AIGW-31 (smart-router auto-select) plans to populate this dynamically from nightly /k-bench runs against a task_categories SQLite table (currently missing — see AIGW-38 sub-issue 3). When that lands, this file becomes the fallback / human-readable explanation, with the SQLite table being the runtime source-of-truth.