Bench-Essay · 2026-05-26
Wie ich gelernt habe,
einfach alles über Mistral zu routen.
$20 für Tier 2. $1.84 für einen Monat Benchmarks. Fünf überraschende Befunde aus der Set-Bench-Matrix.
Ich habe $20 bei Mistral verbrannt, um Tier-2-Ratenlimits freizuschalten.
Das ist nicht die Geschichte. Die Geschichte ist: Alle anderen Benchmarks zusammen — das komplette Set-Bench-Matrixrun über 8 Achsen, mehrere Modell-Snapshots, n=10, plus ein Monat ad-hoc Zell-Runs über die gesamte Mistral-Palette — haben kumuliert $1.84 gekostet. Die $20 waren eine einmalige Schwellengebühr, um das 1-RPS-Cap von Tier 1 wegzubekommen. Das eigentliche Benchen war Rundungsfehler.
Ich veröffentliche die Zahlen, weil sie mich selbst überrascht haben — und weil die These „Agenten sind teuer" einen Widerspruch verdient, der nicht voraussetzt, dass man mir glaubt. Die rohen JSONs zu jeder Zelle liegen im lynox-Repo. Ladet sie runter, re-aggregiert sie, fahrt die Matrix selbst nach. Das Harness ist npx tsx scripts/set-bench/run.ts.
Was folgt, sind fünf Befunde, die ich nicht erwartet habe — jeder mit einem Absatz Kontext. Wer Tabellen will: die liegen im JSON. Hier ist die Essay-Version.
Befund 1 — Ein 3B-Modell orchestriert auf Haiku-Niveau, für eine Grössenordnung weniger Geld.
ministral-3b-2512 (gepinnt) auf der Sub-Agent-Orchestrierungs-Achse (Parent fan-out, 3 Children suchen, Parent merged, 100% Pass): $0.00007 warm pro Task. Haiku 4.5 auf demselben Szenario aus dem 16. Mai Matrix-Run: ~$0.001. Gleiche Szenarien, gleiche Pass-Kriterien, n=10. Etwa vierzehnmal günstiger.
Ich hatte erwartet, dass die kleinen Mistrals als Router taugen — billiger Classifier davor, grosses Modell dahinter. Ich hatte nicht erwartet, dass sie auf Haiku-Niveau einen Agent-Loop fahren: entscheiden, welcher Sub-Agent gespawnt wird, deren Outputs mergen, entscheiden, wann gestoppt wird. Tun sie aber. Jede Haiku-Tier-Achse, die ich getestet habe, hat eine 100%-Pass-Zelle mit ministral-3b oder ministral-8b, die mindestens eine Grössenordnung günstiger ist als Anthropic. Das bricht die Intuition „kleine Modelle sind für triviale Aufgaben", mit der ich reingegangen bin.
Befund 2 — mistral-large-2512 zieht mit Sonnet auf Tool-Chains gleich, bei ~80% weniger Kosten. Aber nur, wenn man den Snapshot pinnt.
mistral-large-2512 (gepinnt) auf Tool-Chain-mit-Backtrack: 100% Pass, $0.00035 warm. Sonnet 4.6 dito: ~$0.002, 100% Pass. Selbe Aufgabe, ~5× günstiger.
Die Falle, in die ich gelaufen bin: mistral-large-latest auf derselben Achse kam auf 80% Pass bei ähnlichen Kosten. Der gepinnte Snapshot ist besser als latest. Ich habe es dreimal nachgefahren, um sicher zu sein. Das Muster wiederholt sich auf sechs von acht Achsen — gepinnt schlägt latest um 10 bis 30 Prozentpunkte. Mistral schiebt Fixes erst nach -latest, stabilisiert sie dann in den nächsten Pin. Konsequenz: Das floating Tag ist — entgegen Intuition — der unstabilere Pfad für Produktion. Pinnt eure Modell-Versionen. (Ich mache es jetzt auch.)
Befund 3 — Jede Anthropic-Tier hat einen 100%-Pass-Mistral-Ersatz.
Ich bin reingegangen mit der Erwartung, dass Mistral auf mindestens einer Achse verliert — Long-Context-Reasoning, Multi-Step-Planung, Code-Review, irgendwas. Hat es nicht. Über alle acht produktiv-geformten Achsen (Multi-Turn-Loops, Sub-Agent-Orchestrierung, Memory-Grounded-Reasoning, Workflow-Komposition, Long-Context-mit-Tools, Tool-Chain-mit-Backtrack, Cron-Cold-Start, Real-World-Strategie) sitzt auf jeder eine Mistral-Zelle auf dem Pareto-Frontier bei 100% Pass.
Das heisst nicht, dass Mistral besser ist als Anthropic. Es heisst, dass der „Anthropic-Qualität bei Mistral-Kosten"-Trade jetzt strukturell verfügbar ist, nicht mehr aspirational. Für eine EU-resident self-hosted Agent-Runtime (was lynox ist) ist genau das das ganze Spiel.
Befund 4 — magistral ist Opus-Niveau in Qualität und disqualifizierend in Latenz.
magistral-medium-2509 zieht mit Opus 4.7 auf der Multi-Step-Reasoning-Stufe gleich (100% Pass, ~5.9× günstiger). Schöne Zahl. Dann habe ich auf die Wallclock geschaut: p50 16–30s über die meisten Tasks, aber auf Workflow-Komposition speziell klettert p50 auf ~48s und p95 auf ~66s.
mistral-large-2512 auf den gleichen Achsen: p50 7–12s. Magistral zahlt einen ~6× Latenz-Aufschlag für die Reasoning-Kette — das sind Reasoning-Tokens, die das Modell zwingend emittiert, und auf die wartet man, ob sie helfen oder nicht. Für Batch- und Analyse-Pfade, wo der User Latenz akzeptiert, ist magistral die richtige Wahl. Für einen Chat-UX-Agent, der N Tool-Calls sequenziell fährt, ist es ein No-Go. Cost-per-Task und Latency-per-Task sind nicht dieselbe Achse.
Befund 5 — Mistral shipped natives Prompt-Caching mitten im Bench. Cache-Hit sprang von 0% auf 50–94% in derselben Woche.
Als ich die Matrix Anfang Mai gestartet habe, lagen die Mistral-Cache-Hit-Raten in unserem Adapter bei 0%. Anthropic meldete 79–96% auf derselben Prompt-Form. Ich hatte das Bauchgefühl, dass das „der strukturelle Mistral-Nachteil" sei, den die Kosten-Zahlen nie schlagen würden.
Mitte Mai shipped Mistral prompt_cache_key auf dem Chat-Completion-Endpunkt — 90% Rabatt auf gecachte Input-Tokens. Wir haben es in PR #565 dieselbe Woche verdrahtet, am 2026-05-24 re-benchmarked, und Cache-Hit sprang auf 50–94% über die Achsen (96% Spitze auf Workflow-Komposition mit ministral-3b). Die Kosten-Zahlen oben sind nach dem Fix. Davor hätte Befund 2 gelautet: „Sonnet ist 2× günstiger als Mistral nach Caching." Provider-Features bewegen sich schnell genug, dass jeder Bench, der älter als zwei Monate ist, Fiktion ist.
Was das bedeutet, wenn du einen Agenten in Produktion fährst
Das Cost-Narrativ hat sich gedreht. Für die meisten agent-geformten Workloads — Sub-Agenten, Tool-Chains, Workflows, Cron-Tasks — ist Mistral mit gepinnten Snapshots und gesetztem prompt_cache_key strukturell günstiger als Anthropic bei gleicher Pass-Rate. Anthropic gewinnt noch bei Prompt-Caching-Reife (cache_control-Marker, tiefere Docs) und beim Latenz-Tail auf reasoning-lastigen Pfaden. Beide Provider haben einen Platz. Die spannende Schicht ist die Routing-Entscheidung, nicht die Provider-Wahl.
Für lynox konkret: Deshalb shippen wir Mistral als First-Class-Native-Provider, nicht als Fallback. EU-Residency + Cost-Floor + Anthropic-Pass-Raten ist eine echte Kombination, keine Marketing-Zeile. Die Matrix ist im Open-Source-Repo. Wenn ein Mistral-Snapshot regrediert, seht ihr das im nächsten Run, bevor wir es sehen.
Vorbehalte, die ich euch schulde
- Die Anthropic-Baselines in diesem Essay stammen aus dem 16. Mai Matrix-Run auf
main@390a625. Der 24. Mai Re-Run (dessen JSON ich veröffentliche) ist Mistral-only, weil das die Oberfläche war, die ich für HN gehärtet habe. Anthropic-Zahlen sind cross-Run stabil genug, dass ich sie zitiere — aber wenn ihr das aktuelle JSON öffnet, seht ihr „Mistral-only", deshalb. magistral-small-2509(gepinnt) ist 0% Pass auf KG-Extraktion und Memory-Extraktion.-latestist 100% auf beidem. Habe keine befriedigende Erklärung. Pin mit Vorsicht.codestralist 0% Pass auf Code-Review. Das „Code" im Namen ist irreführend für Bug-Finding-Workloads.- Tokenizer-Ratio liegt bei Mistral auf englischer Tech-Prosa bei ~6 chars/token, nicht den 4, die du aus GPT/Claude-Arbeit verinnerlicht hast. Wer Prompts mit OpenAI-Mathematik sizet, verschwendet ein Drittel des Kontextfensters.
Rohdaten
- Set-Bench v4 JSON, 24. Mai Matrix-Run
- Frühere Matrix-Runs mit Anthropic-Baselines (16. Mai,
main@390a625) - Harness-Source
- Szenario-Definitionen
Wenn ihr eine Zahl findet, die ich falsch habe, macht ein Issue auf. Wenn ihr mit anderen Szenarien neu bencht, schickt mir das JSON.
Wenn das euer Schlag Nerdigkeit ist: lynox ist hier — die Agent-Runtime, die diese Benchmarks beschreiben.