Hermes on MiMo-V2.5: a 1M-context agent for pennies
Set MiMo-V2.5 as your everyday Hermes model: 1M context at $0.14/$0.28 per 1M tokens, with tool-use enforcement on for a non-GPT model.
Run this workflow
CI-verified, 2/2 fixtures passing.
Build this with your agent
One copy-paste hands Claude Code, Codex, or Cursor the full recipe, steps included, nothing to fetch.
Intended Use
Anyone who wants a cheap, capable default model for general Hermes agent work. CI validates that config.yaml parses and points Hermes at openrouter + xiaomi/mimo-v2.5 with tool_use_enforcement on (MiMo is not on Hermes' auto-enforce list, so you set it yourself). No API key, no model call. The actual conversation is a model step and is fenced.
Not for
- Tasks that need a frontier model's reasoning, this is the cheap-but-capable tier
- Expecting CI to judge MiMo's output quality, that is the fenced model step
The Stack
Tested Against
hermes-agent docs (2026-06)openrouter xiaomi/mimo-v2.5ruby@3.x (YAML stdlib)Side effects & data flow
- Network
- none, local only
- Writes
- ./config.yaml
- Credentials
- none required
Prerequisites
- Hermes Agent installed
- An OpenRouter API key (only to actually run the agent)
Steps
- 1
Point Hermes at MiMo-V2.5 and validate the config
Write ~/.hermes/config.yaml so model.provider is openrouter and model.model is the xiaomi/mimo-v2.5 slug. MiMo is not on Hermes' tool-use auto-enforce list (gpt/codex/gemini/gemma/grok), so turn tool_use_enforcement on if it narrates instead of calling tools. CI loads this exact YAML with a real parser and asserts the slug, no key.
cat > config.yaml <<'YAML' model: provider: openrouter model: xiaomi/mimo-v2.5 agent: tool_use_enforcement: true YAML ruby -ryaml -e ' c = YAML.load_file("config.yaml") m = c["model"] || {} abort "BAD: provider not openrouter" unless m["provider"] == "openrouter" abort "BAD: model not xiaomi/mimo-v2.5" unless m["model"] == "xiaomi/mimo-v2.5" puts "config OK: openrouter -> xiaomi/mimo-v2.5 (config.yaml parses)" ' - 2
Run the agent (the model step, not checked by CI)
Set OPENROUTER_API_KEY in ~/.hermes/.env and start Hermes. The conversation itself runs MiMo and costs per-token, so CI never claims it.
Eval, 2 fixtures
Last passed: verified todayconfig-okcontainstimeout 30s · max $0Expected:
config OK: openrouter -> xiaomi/mimo-v2.5 (config.yaml parses)clean-exitexit_codetimeout 30s · max $0Expected:
0
Results
MiMo-V2.5 scores ~49 on Artificial Analysis' Intelligence Index at $0.14 in / $0.28 out per 1M tokens (OpenRouter) with a 1M-token window: about as cheap as a capable default gets.
Did this work for you?
Our CI checks the setup runs. You tell us if the whole thing worked. Tell us straight.
Related workflows
- One shared memory for every coding agent: prove the configs actually point at the same server
- Validate a WrenAI semantic model's references before an agent queries through it
- Wire the DeepWiki MCP into your agent so it looks up repos instead of hallucinating
- Verify an agent-skills plugin before you ship or install it
- WebMCP: declare a site's agent tools, and gate the ones that spend money
- Wire GLM-5.2 into Hermes: valid route, 64k-context check, no key in config
Liked this workflow?
Get new verified workflows in WebAfterAI, three issues a week (Tue, Thu, Sat).