Hermes Agent
Hermes Agent is Nous Research's agent runtime, tuned for the Hermes / Qwen tool format. It injects a large system prompt with ~60+ tools, so a long context window is a hard prerequisite.
/v1/chat/completions ·
Setup: rapid-mlx agents hermes --setup ·
Matrix cell:
✅ ✅ XFAIL(arch) ✅
(DeepSeek R1-Distill — see
XFAIL arch).
Re-verified 2026-08-01 — a wire smoke on the running server, on rapid-mlx 0.11.5, Qwen 3.5-9B-4bit on an M2 Pro Mac mini (32 GB) — Qwen family only; the other three families were not re-run in this pass.
Install
$ pip install hermes-agent # If the pip build fails on your platform, clone and install from source in a venv: # git clone https://github.com/NousResearch/hermes-agent && cd hermes-agent # python -m venv .venv && .venv/bin/pip install -e .
Config
One-shot: rapid-mlx agents hermes --setup writes
~/.hermes/config.yaml, auto-detecting your served model's
real context window. A representative template
(context_length shown for a 256K-window model):
# ~/.hermes/config.yaml model: provider: "custom" default: "default" base_url: "http://localhost:8000/v1" context_length: 262144 max_tokens: 4096 platform_toolsets: cli: [terminal, file, code_execution, web, browser, skills]
Run
$ rapid-mlx serve qwen3.5-9b-4bit $ hermes chat
Recommended aliases (per rapid-mlx agents hermes):
qwen3.5-4b-4bit, qwen3.5-9b-4bit,
gemma-4-26b-4bit, qwen3.5-35b-4bit,
qwen3.6-35b-4bit.
Integration harness (test_hermes.py)
The deep flow at
tests/integrations/test_hermes.py
writes ~/.hermes/config.yaml to point at the running
server, then drives hermes chat -q <query> -Q in
non-interactive mode. Because Hermes injects 60+ tools into every
turn, small models can run out of context — the harness treats
"context too small for the tool block" as SKIP, not FAIL.
Gotchas
-
Long context is a hard prerequisite — Hermes refuses to start below 64K.
Hermes' 60+ tool block eats several thousand tokens by itself, so it
rejects any model whose
context_lengthis under64000("context window … below the minimum 64,000 required by Hermes Agent"). Setcontext_lengthto your model's real window (e.g.262144for Qwen 3.6) —--setupdoes this automatically. A stale32768value copied by hand will be refused up front. -
todo tool conflict on Gemma 4. Hermes injects a
todotool that races Gemma 4's own reasoning format. Fix: excludetodofromplatform_toolsets, or use Hermes'-tflag. - Gemma 4 "calling tool mimicry". After many tool turns Gemma 4 parrots Hermes UI text. Fixed in rapid-mlx v0.4.3.
Empirical
The hermes-agent row of the integration matrix
is ✅ on Qwen 3.6, Gemma 4, and gpt-oss; DeepSeek R1-Distill
XFAIL(arch). Deep flow assertions in
test_hermes.py cover plain, streaming, single tool,
multi-tool, and structured output.