docs/guide/agent-model-matching.md
For agents and users: Why each agent needs a specific model — and how to customize without breaking things.
STOP. BEFORE YOU POINT SISYPHUS AT SOME OTHER MODEL, READ EVERY WORD BELOW. THIS IS THE SINGLE MOST IGNORED THING IN THIS WHOLE GUIDE.
SISYPHUS IS ONLY MAINTAINER-VERIFIED ON THE EXACT MODELS LISTED IN THIS SUPPORTED SET — AND NOTHING, NOTHING, ELSE. The supported set is narrow on purpose:
Known GPT-5.6 Sisyphus risk: GPT-5.6 Sol is an automatic fallback and receives a model-aware GPT-native prompt, but issue #6074 tracks over-orchestration on bounded work. Hephaestus remains the recommended GPT-5.6 agent; the Sisyphus route is available for fallback coverage, not a claim that it is the best fit.
Experimental, not supported: GLM 5.2. A dedicated GLM-5.2-calibrated prompt exists, and the selector uses it for model IDs recognized as GLM. One community report describes good results, but maintainers have not yet validated the nested todo, delegation, long-context, and non-ultrawork behavior end to end. The Sisyphus fallback chain is configured with the glm-5 model literal, but fuzzy availability matching can resolve that entry to GLM 5.1 or GLM 5.2. Any resulting GLM 5.2 use remains experimental, not a supported configuration.
IF A MODEL IS NOT ON THE SUPPORTED LIST, IT IS NOT MAINTAINER-VERIFIED WITH SISYPHUS. A community report does not change that status. It may not work at all. It may look like it works and then fall apart three tool-calls later. IT IS NOT A SUPPORTED CONFIGURATION, IT IS NOT BLESSED, AND IT IS NOT A PROMISE THAT IT WILL STILL WORK TOMORROW.
EVERY SINGLE PROMPT CHANGE TO SISYPHUS IS WRITTEN, TUNED, AND REGRESSION-CHECKED AGAINST THE MODELS ABOVE — AND ONLY THOSE MODELS. Nobody is watching how an off-list model behaves. The consequences are not subtle:
SO, GENUINELY AND SINCERELY, FROM THE BOTTOM OF OUR HEARTS: RUNNING SISYPHUS ON ANY MODEL NOT LISTED HERE IS STRONGLY, EMPHATICALLY, DESPERATELY NOT RECOMMENDED. Do it anyway and you are fully on your own — and you should expect it to break.
We have NOT found any way to make MiniMax, Qwen, MiMo, or DeepSeek work acceptably as Sisyphus. We tried. They do not hold up under Sisyphus's nested todo + delegation + orchestration prompt. This is not a "tune it more" situation — see the rule above: a prompt cannot fix a model.
MiniMax and Qwen in particular are so bad in the Sisyphus role that we would almost forbid it outright. Treat "Sisyphus on MiniMax" and "Sisyphus on Qwen" as configurations you should simply never reach for. (These models still have legitimate jobs elsewhere — MiniMax for fast utility fallback, Qwen for visual work, both documented below — just NEVER as the orchestrator.)
Think of AI models as developers on a team. Each has a different brain, different personality, different strengths. A model isn't just "smarter" or "dumber." It thinks differently. Give the same instruction to Claude and GPT, and they'll interpret it in fundamentally different ways.
This isn't a bug. It's the foundation of the entire system.
Oh My OpenAgent assigns each agent a model that matches its working style — like building a team where each person is in the role that fits their personality.
Sisyphus is the developer who knows everyone, goes everywhere, and gets things done through communication and coordination. Talks to other agents, understands context across the whole codebase, delegates work intelligently, and codes well too. But deep, purely technical problems? He'll struggle a bit.
This is why Sisyphus uses Claude / Kimi / GLM. These models excel at:
Using Sisyphus with older GPT models would be like taking your best project manager — the one who coordinates everyone, runs standups, and keeps the whole team aligned — and sticking them in a room alone to debug a race condition. Wrong fit. GPT-5.4 has its own prompt, while GPT-5.5 and GPT-5.6 Sol share a model-aware GPT-native prompt family; GPT is still not the default recommendation for the orchestrator.
⚠️ Sisyphus is ONLY tested on Claude (Fable 5 / Opus 4.8 / 4.7 / Sonnet 4.6), Kimi (K3 / K2.7 / K3 / K3), GLM (5 / 5.1), and GPT (5.4 / 5.5 / 5.6 Sol). Anything else is not maintainer-verified or supported and can break without warning. MiniMax and Qwen as Sisyphus are strongly discouraged to the point we'd almost forbid it. Read the 🚨 READ THIS FIRST warning at the very top of this guide before you override the orchestrator's model.
GLM 5.2 remains experimental. It has a calibrated prompt and one community report, but no maintainer end-to-end validation. The prompt selector applies to model IDs recognized as GLM. The hardcoded Sisyphus fallback entry is the
glm-5literal, which fuzzy availability matching may resolve to GLM 5.1 or GLM 5.2.
Hephaestus is the developer who stays in their room coding all day. Doesn't talk much. Might seem socially awkward. But give them a hard technical problem and they'll emerge three hours later with a solution nobody else could have found.
This is why Hephaestus uses GPT-5.6 sol (falling back to GPT-5.6 Sol). The GPT-5.x flagship line is built for exactly this:
Using Hephaestus with GLM or Kimi would be like assigning your most communicative, sociable developer to sit alone and do nothing but deep technical work. They'd get it done eventually, but they wouldn't shine — you'd be wasting exactly the skills that make them valuable.
Every agent's prompt is tuned to match its model's personality. When you change the model, you change the brain — and the same instructions get understood completely differently. Model matching isn't about "better" or "worse." It's about fit.
This matters for understanding why some agents support both model families while others don't.
Claude responds to mechanics-driven prompts — detailed checklists, templates, step-by-step procedures. More rules = more compliance. You can write a 1,100-line prompt with nested workflows and Claude will follow every step.
GPT (especially 5.2+) responds to principle-driven prompts — concise principles, XML structure, explicit decision criteria. More rules = more contradiction surface = more drift. GPT works best when you state the goal and let it figure out the mechanics.
Prometheus used to mirror this split with separate model-family prompts. It now uses a single thin prompt backed by ulw-plan, so swapping its model changes the fallback choice, not the prompt file.
Atlas still supports model-family prompt behavior. Prometheus does not auto-switch prompts at runtime.
Before configuring anything, see what your current system can run.
opencode models
This prints every provider/model combination you can address right now. Providers are derived from your connected auth + the models.dev catalogue.
Opencode sorts the output so opencode* providers appear first — that's intentional, not cosmetic.
opencode auth list
Shows which providers you've already logged into.
You need to log in to that provider:
opencode auth login
The interactive picker prioritizes providers in this order:
| Priority | Provider | Opencode's own hint |
|---|---|---|
| 0 | opencode | (Recommended) |
| 1 | opencode-go | Low cost subscription for everyone |
| 2 | openai | ChatGPT Plus/Pro or API key |
| 3 | github-copilot | — |
| 4 | anthropic | API key |
| 5 | google | — |
You can also skip the picker: opencode auth login --provider opencode-go.
bunx oh-my-openagent doctor
This shows the effective model resolution for every agent and category based on your current auth state. If an agent says "system-default" instead of a real fallback, that's a signal you're missing providers from its chain.
You don't need every provider. You need the right two.
~$30/month total. Beats direct Anthropic + OpenAI + Google subscriptions (~$60+/month) on both cost and coverage.
| Subscription | Cost | What You Get | Covers |
|---|---|---|---|
| OpenCode Go | $10/mo | kimi-k3, kimi-k3, glm-5, glm-5.2, minimax-m2.5, minimax-m2.7, minimax-m3, mimo-v2-pro, qwen3.5-plus, qwen3.6-plus | Claude-family alternatives (Kimi, GLM), Gemini-family alternatives (Qwen), utility/retrieval (MiniMax) |
| OpenAI Plus/Pro | $20+/mo | gpt-5.4, gpt-5.4-pro, gpt-5.6-sol, gpt-5.6-sol, gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna | GPT-native agents (Hephaestus, Oracle, Momus), GPT-5.6 category defaults (deep, ultrabrain, unspecified-low), GPT fallbacks for model-flexible agents |
Add --claude=max20 (or yes) on install. The Claude chain default (Opus 4.8, snapshot-backed) activates for Sisyphus/Prometheus/Atlas and you still get the OpenCode Go fallbacks for free. Pin claude-opus-4-8 or claude-fable-5 to run the current top Claude with Sisyphus/Atlas tuned prompts, or pin opencode-go/kimi-k3 to run the top Kimi; Prometheus keeps its single ulw-plan-backed prompt. Best-in-class orchestration + budget safety net.
OpenCode Go alone gets Sisyphus/Atlas/Oracle/Librarian/Explore working. Hephaestus won't activate without GPT access, so you lose autonomous deep work. Consider adding ChatGPT Plus as soon as you can.
If one premium model is quota-limited while your other models are effectively unlimited, optimize in this order:
For a scarce Claude Fable 5 allocation, Metis is the default value-per-token placement. It is compatible with Metis's prompt style, runs before the plan is finalized, and can prevent expensive downstream work without putting every Sisyphus, Atlas, or worker turn on the limited quota.
{
"agents": {
"metis": {
"model": "anthropic/claude-fable-5",
"variant": "max",
"fallback_models": [
{ "model": "anthropic/claude-sonnet-4-6" },
{ "model": "openai/gpt-5.6-sol", "variant": "high" },
{ "model": "kimi-for-coding/kimi-k3" }
]
}
}
}
The explicit model and variant make Fable 5 the normal Metis model. fallback_models only supplies secondary candidates; putting Fable 5 there without an explicit model does not assign it as the normal model for an agent whose primary model is available.
Use a different slot only when the model family and workflow justify it:
When the "native" model isn't available, oh-my-openagent walks each agent's fallback chain until something connects. The chains are hardcoded in packages/omo-opencode/src/shared/model-requirements.ts. There is no single global priority list. Every agent and category has its own chain.
There are two separate systems:
chat.params using hardcoded AGENT_MODEL_REQUIREMENTS and CATEGORY_MODEL_REQUIREMENTSsession.error, configurable per category/agent in runtime-fallback hooksTwo things move at different speeds, and the difference explains why "Opus 4.8" still appears as a default below:
ulw-plan-backed prompt. Pin one in your config: "anthropic/claude-opus-4-8", "anthropic/claude-fable-5", "opencode-go/kimi-k3", "opencode-go/kimi-k2.7-code". Use that when you want to opt into the newer model explicitly.So an "Opus 4.8 (max)" entry in the chains below is the snapshot-backed floor, not a recommendation to prefer 4.7 over 4.8.
Used by: Sisyphus, Atlas, Sisyphus-Junior, Metis (Claude path), Prometheus (primary fallback), unspecified-low, unspecified-high.
The priorities below include manual model choices. They are not a literal copy of every agent's automatic fallback chain; see Agent Profiles for the exact runtime chains.
| Priority | Model | Provider | Why |
|---|---|---|---|
| 1 | claude-fable-5 / claude-opus-4-8 / claude-opus-4-8 (max) | anthropic, github-copilot, opencode, vercel | Best overall compliance with the ~1,100-line Sisyphus prompt. Sisyphus carries per-version prompts for all three; Prometheus uses its single ulw-plan-backed prompt. Opus 4.8 is the hardcoded chain default for budget stability. |
| 2 | claude-sonnet-4-6 | same | Faster, cheaper, still Claude. |
| 3 | kimi-k3 - RECOMMENDED ALTERNATIVE (newest Kimi) | opencode-go, kimi-for-coding, moonshotai, opencode, vercel | Strongest Kimi for Sisyphus. Use when you can accept the thinking-token cost; the prompt is calibrated to stop overthinking and keep work moving. |
| 4 | kimi-k2.7 - RECOMMENDED ALTERNATIVE | same as K3 | Restrained, outcome-first, and the top Kimi when Anthropic isn't connected. Agents with Kimi-specific prompt paths use their K2.7 tuning; Prometheus keeps its ulw-plan-backed prompt. |
| 5 | kimi-k3 or kimi-k3 — RECOMMENDED ALTERNATIVE | same as K3 | Instruction-following mirrors Claude closely. Current default Kimi in the chains after K3. |
| 6 | glm-5 or glm-5.1 — ACCEPTABLE ALTERNATIVE | opencode-go, zai-coding-plan, opencode, vercel | Claude-like, slightly looser on long nested workflows. The automatic Sisyphus chain is configured with glm-5; fuzzy availability matching may select GLM 5.1 or GLM 5.2 for that literal. |
| 7 | glm-5.2 — EXPERIMENTAL | opencode-go, zai-coding-plan, opencode, vercel | Uses the GLM-5.2-calibrated prompt because its model ID is recognized as GLM. It may be selected by fuzzy matching or configured directly, but remains backed by one community report rather than maintainer end-to-end validation. |
| 8 | big-pickle (GLM 4.6) | opencode | Free-tier safety net. |
Kimi ≻ GLM. Kimi (K3 newest, then K2.7, then K3/K3) holds up under Sisyphus's nested todo+delegation prompts better than GLM. Use Kimi whenever both are available.
Used by: Hephaestus, Oracle, Momus, deep, ultrabrain, quick, unspecified-low, Prometheus (GPT fallback), Atlas (GPT path).
| Priority | Model | Provider | Why |
|---|---|---|---|
| 1 | gpt-5.6-sol (xhigh / high / medium) | openai, vercel | The GPT-5.6 flagship. Default for Hephaestus (medium) and ultrabrain (xhigh); first fallback for deep. |
| 1 | gpt-5.6-terra (xhigh / high) | openai, vercel | GPT-5.6 mid-tier. New default for the deep category; default for Momus (high). |
| 1 | gpt-5.6-luna (xhigh) | openai, vercel | GPT-5.6 light tier. New default for the unspecified-low category. |
| 2 | gpt-5.6-sol / gpt-5.4 (pro / xhigh / high / medium) | openai, github-copilot, opencode, vercel | Previous flagship generation; first fallback on providers without GPT-5.6. Hephaestus requires this family. |
| 3 | gpt-5.6-sol | same | Still the deep-coding powerhouse. Kept as an explicit override option. |
| 3 | DeepSeek — LIMITED ALTERNATIVE (deepseek-v3.2, deepseek-chat-v3.1) | openrouter/deepseek | Closest OSS equivalent for autonomous coding behavior. Not wired into default chains — add via fallback_models. |
| 4 | MiniMax — STRONGLY DISCOURAGED (minimax-m3, minimax-m2.7, minimax-m2.5) | opencode-go, opencode, openrouter/minimax | Used only in utility fallback chains (Explore, Librarian, quick). Consistency and long-context management issues make it a poor substitute for Hephaestus/Oracle. Do NOT override deep agents to MiniMax. |
DeepSeek ≻≻ MiniMax. DeepSeek retains GPT's autonomous exploration character. MiniMax loses coherence on multi-step deep work. MiniMax is fine for grep-style utility agents, nothing more.
Used by: visual-engineering, artistry, Oracle (visual fallback), Multimodal-Looker.
| Priority | Model | Provider | Why |
|---|---|---|---|
| 1 | gemini-3.1-pro (high) | google, github-copilot, opencode, vercel | Best for UI/UX, CSS, design tokens, layout decisions. artistry category requires this family. |
| 2 | gemini-3-flash | same | Fast variant, writing/doc tasks. |
| 3 | Qwen — ALTERNATIVE (qwen3.6-plus, qwen3.5-plus) | opencode-go, openrouter/qwen | Closest vision-capable substitute when Google isn't connected. Uses different reasoning style but handles visual tasks competently. |
No GLM/Kimi here. They're not Gemini substitutes for visual work. Use Qwen.
| If you lose... | Swap to (in order) | Avoid |
|---|---|---|
| Claude Opus/Sonnet | Kimi K3 → Kimi K2.7 → K3/K3 → GLM 5 → Big Pickle | Older GPT models |
| GPT-5.4/5.5/5.6 Sol | GPT-5.6 Sol Codex → DeepSeek v3.2 | MiniMax (except for utility work) |
| Gemini 3.1 Pro | Qwen 3.6-plus / 3.5-plus | Claude/Kimi (wrong reasoning style for visual) |
| GPT-5.4 Mini Fast (Explore/Librarian) | Qwen 3.5-plus → MiniMax M2.7 Highspeed → MiniMax M3 → Claude Haiku | Opus (massive cost waste) |
GLM 5.2 is not an explicit model literal in that automatic substitution order. The Sisyphus chain is configured with glm-5, but fuzzy availability matching may resolve that entry to GLM 5.1 or GLM 5.2. If GLM 5.2 is selected, its status is still experimental.
Exact current runtime chains from agent-model-requirements.ts.
| Agent | Primary | Full fallback chain |
|---|---|---|
| sisyphus | claude-opus-4-8 | anthropic|github-copilot|opencode|vercel/claude-opus-4-8 (max) → opencode-go|kimi-for-coding|moonshotai|opencode|vercel|bailian-coding-plan|moonshotai-cn|firmware|ollama-cloud|aihubmix/kimi-k3 → openai|github-copilot|opencode|vercel/gpt-5.6-sol (medium) → zai-coding-plan|opencode|bailian-coding-plan|vercel/glm-5 → opencode/big-pickle |
| hephaestus | gpt-5.6-sol | openai|github-copilot|vercel|opencode/gpt-5.6-sol (medium) |
| oracle | gpt-5.6-sol | openai|opencode|vercel/gpt-5.6-sol (xhigh) → github-copilot/gpt-5.6-sol (high) → google|github-copilot|opencode|vercel/gemini-3.1-pro (high) → anthropic|github-copilot|opencode|vercel/claude-opus-4-8 (max) → opencode-go|vercel/glm-5.2 |
| librarian | gpt-5.4-mini-fast | openai/gpt-5.4-mini-fast → opencode-go|bailian-coding-plan/qwen3.5-plus → vercel/minimax-m2.7-highspeed → opencode-go|vercel/minimax-m3 → minimax-coding-plan|minimax-cn-coding-plan/MiniMax-M3 → opencode-go|vercel/minimax-m2.7 → anthropic|github-copilot|vercel/claude-haiku-4-5 → openai|vercel/gpt-5.4-nano |
| explore | gpt-5.4-mini-fast | openai/gpt-5.4-mini-fast → opencode-go|bailian-coding-plan/qwen3.5-plus → vercel/minimax-m2.7-highspeed → opencode-go|vercel/minimax-m3 → minimax-coding-plan|minimax-cn-coding-plan/MiniMax-M3 → opencode-go|vercel/minimax-m2.7 → anthropic|github-copilot|vercel/claude-haiku-4-5 → openai|vercel/gpt-5.4-nano |
| multimodal-looker | gpt-5.6-sol | openai|opencode|vercel/gpt-5.6-sol (low) → opencode-go|vercel/kimi-k3 → zai-coding-plan|vercel/glm-4.6v → openai|github-copilot|opencode|vercel/gpt-5-nano |
| prometheus | claude-opus-4-8 | anthropic|github-copilot|opencode|vercel/claude-opus-4-8 (max) → openai|github-copilot|opencode|vercel/gpt-5.6-sol (high) → opencode-go|vercel/glm-5.2 → google|github-copilot|opencode|vercel/gemini-3.1-pro |
| metis | claude-sonnet-4-6 | anthropic|github-copilot|opencode|vercel/claude-sonnet-4-6 → anthropic|github-copilot|opencode|vercel/claude-opus-4-8 (max) → openai|github-copilot|opencode|vercel/gpt-5.6-sol (medium) → opencode-go|vercel/glm-5.2 → kimi-for-coding/kimi-k3 |
| momus | gpt-5.6-terra | openai|vercel/gpt-5.6-terra (high) → github-copilot/gpt-5.6-terra (high) → openai|opencode|vercel/gpt-5.6-sol (xhigh) → github-copilot/gpt-5.6-sol (high) → anthropic|github-copilot|opencode|vercel/claude-opus-4-8 (max) → google|github-copilot|opencode|vercel/gemini-3.1-pro (high) → opencode-go|vercel/glm-5.2 |
| atlas | claude-sonnet-4-6 | anthropic|github-copilot|opencode|vercel/claude-sonnet-4-6 → opencode-go|vercel/kimi-k3 → openai|github-copilot|opencode|vercel/gpt-5.6-sol (medium) → opencode-go|vercel/minimax-m3 → minimax-coding-plan|minimax-cn-coding-plan/MiniMax-M3 → opencode-go|vercel/minimax-m2.7 |
| sisyphus-junior | claude-sonnet-4-6 | anthropic|github-copilot|opencode|vercel/claude-sonnet-4-6 → opencode-go|vercel/kimi-k3 → openai|github-copilot|opencode|vercel/gpt-5.6-sol (medium) → opencode-go|vercel/minimax-m3 → minimax-coding-plan|minimax-cn-coding-plan/MiniMax-M3 → opencode-go|vercel/minimax-m2.7 → opencode/big-pickle |
Communicative, instruction-following, structured output. Best for agents that need to follow complex multi-step prompts. Sisyphus, Sisyphus-Junior, Atlas, and Metis use tuned prompt paths for supported communicative models. Prometheus uses one thin ulw-plan-backed prompt across model families.
| Model | Strengths |
|---|---|
| Claude Fable 5 | Top tier, above Opus. Highest compliance; has its own per-agent prompt variants. |
| Claude Opus 4.8 | Current best Opus — steerable and literal. Dedicated per-agent prompt variants. |
| Claude Opus 4.8 | Still excellent; the hardcoded default in the Sisyphus chain for budget stability. |
| Claude Sonnet 4.6 | Faster, cheaper. Good balance for everyday tasks. |
| Claude Haiku 4.5 | Fast and cheap. Good for quick tasks and utility work. |
| Kimi K3 | Newest Kimi generation. Strong reasoning and instruction following; tuned Sisyphus prompt explicitly bounds overthinking so it keeps moving on routine work. Recommended when the thinking-token cost is acceptable. |
| Kimi K2.7 | Restrained and outcome-first, a GPT-5.6 Sol-leaning Opus 4.8 in a Claude-family body. Top Kimi for the orchestrators; agents with Kimi-specific prompt paths use K2.7 tuning while Prometheus keeps its ulw-plan-backed prompt. |
| Kimi K3 | Behave very similarly to Claude. Great all-rounders at lower cost; K3 is the Kimi fallback in the Sisyphus chain. |
| GLM 5 | Claude-like behavior. Solid for orchestration tasks. |
| GLM 5.2 | Experimental for Sisyphus. Model IDs recognized as GLM use a GLM-5.2-calibrated prompt, but evidence is one community report without maintainer end-to-end validation. |
Principle-driven, explicit reasoning, deep technical capability. Best for agents that work autonomously on complex problems.
| Model | Strengths |
|---|---|
| GPT-5.6 Sol Codex | Deep coding powerhouse. Autonomous exploration. Still available for deep category and explicit overrides. |
| GPT-5.6 Sol | The GPT-5.6 flagship. Default for Hephaestus (medium); default for the ultrabrain category and first fallback for deep. |
| GPT-5.6 Terra | GPT-5.6 mid-tier. Default for the deep category (xhigh) and Momus (high). |
| GPT-5.6 Luna | GPT-5.6 light tier. Default for the unspecified-low category (xhigh). |
| GPT-5.6 Sol | High intelligence, strategic reasoning. Default for Oracle, first fallback for Momus (xhigh) and Hephaestus, and a key fallback for Prometheus / Atlas. |
| GPT-5.4 Mini | Fast + strong reasoning. Good for lightweight autonomous tasks. Default for quick category. |
| GPT-5-Nano | Ultra-cheap, fast. Good for simple utility tasks. |
| Model | Strengths |
|---|---|
| Gemini 3.1 Pro | Excels at visual/frontend tasks. Different reasoning style. Default for visual-engineering and artistry. |
| Gemini 3 Flash | Fast. Good for doc search and light tasks. |
| GPT-5.4 Mini Fast | Default for Explore and Librarian agents. Blazing-fast reasoning-capable mini model. |
| MiniMax M3 | Latest MiniMax flagship. Primary MiniMax fallback in OpenCode Go utility chains, ahead of M2.7. |
| MiniMax M2.7 | Fast and smart. Used in OpenCode Go and OpenCode Zen utility fallback chains. |
| MiniMax M2.7 Highspeed | High-speed OpenCode catalog entry used in utility fallback chains that prefer the fastest available MiniMax path. |
A premium subscription tier ($10/month) that provides reliable access to Chinese frontier models through OpenCode's infrastructure.
Available Models:
| Model | Use Case |
|---|---|
| opencode-go/kimi-k3 | Strongest Kimi orchestration model. Primary recommended Kimi for Sisyphus when thinking cost is acceptable. |
| opencode-go/kimi-k3 | Vision-capable, Claude-like reasoning. Used by Sisyphus, Atlas, Sisyphus-Junior, Multimodal Looker. |
| opencode-go/glm-5.2 | Text-only orchestration model. Used by Oracle, Prometheus, Metis, Momus, deep, and ultrabrain. |
| opencode-go/minimax-m3 | Latest MiniMax flagship on OpenCode Go. Primary MiniMax fallback for Atlas, Sisyphus-Junior, Explore and Librarian, ahead of M2.7. |
| opencode-go/minimax-m2.7 | Ultra-cheap, fast responses. Used by Atlas, Sisyphus-Junior, Explore and Librarian fallbacks for utility work. |
| opencode-go/qwen3.5-plus | Qwen coding model used as the first OpenCode Go utility fallback for Explore and Librarian when GPT-5.4 Mini Fast is unavailable. |
When It Gets Used:
OpenCode Go models appear throughout the fallback chains as intermediate options. Depending on the agent, they can sit before GPT, after GPT, or act as the last structured-model fallback before cheaper utility paths.
Go-Only Scenarios:
Some model identifiers in fallback chains are provider-specific aliases. For example, kimi-k3 resolves through kimi-for-coding, while glm-5 can resolve through zai-coding-plan, opencode, or vercel depending on availability.
You may see model names like kimi-k3-free, minimax-m3, minimax-m2.7, minimax-m2.7-highspeed, or big-pickle (GLM 4.6) in the source code or logs. These are provider-specific or speed-optimized entries in fallback chains.
You don't need to configure them. The system includes them so it degrades gracefully when you don't have every paid subscription. If you have the paid version, the paid version is always preferred.
When agents delegate work, they don't pick a model name — they pick a category. The category maps to the right model automatically.
| Category | Used For | Default Model | Full fallback chain |
|---|---|---|---|
visual-engineering | Frontend, UI, CSS, design | google/gemini-3.1-pro (high) | google|github-copilot|opencode|vercel/gemini-3.1-pro (high) → zai-coding-plan|opencode|bailian-coding-plan|vercel/glm-5 → anthropic|github-copilot|opencode|vercel/claude-opus-4-8 (max) → opencode-go|vercel/glm-5.2 → kimi-for-coding/kimi-k3 |
ultrabrain | Maximum reasoning needed | openai/gpt-5.6-sol (xhigh) | openai|vercel/gpt-5.6-sol (xhigh) → github-copilot/gpt-5.6-sol (high) → openai|opencode|vercel/gpt-5.6-sol (xhigh) → google|github-copilot|opencode|vercel/gemini-3.1-pro (high) → anthropic|github-copilot|opencode|vercel/claude-opus-4-8 (max) → opencode-go|vercel/glm-5.2 |
deep | Deep coding, complex logic | openai/gpt-5.6-terra (xhigh) | openai|vercel/gpt-5.6-terra (xhigh) → github-copilot/gpt-5.6-terra (high) → openai|github-copilot|vercel/gpt-5.6-sol (high) → openai|github-copilot|opencode|vercel/gpt-5.6-sol (medium) → anthropic|github-copilot|opencode|vercel/claude-opus-4-8 (max) → google|github-copilot|opencode|vercel/gemini-3.1-pro (high) → opencode-go|vercel/kimi-k3 → opencode-go|vercel/glm-5.2 |
artistry | Creative, novel approaches | google/gemini-3.1-pro (high) | google|github-copilot|opencode|vercel/gemini-3.1-pro (high) → anthropic|github-copilot|opencode|vercel/claude-opus-4-8 (max) → openai|github-copilot|opencode|vercel/gpt-5.6-sol (high) → opencode-go|vercel/kimi-k3 → opencode-go|vercel/glm-5.2 |
quick | Simple, fast tasks | openai/gpt-5.4-mini | openai|github-copilot|opencode|vercel/gpt-5.4-mini → anthropic|github-copilot|vercel/claude-haiku-4-5 → google|github-copilot|opencode|vercel/gemini-3-flash → opencode-go|vercel/minimax-m3 → minimax-coding-plan|minimax-cn-coding-plan/MiniMax-M3 → opencode-go|vercel/minimax-m2.7 → opencode|vercel/gpt-5-nano |
unspecified-low | General standard work | openai/gpt-5.6-luna (xhigh) | openai|vercel/gpt-5.6-luna (xhigh) → github-copilot/gpt-5.6-luna (high) → anthropic|github-copilot|opencode|vercel/claude-sonnet-4-6 → openai|opencode|vercel/gpt-5.6-sol (medium) → opencode-go|vercel/kimi-k3 → google|github-copilot|opencode|vercel/gemini-3-flash → opencode-go|vercel/minimax-m3 → minimax-coding-plan|minimax-cn-coding-plan/MiniMax-M3 → opencode-go|vercel/minimax-m2.7 |
unspecified-high | General complex work | anthropic/claude-opus-4-8 (max) | anthropic|github-copilot|opencode|vercel/claude-opus-4-8 (max) → openai|github-copilot|opencode|vercel/gpt-5.6-sol (high) → zai-coding-plan|opencode|bailian-coding-plan|vercel/glm-5 → kimi-for-coding/kimi-k3 → opencode-go|vercel/glm-5.2 → opencode|bailian-coding-plan|vercel|moonshotai|moonshotai-cn|firmware|ollama-cloud|aihubmix/kimi-k3 |
writing | Text, docs, prose | kimi-for-coding/kimi-k3 | google|github-copilot|opencode|vercel/gemini-3-flash → opencode-go|vercel/kimi-k3 → anthropic|github-copilot|opencode|vercel/claude-sonnet-4-6 → opencode-go|vercel/minimax-m3 → minimax-coding-plan|minimax-cn-coding-plan/MiniMax-M3 → opencode-go|vercel/minimax-m2.7 |
See the Orchestration System Guide for how agents dispatch tasks to categories.
packages/omo-opencode/src/shared/model-requirements.ts includes vercel on nearly every gateway-compatible fallback entry across both agent and category chains. Treat it as a universal extra provider path for the listed model IDs, not as a different model family.
{
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/dev/assets/oh-my-opencode.schema.json",
"agents": {
// Sisyphus: Kimi K3 is the top alternative to Claude for orchestration
"sisyphus": {
"model": "opencode-go/kimi-k3",
"ultrawork": { "model": "opencode-go/kimi-k3" },
},
// Hephaestus: needs GPT. ChatGPT Plus gets you here.
"hephaestus": { "model": "openai/gpt-5.6-sol", "variant": "medium" },
// Architecture consultation: GPT or Claude Opus
"oracle": { "model": "openai/gpt-5.6-sol", "variant": "high" },
// Prometheus keeps the same ulw-plan-backed prompt across model families
"prometheus": { "model": "opencode-go/kimi-k2.7-code" },
// Atlas also communicative — Kimi works great
"atlas": { "model": "opencode-go/kimi-k3" },
// Utility agents stay cheap
"explore": { "model": "opencode-go/qwen3.5-plus" },
"librarian": { "model": "opencode-go/qwen3.5-plus" },
},
"categories": {
"visual-engineering": { "model": "opencode-go/qwen3.6-plus" }, // Qwen as Gemini alt
"deep": { "model": "openai/gpt-5.6-terra", "variant": "xhigh" },
"ultrabrain": { "model": "openai/gpt-5.6-sol", "variant": "xhigh" },
"quick": { "model": "openai/gpt-5.4-mini" },
"unspecified-high": { "model": "opencode-go/kimi-k3" },
"unspecified-low": { "model": "opencode-go/kimi-k2.7-code" },
"writing": { "model": "opencode-go/kimi-k3" },
},
"background_task": {
"providerConcurrency": {
"openai": 3,
"opencode-go": 10,
},
},
}
Highest quality, highest cost. No surprises.
{
"agents": {
"sisyphus": {
"model": "anthropic/claude-opus-4-8",
"variant": "max",
},
"hephaestus": { "model": "openai/gpt-5.6-sol", "variant": "medium" },
"oracle": { "model": "openai/gpt-5.6-sol", "variant": "high" },
},
"categories": {
"visual-engineering": { "model": "google/gemini-3.1-pro", "variant": "high" },
"deep": { "model": "openai/gpt-5.6-terra", "variant": "xhigh" },
"unspecified-high": { "model": "anthropic/claude-opus-4-8", "variant": "max" },
},
}
Cheapest full-stack path. Hephaestus won't activate — accept that trade-off.
{
"agents": {
"sisyphus": { "model": "opencode-go/kimi-k3" },
"atlas": { "model": "opencode-go/kimi-k3" },
// Omit hephaestus entirely; it needs GPT.
"oracle": { "model": "opencode-go/glm-5.2" }, // Degraded but functional
"explore": { "model": "opencode-go/qwen3.5-plus" },
"librarian": { "model": "opencode-go/qwen3.5-plus" },
},
"categories": {
"visual-engineering": { "model": "opencode-go/qwen3.6-plus" },
"deep": { "model": "opencode-go/kimi-k3" }, // Not ideal — Kimi isn't GPT, but best available
"unspecified-high": { "model": "opencode-go/kimi-k3" },
"unspecified-low": { "model": "opencode-go/kimi-k2.7-code" },
"quick": { "model": "opencode-go/minimax-m2.7" },
"writing": { "model": "opencode-go/kimi-k3" },
},
}
If you have OpenRouter and want DeepSeek in the chain when GPT is unavailable:
{
"agents": {
"oracle": {
"model": "openai/gpt-5.6-sol",
"variant": "high",
"fallback_models": [
"anthropic/claude-opus-4-8",
{ "model": "openrouter/deepseek/deepseek-v3.2", "temperature": 0.7 },
"opencode-go/glm-5.2",
],
},
},
}
fallback_models accepts a mix of plain model strings and per-fallback objects with variant, reasoningEffort, temperature, top_p, maxTokens, thinking.
Safe — same personality type:
ulw-plan-backed prompt, different model)Experimental — not maintainer-verified:
glm-5, and fuzzy availability matching may select GLM 5.2 for it, but the model is not in the maintainer-verified set.Dangerous — personality mismatch:
visual-engineering → Kimi/GLM: Wrong reasoning style. Use Qwen if Gemini is unavailable, not Claude-likes.Each agent has a fallback chain. The system tries models in priority order until it finds one available through your connected providers. You don't need to configure providers per model. Just authenticate (opencode auth login) and the system figures out which models are available and where.
Resolution pipeline (from packages/omo-opencode/src/shared/model-resolution-pipeline.ts):
1. Override → User's explicit config or UI-selected model (primary agents only)
2. Category default → From category config (when agent has category set)
3. User fallback_models → Configured strings/objects tried before hardcoded chain
4. Provider fallback → AGENT_MODEL_REQUIREMENTS / CATEGORY_MODEL_REQUIREMENTS
5. System default → Ultimate safety net
Core-agent tab cycling is deterministic via injected runtime order field. The fixed priority order is Sisyphus (order: 0), Hephaestus (order: 1), Prometheus (order: 2), and Atlas (order: 3), then the remaining agents follow.
Your explicit configuration always wins. If you set a specific model for an agent, that choice takes precedence even when resolution data is cold.
Variant and reasoningEffort overrides are normalized to model-supported values, so cross-provider overrides degrade gracefully instead of failing hard.
Model capabilities are models.dev-backed, with a refreshable cache and capability diagnostics. Use bunx oh-my-openagent refresh-model-capabilities to update the cache, or configure model_capabilities.auto_refresh_on_start to refresh at startup.
To see which models your agents will actually use, run bunx oh-my-openagent doctor. This shows effective model resolution based on your current authentication and config.
Agent Request → User Override (if configured) → Fallback Chain → System Default
You can load agent system prompts from external files using file:// URLs in the prompt field, or append additional content with prompt_append. The prompt_append field also works on categories.
{
"agents": {
"sisyphus": {
"prompt": "file:///path/to/custom-prompt.md",
},
"oracle": {
"prompt_append": "file:///path/to/additional-context.md",
},
},
"categories": {
"deep": {
"prompt_append": "file:///path/to/deep-category-append.md",
},
},
}
The file content is loaded at runtime and injected into the agent's system prompt. Supports ~ expansion for home directory and relative file:// paths.
packages/omo-opencode/src/shared/model-requirements.ts — Source of truth for fallback chains