model-router is a Hermes Agent plugin that classifies each conversational turn and routes it to one of five model tiers, choosing the lowest-cost tier expected to handle the task and escalating only when the agent struggles. The classifier runs before the main LLM call through Hermes's auxiliary.triage_specifier; on classifier failure the router falls back to tier 2.
The plugin is built around exactly five tier slots. You can change each slot's model, label, emoji, and reasoning mode in a per-profile model_router.yaml, but not the number of tiers. The default configuration targets OpenRouter; other providers work to the extent Hermes supports them through triage_specifier.
| Tier | Default model | Reasoning | Purpose |
|---|---|---|---|
| T1 | qwen/qwen3.5-flash-02-23 | — | triage, acknowledgments, cheap helper work |
| T2 | deepseek/deepseek-v4-flash | — | default daily driver |
| T3 | minimax/minimax-m2.7 | — | creating, basic coding, review, synthesis |
| T4 | deepseek/deepseek-v4-pro | — | planning, architecture, multi-step design |
| T5 | anthropic/claude-sonnet-4-6 | medium | high-stakes reasoning |
Escalation is driven by tool errors: after two consecutive failures the router bumps the session up one tier, up to T4 (T5 is reached only by manual pin or an explicit hint in the user text). When the turn completes, the tier drops back to the base tier assigned at the start of the turn. An installer script patches the required Hermes core files, regenerates routing documentation in skill_routing.md and a managed block in SOUL.md, and validates those patches on every Hermes launch, offering to repair them if a Hermes update has overwritten them.
Features
- Per-turn classification: every turn is triaged before the main model call and assigned a tier
- Manual pinning: /t1 to /t5 and /model pin a session; /auto resumes automatic routing
- Tier hints: mention T3, tier3, or tier 3 in a message to steer the router
- Auto-escalation: two consecutive tool errors raise the tier by one, repeatedly, capped at T4
- Auto de-escalation: the tier returns to the turn's base tier once the turn finishes
- Per-profile config: separate model_router.yaml for the default profile and each named profile
- Installer and validation: install.sh patches Hermes core, syncs config.yaml, and takes timestamped backups; startup validation repairs drift
- Documentation sync: regenerates skill_routing.md and the managed routing block in SOUL.md
- Hermes WebUI integration: patches a detected hermes-webui checkout to add native Auto/T1–T5 controls and route each turn before streaming
- Status display: the active tier shows in the CLI status bar


