Every AI tool asks you the same question: which model do you want? GPT-4o? Claude Sonnet? Gemini Pro? You pick one, you're stuck with it for everything, and three weeks later a better model comes out and you have to reconfigure everything.
ANT virtual models eliminate this problem entirely. Instead of picking a specific model, you pick an intent — what you want optimized for — and Antbase's router selects the best model from a catalog of nearly 20,000 across 30+ providers. Every request. Automatically.
The Core Virtual Models
ant:auto — The Universal Default
Balanced routing across speed, quality, and cost. This is the one you use when you don't want to think about it. Simple questions get fast, cheap models. Complex ones get frontier models. The router classifies every request and decides. Most users should start here.
response = client.chat.completions.create(
model="ant:auto", # or just omit model — auto is the default
messages=[{"role": "user", "content": "Explain dependency injection"}],
)ant:coder — Built for Code
Optimized for code generation, refactoring, debugging, and code review. Routes to models with the highest code benchmarks — the ones that actually understand your codebase, not just parrot Stack Overflow. Use this with OpenCode, Kilo, Cursor, Continue, Cline, Aider, or any coding tool.
{
"model": "ant:coder",
"messages": [
{"role": "user", "content": "Refactor this function to use async/await instead of callbacks"}
]
}ant:reasoning — Deep Thinking
Routes exclusively to models with chain-of-thought capabilities — DeepSeek-R1, Qwen3-Thinking, Claude with extended thinking, GPT with reasoning effort. The model thinks step by step before answering. Use this for math, logic, complex debugging, architecture decisions, and anything that requires careful analysis.
ant:best — Maximum Quality
Quality above everything. Routes to the highest-scoring models regardless of cost or speed. When you need the absolute best answer and don't care about latency or price, this is the one. Think: critical code reviews, production architecture decisions, important client deliverables.
ant:fast — Speed First
Prioritizes latency. Sub-second responses from the fastest available models. Perfect for autocomplete, inline suggestions, quick Q&A, and any workflow where waiting breaks your flow.
ant:free — Zero Cost
Routes exclusively through free-tier models — no credits consumed. The quality is surprisingly good: you get access to Llama, Gemma, Qwen, Mistral, and other strong open models through providers like NVIDIA, Groq, Cerebras, and OpenRouter. Perfect for learning, experimenting, building prototypes, or running high-volume batch jobs where cost matters more than peak quality.
Specialized Virtual Models
- •ant:reasoning-fast — Speed-optimized reasoning. Thinks step by step but picks faster thinking models.
- •ant:reasoning-premium — Maximum reasoning power. Routes to the most capable thinking models regardless of cost.
- •ant:creative — Optimized for creative writing, dialogue, storytelling, and brainstorming.
- •ant:vision — Routes to vision-capable models. Send images and get analysis, OCR, description.
- •ant:ocr — Document OCR via Mistral. Send a document image, get structured markdown back.
- •ant:image-gen — Image generation. Describe what you want, get an image back.
- •ant:video-gen — Video generation from text descriptions.
How to Use Them
Virtual models work everywhere that accepts an OpenAI-compatible API. Just set the model name:
from openai import OpenAI
client = OpenAI(
base_url="https://antbase.ai/v1",
api_key="your-ant-api-key",
)
# Coding task → ant:coder
code = client.chat.completions.create(
model="ant:coder",
messages=[{"role": "user", "content": "Write a rate limiter in Go using token bucket"}],
)
# Hard problem → ant:reasoning
analysis = client.chat.completions.create(
model="ant:reasoning",
messages=[{"role": "user", "content": "Prove that this algorithm is O(n log n)"}],
)
# Quick question → ant:fast
answer = client.chat.completions.create(
model="ant:fast",
messages=[{"role": "user", "content": "What does the -z flag do in tar?"}],
)
# Free experimentation → ant:free
draft = client.chat.completions.create(
model="ant:free",
messages=[{"role": "user", "content": "Brainstorm 10 names for a CLI tool that manages dotfiles"}],
)Why This Matters
The AI model landscape changes weekly. New models drop, old models get deprecated, pricing shifts, providers have outages. If you hardcode a specific model, you're constantly maintaining that choice. Virtual models abstract this away completely.
When Gemma 4 launched yesterday, it immediately became eligible for ant:free and ant:coder routing — no configuration change, no code update. When a provider goes down, the router fails over to the next best option. When prices drop, you automatically benefit. Your code says ant:coder and Antbase handles the rest, now and forever.
Try Them All
The Playground lets you test every virtual model side by side. Pick a prompt, switch between ant:auto, ant:coder, ant:reasoning, ant:best, and see exactly which underlying model gets selected and how the response differs.



