Which AI Model?

AI evaluation & provider portabilityKI-Vergleich & Anbieterwechsel

A cheaper AI model can handle one job well and struggle with another. I built a way to compare models on the same tasks, choose for quality and cost, and check a switch before accepting it.Ein günstigeres KI-Modell kann eine Aufgabe gut lösen und bei einer anderen scheitern. Ich habe ein System gebaut, das Modelle an denselben Aufgaben vergleicht, Qualität und Kosten abwägt und einen Wechsel vor der Freigabe prüft.

Which model should each tool use?Welches Modell passt zu welcher Aufgabe?

  • Python
  • LangChain / LangGraph
  • RAG
  • PostgreSQL
  • EvaluationEvaluierung

Recorded benchmark, not a live AI service. Public data. Independent project.Aufgezeichneter Vergleich, kein Live-KI-Dienst. Öffentliche Daten. Unabhängiges Projekt. Read the limitsGrenzen des Vergleichs

7models comparedModelle verglichen
1,106items per model in the original runAufgaben je Modell im ursprünglichen Lauf
5tools on one shared foundationTools auf einer gemeinsamen Basis
$1.94original benchmark spendKosten des ursprünglichen Vergleichs

Original run:Ursprünglicher Lauf: . Vehicle complaints use a separate run. Reply items overlap with routing items.Fahrzeugbeschwerden nutzen einen separaten Lauf. Antwort- und Zuordnungsaufgaben überschneiden sich.

Choose for the jobNach Aufgabe auswählen

Keep the quality you need. Then choose what matters most: cost, score or speed.Die nötige Qualität beibehalten. Dann nach Kosten, Testwert oder Tempo auswählen.

Quality comes firstQualität kommt zuerst

Only models within three points of the best score qualify. The buttons compare those models.Nur Modelle mit höchstens drei Punkten Abstand zum besten Wert kommen infrage. Die Schaltflächen vergleichen diese Auswahl.

Set the minimum test score you accept. Then choose the lowest cost, highest score or fastest model that meets it.Wählen Sie den Mindest-Testwert. Danach das günstigste, beste oder schnellste Modell auswählen, das ihn erreicht.

PriorityPriorität
Minimum scoreMindestwert

Route a messageNachricht zuordnen

Which of 77 banking intents is this message?Welches Bankanliegen beschreibt die Nachricht?

The same choice for every priority. The other models score below the cutoff.Bei jeder Priorität dieselbe Wahl. Die anderen Modelle liegen unter dem Mindestwert.

CheapestGeringste Kosten

Gemini 4 Argon

Only qualifying modelEinziges passendes Modell
Test scoreTestwert macro-F1
88.9%
USD / 1,000 itemsUSD / 1.000 Aufgaben
$1.57
Median timeMedian der Laufzeit
2,788 ms
Most accurateHöchster Wert

Gemini 4 Argon

Only qualifying modelEinziges passendes Modell
Test scoreTestwert macro-F1
88.9%
USD / 1,000 itemsUSD / 1.000 Aufgaben
$1.57
Median timeMedian der Laufzeit
2,788 ms
FastestAm schnellsten

Gemini 4 Argon

Only qualifying modelEinziges passendes Modell
Test scoreTestwert macro-F1
88.9%
USD / 1,000 itemsUSD / 1.000 Aufgaben
$1.57
Median timeMedian der Laufzeit
2,788 ms

Check the scopeZuständigkeit prüfen

Is this message in scope for the support team, or out of scope?Ist das Supportteam für diese Nachricht zuständig?

CheapestGeringste Kosten

GPT 6 Luna

Test scoreTestwert out-of-scope F1
71.0%
USD / 1,000 itemsUSD / 1.000 Aufgaben
$0.02
Median timeMedian der Laufzeit
1,222 ms
Most accurateHöchster Wert

Claude Haiku 5.5

Test scoreTestwert out-of-scope F1
73.1%
USD / 1,000 itemsUSD / 1.000 Aufgaben
$0.04
Median timeMedian der Laufzeit
968 ms
FastestAm schnellsten

DeepSeek V4.1 Flash

Test scoreTestwert out-of-scope F1
71.2%
USD / 1,000 itemsUSD / 1.000 Aufgaben
$0.06
Median timeMedian der Laufzeit
826 ms

Draft a structured replyAntwort entwerfen

Return a valid intent, urgency and reply as one typed object.Anliegen, Dringlichkeit und Antwort im festgelegten Format ausgeben.

The same choice for every priority. The other models score below the cutoff.Bei jeder Priorität dieselbe Wahl. Die anderen Modelle liegen unter dem Mindestwert.

CheapestGeringste Kosten

Gemini 4 Argon

Only qualifying modelEinziges passendes Modell
Test scoreTestwert intent-correct
79.3%
USD / 1,000 itemsUSD / 1.000 Aufgaben
$1.26
Median timeMedian der Laufzeit
6,810 ms
Most accurateHöchster Wert

Gemini 4 Argon

Only qualifying modelEinziges passendes Modell
Test scoreTestwert intent-correct
79.3%
USD / 1,000 itemsUSD / 1.000 Aufgaben
$1.26
Median timeMedian der Laufzeit
6,810 ms
FastestAm schnellsten

Gemini 4 Argon

Only qualifying modelEinziges passendes Modell
Test scoreTestwert intent-correct
79.3%
USD / 1,000 itemsUSD / 1.000 Aufgaben
$1.26
Median timeMedian der Laufzeit
6,810 ms

Answer from the guideIm Leitfaden nachschlagen

Answer a question about this stack and cite the passages used.Eine Frage zum Projekt mit passenden Quellen beantworten.

CheapestGeringste Kosten

GPT 6 Luna

Test scoreTestwert retrieval hit@4
100.0%
USD / 1,000 itemsUSD / 1.000 Aufgaben
$0.15
Median timeMedian der Laufzeit
1,928 ms
Most accurateHöchster Wert

GPT 6 Luna

Test scoreTestwert retrieval hit@4
100.0%
USD / 1,000 itemsUSD / 1.000 Aufgaben
$0.15
Median timeMedian der Laufzeit
1,928 ms
FastestAm schnellsten

Claude Haiku 5.5

Test scoreTestwert retrieval hit@4
100.0%
USD / 1,000 itemsUSD / 1.000 Aufgaben
$0.27
Median timeMedian der Laufzeit
1,558 ms

Each task uses a different test. Compare scores within the same task.Jede Aufgabe nutzt einen anderen Test. Werte nur innerhalb derselben Aufgabe vergleichen.

Your limit changes this comparison only. The saved benchmark recommendations still use their original three-point rule.Ihr Mindestwert ändert nur diesen Vergleich. Die gespeicherten Benchmark-Empfehlungen verwenden weiterhin ihre ursprüngliche Drei-Punkte-Regel.

What do the scores mean?Was bedeuten die Testwerte?
Route a messageNachricht zuordnen
How well it sorts messages into the correct category. Macro-F1 balances false matches and missed matches, giving each category equal weight. It is not the percentage of correct messages.Wie gut Nachrichten der richtigen Kategorie zugeordnet werden. Makro-F1 berücksichtigt falsche und übersehene Zuordnungen und gewichtet jede Kategorie gleich. Der Wert ist nicht der Anteil richtiger Nachrichten.
Check the scopeZuständigkeit prüfen
How well it detects messages outside the support team’s remit. F1 balances wrongly rejecting relevant messages and missing unrelated ones.Wie gut Nachrichten außerhalb der Zuständigkeit erkannt werden. F1 berücksichtigt fälschlich abgewiesene passende Nachrichten und übersehene unpassende Nachrichten.
Draft a replyAntwort entwerfen
The share of valid-format replies that identify the correct customer intent. This does not rate the writing or helpfulness of the reply. Invalid formats are tracked separately.Anteil der Antworten im gültigen Format, die das richtige Kundenanliegen erkennen. Textqualität und Hilfreichkeit werden damit nicht bewertet. Ungültige Formate werden separat erfasst.
Answer from the guideIm Leitfaden nachschlagen
How often a relevant guide passage appears among the first four search results. This measures retrieval, not whether the written answer is correct.Wie oft ein passender Leitfadenabschnitt unter den ersten vier Suchtreffern steht. Das misst die Suche, nicht die Richtigkeit der formulierten Antwort.
All recorded task resultsAlle aufgezeichneten Ergebnisse

Route a messageNachricht zuordnen

macro-F1
ModelModellScoreWertUSD / 1,000USD / 1.000Median timeMedian der Laufzeit
Gemini 4 Argon88.9%$1.572,788 ms
Muse Spark 1.3 Contributor81.8%$0.081,881 ms
Claude Haiku 5.580.9%$0.151,256 ms
GPT 6 Luna79.6%$0.061,387 ms
GLM-5.3-Flash78.8%$0.031,376 ms
DeepSeek V4.1 Flash78.7%$0.091,118 ms
MiMo-V2.6-Flash78.0%$0.033,265 ms

Check the scopeZuständigkeit prüfen

out-of-scope F1
ModelModellScoreWertUSD / 1,000USD / 1.000Median timeMedian der Laufzeit
Claude Haiku 5.573.1%$0.04968 ms
MiMo-V2.6-Flash72.7%$0.022,616 ms
Muse Spark 1.3 Contributor72.2%$0.041,874 ms
GLM-5.3-Flash72.0%$0.021,680 ms
DeepSeek V4.1 Flash71.2%$0.06826 ms
GPT 6 Luna71.0%$0.021,222 ms
Gemini 4 Argon70.5%$0.444,206 ms

Draft a structured replyAntwort entwerfen

intent-correct
ModelModellScoreWertUSD / 1,000USD / 1.000Median timeMedian der Laufzeit
Gemini 4 Argon79.3%$1.266,810 ms
Claude Haiku 5.569.1%$0.222,666 ms
DeepSeek V4.1 Flash58.6%$0.375,689 ms
Muse Spark 1.3 Contributor37.4%$0.094,999 ms
GLM-5.3-Flash26.1%$0.083,976 ms
MiMo-V2.6-Flash20.5%$0.129,289 ms
GPT 6 Luna1.3%$0.041,771 ms

Answer from the guideIm Leitfaden nachschlagen

retrieval hit@4
ModelModellScoreWertUSD / 1,000USD / 1.000Median timeMedian der Laufzeit
Claude Haiku 5.5100.0%$0.271,558 ms
DeepSeek V4.1 Flash100.0%$0.301,718 ms
Gemini 4 Argon100.0%$3.484,852 ms
GLM-5.3-Flash100.0%$0.202,774 ms
GPT 6 Luna100.0%$0.151,928 ms
MiMo-V2.6-Flash100.0%$0.206,298 ms
Muse Spark 1.3 Contributor100.0%$0.163,237 ms

Does it need an AI model?Braucht es ein KI-Modell?

A simple word-based classifier costs nothing per prediction. Its routing score was close to the best AI result. An AI upgrade needs to justify that difference.Ein einfacher wortbasierter Klassifikator verursacht keine Kosten je Vorhersage. Bei der Zuordnung lag er nah am besten KI-Ergebnis. Ein KI-Einsatz muss diesen Unterschied rechtfertigen.

Simple method · routing F1Einfaches Verfahren · Zuordnungs-F1
85.9%
Best AI · routing F1Beste KI · Zuordnungs-F1
88.9%

The answers, side by sideDie Antworten im Vergleich

The message from the overview, sent to every model. Categories are the original English outputs.Die Nachricht aus dem Überblick, an jedes Modell gesendet. Die Kategorien sind die englischen Originalausgaben.

ModelModellCategory returnedAusgegebene KategorieTimeZeitUSDMatchTreffer
Claude Haiku 5.5card payment fee charged2,284 ms$0.00025✓
DeepSeek V4.1 Flashcard payment fee charged3,231 ms$0.00025✓
Gemini 4 Argoncard payment fee charged2,793 ms$0.0016✓
GLM-5.3-Flashextra charge on statement1,568 ms$0.000030✗
GPT 6 Lunaextra charge on statement1,682 ms$0.000064✗
MiMo-V2.6-Flashcard payment fee charged7,453 ms$0.000057✓
Muse Spark 1.3 Contributorextra charge on statement2,482 ms$0.000081✗

Time and cost are for this single call. Expected category:Zeit und Kosten gelten für diesen einzelnen Aufruf. Erwartete Kategorie: card payment fee charged. Public message fromÖffentliche Nachricht aus Banking77 (PolyAI), CC-BY-4.0.

Bring a different taskEine andere Aufgabe testen

A task definition and labelled data extend the comparison to a new job. I tested that with public vehicle complaints.Eine Aufgabenbeschreibung und Daten mit bekannten Antworten erweitern den Vergleich auf neue Aufgaben. Getestet mit öffentlichen Fahrzeugbeschwerden.

Sort complaints. Flag safety reports.Beschwerden ordnen. Risiken markieren.

Identify the electrical component in a complaint and flag reports of a crash, fire or injury.Das elektrische Bauteil einer Beschwerde zuordnen und Berichte über Unfälle, Feuer oder Verletzungen markieren.

CheapestGünstig genug
Muse Spark 1.3 Contributor
Most accurateHöchster Wert
Gemini 4 Argon
FastestSchnell genug
GLM-5.3-Flash

90.0% minimum safety recall: the share of safety-related reports caught. The simple keyword baseline fell below this floor.Mindest-Erkennungsrate: der Anteil erfasster sicherheitsrelevanter Berichte. Das einfache Stichwortverfahren lag darunter.

Complaint results and uncertaintyBeschwerde-Ergebnisse und Unsicherheit

Macro-F1 balances performance across component groups. The interval describes uncertainty. Coverage is the share of complaints the model classified; unclear answers count as wrong.Makro-F1 gewichtet die Leistung über die Bauteilgruppen. Das Intervall beschreibt die Unsicherheit. Abdeckung ist der Anteil zugeordneter Beschwerden; unklare Antworten zählen als falsch.

Vehicle complaint taskAufgabe Fahrzeugbeschwerden
ModelModellMacro-F1 with intervalMakro-F1 mit IntervallCoverageAbdeckungRight when answeredRichtig bei ZuordnungSafety recallRisiko-ErkennungsrateUSD / 1,000USD / 1.000MedianMedian
Gemini 4 Argon0.7616 (95% CI 0.7307 to 0.7899)87.8%95.7%98.7%$1.312,624 ms
Muse Spark 1.3 Contributor0.7425 (95% CI 0.7131 to 0.7680)85.5%95.7%97.5%$0.092,261 ms
MiMo-V2.6-Flash0.7393 (95% CI 0.7121 to 0.7647)87.7%93.7%98.3%$0.104,016 ms
GLM-5.3-Flash0.7388 (95% CI 0.7104 to 0.7637)88.7%92.9%96.7%$0.091,012 ms
DeepSeek V4.1 Flash0.7210 (95% CI 0.6914 to 0.7476)84.0%94.8%98.3%$0.13—
GPT 6 Luna0.6922 (95% CI 0.6644 to 0.7190)83.7%91.8%92.5%$0.06—
Claude Haiku 5.50.6819 (95% CI 0.6510 to 0.7102)80.7%92.8%97.5%$0.16—
TF-IDF + keyword rule (baseline)0.6918 (95% CI 0.6405 to 0.7328)100.0%81.3%88.3%$0—

NHTSA ODI complaints. U.S. government work, public domain.NHTSA-ODI-Beschwerden. Werk der US-Regierung, gemeinfrei.

Download the task card (English)Aufgabenkarte herunterladen (Englisch)

What would that volume cost?Was kostet dieses Volumen?

Monthly model cost for the complaint task, scaled linearly from the recording. No discounts or hosting costs included.Monatliche Modellkosten für die Beschwerdeaufgabe, linear aus der Aufzeichnung hochgerechnet. Ohne Rabatte oder Hostingkosten.

Change the volume to recalculate.Volumen ändern, um neu zu berechnen.

Estimated monthly model cost in USDGeschätzte monatliche Modellkosten in USD
ModelModell1,00010,000100,000At your volumeBei Ihrem Volumen
Gemini 4 Argon$1.31$13.07$130.65—
Muse Spark 1.3 Contributor$0.09$0.89$8.89—
MiMo-V2.6-Flash$0.10$0.96$9.62—
GLM-5.3-Flash$0.09$0.89$8.92—
DeepSeek V4.1 Flash$0.13$1.28$12.77—
GPT 6 Luna$0.06$0.60$6.00—
Claude Haiku 5.5$0.16$1.56$15.64—

Price table dated 29 October 2026. Historical costs, not current quotes.Preistabelle vom 29. Oktober 2026. Historische Kosten, keine aktuellen Preisangebote. Fixed volumes remain readable without JavaScript.Feste Volumen bleiben ohne JavaScript lesbar.

One foundation. Checked changes.Eine Basis. Geprüfte Wechsel.

The comparison is useful when the tools can switch models. I moved provider-specific wiring into a shared layer.Der Vergleich hilft, wenn die Tools das Modell wechseln können. Ich habe die anbieterabhängige Anbindung in einer gemeinsamen Schicht gebündelt.

Different toolsVerschiedene ToolsRoute, check scope, draft, look up and call toolsZuordnen, Zuständigkeit prüfen, entwerfen, nachschlagen und Tools aufrufen
Shared model layerGemeinsame ModellschichtTyped answers, costs, traces and replayStrukturierte Antworten, Kosten, Protokolle und Wiedergabe
Chosen modelGewähltes ModellOne gateway in the recorded runEin Gateway im aufgezeichneten Lauf

Four earlier tools were staged for this project. The tool-calling agent was adapted from earlier code. The scanner finds visible call sites, not calls hidden behind shared helpers.Vier frühere Tools wurden für dieses Projekt nachgebaut. Der Agent mit Toolaufrufen stammt aus früherem Code. Der Scanner erkennt sichtbare Aufrufstellen, nicht Aufrufe hinter gemeinsamen Hilfsfunktionen.

Cheap is not enough to passGünstig allein reicht nicht

The switch check blocks larger quality losses and malformed answers. It refuses comparisons with incompatible settings.Die Wechselprüfung blockiert größere Qualitätsverluste und fehlerhafte Antwortformate. Sie verweigert Vergleiche mit unvereinbaren Einstellungen.

Maximum quality drop:Maximaler Qualitätsverlust: 2.0 points. The original benchmark shortlist allows three points.Punkte. Die ursprüngliche Benchmark-Vorauswahl erlaubt drei Punkte.

BlockedBlockiert

GLM-5.3-Flash

Routing score would fall byDer Zuordnungswert würde um 10.13 points againstPunkte sinken gegenüber Gemini 4 Argon.

BlockedBlockiert

GPT 6 Luna

Routing score would fall byDer Zuordnungswert würde um 9.30 points againstPunkte sinken gegenüber Gemini 4 Argon.

Passed on the complaint taskBei der Beschwerdeaufgabe bestanden

Muse Spark 1.3 Contributor

Group score drop:Verlust beim Gruppenwert: 1.92 points. Safety recall:Punkte. Risiko-Erkennungsrate: 97.5%.

Code change and re-checkCodeänderung und erneute Prüfung

Before: provider-specific requestVorher: anbieterabhängiger Aufruf

def route_message(
    message: str,
    *,
    transport: httpx.BaseTransport | None = None,
    base_url: str | None = None,
    model: str | None = None,
    api_key: str | None = None,
    timeout_s: float = 30.0,
) -> LegacyResult:
    """Send one raw chat-completions request and return the unparsed reply."""
    started = time.perf_counter()
    key = api_key if api_key is not None else env("ROUTER_KEY")
    if not key:
        return LegacyResult("", [], elapsed_ms(started), "ROUTER_KEY is not set")
    url = (base_url or env("ROUTER_BASE_URL", "http://localhost:8080/v1") or "").rstrip("/")
    body = {
        "model": model or env("ROUTER_MODEL", "router-small"),
        "messages": [{"role": "user", "content": _PROMPT.format(message=message)}],
        "temperature": 0,
    }
    headers = {"Authorization": f"Bearer {key}", "Content-Type": "application/json"}
    try:
        with httpx.Client(transport=transport, timeout=timeout_s, follow_redirects=False) as client:
            response = client.post(f"{url}/chat/completions", headers=headers, json=body)
            if response.status_code >= 400:
                return LegacyResult(
                    "", [], elapsed_ms(started), f"API request failed (HTTP {response.status_code})"
                )
            data: Any = response.json()
    except (httpx.HTTPError, ValueError) as exc:
        return LegacyResult("", [], elapsed_ms(started), error_text(exc, key))
    try:
        content = data["choices"][0]["message"]["content"] or ""
        if not isinstance(content, str):
            raise TypeError("assistant content is not a string")
    except (KeyError, IndexError, TypeError) as exc:
        return LegacyResult("", [], elapsed_ms(started), error_text(exc))
    return LegacyResult(content, [], elapsed_ms(started), None)

After: shared typed interfaceNachher: gemeinsame typisierte Schnittstelle

def route_message(
    message: str,
    model: BaseChatModel,
    *,
    call: TraceCall | None = None,
) -> RouteOut | None:
    """One structured call; ``None`` means the answer did not match ``RouteOut``."""
    answer = ask(
        model,
        RouteOut,
        prompt_messages(SYSTEM_PROMPT, message),
        task=TASK,
        tool=TOOL,
        prompt_version=PROMPT_VERSION,
        call=call,
    )
    return answer.parsed if answer.schema_valid else None

The foundation adds validation and traceability; fewer lines of code is not the claim.Die Basis ergänzt Validierung und Nachvollziehbarkeit; weniger Codezeilen sind nicht das Ziel.

When the same model changesWenn sich dasselbe Modell ändert

A fresh GPT 6 Luna scope run changed the temperature from the provider default to zero. The comparison was refused until that setting change was explicitly accepted, then passed with a warning.Ein neuer Zuständigkeitslauf mit GPT 6 Luna änderte die Temperatur vom Anbieterstandard auf null. Der Vergleich wurde verweigert, bis die Änderung ausdrücklich bestätigt wurde. Danach bestand er mit einer Warnung.

REFUSED → PASS · 71.0% → 71.1%.

wam recheck run \
  --models config/models.lock.toml \
  --tasks T-SCOPE \
  --against results/runs/live \
  --candidate gpt-6-luna \
  --run-id recheck-gpt-6-luna
Guide assistant’s recorded answersAufgezeichnete Antworten des Leitfaden-Assistenten

The assistant looks up and cites passages from this project’s guide. These are original English recordings, not live answers. Retrieval success does not establish answer correctness.Der Assistent sucht und zitiert Abschnitte im Projektleitfaden. Dies sind englische Originalaufzeichnungen, keine Live-Antworten. Erfolgreiche Suche belegt nicht die Richtigkeit der Antwort.

Where should I keep my provider API key, and how do I point the project configuration at it without pasting the secret anywhere?

Recorded answer byAufgezeichnete Antwort von GPT 6 Luna

Keep the provider API key in the repository-root .env file, which is gitignored. In config/providers.toml, reference it with an env:NAME pointer (for example, env:OPENAI_API_KEY) rather than pasting the key. The project resolves that named environment variable when needed.

Cited passages (original English)Zitierte Abschnitte (englisches Original)
connect-provider · passage 0

Connect a provider with BYOK and wam doctor Every model call in this project goes through a Connection: a small record that says where to call, which wire protocol to speak, and which environment variable holds the key. You bring your own key (BYOK). Keys live only in the gitignored .env file at the repository root and are referenced from configuration as env:NAME pointers, never pasted into code, logs, traces, or recordings.

connect-provider · passage 2

Presets and the credential rule The gateway preset used for the benchmark is exposed as four connections sharing one key, one per API format, beside the standard openai, anthropic, gemini, openrouter, local-openai-compatible, and custom presets. resolve_credential reads the named variable at call time and returns the key value, or None for keyless connections. Only the credentials module and the live benchmark runner may touch the environment for a secret;

What are the four connection protocols in this project, and which provider-side API does each one speak?

Recorded answer byAufgezeichnete Antwort von GPT 6 Luna

The four connection protocols and the provider-side APIs they speak are: OPENAI_COMPATIBLE — Chat Completions endpoints; OPENAI_RESPONSES — the Responses API; ANTHROPIC — the Messages API; and GEMINI — the Google Generative Language API.

Cited passages (original English)Zitierte Abschnitte (englisches Original)
connect-provider · passage 1

How a connection is described A connection has an id, a provider label, a protocol, a base URL, and a credential reference. The protocol is one of four fixed values: OPENAI_COMPATIBLE for Chat Completions endpoints, OPENAI_RESPONSES for the Responses API, ANTHROPIC for the Messages API, and GEMINI for the Google Generative Language API. The base URL never carries credentials; a URL with an @ before its first path slash is rejected by the contracts.

What information does the doctor command show for every connection, and which result values can it report?

Recorded answer byAufgezeichnete Antwort von GPT 6 Luna

For each configured connection, wam doctor shows its id, protocol, outcome, and latency in milliseconds. It can report these outcome values: OK, CONFIG_INVALID, CREDENTIAL_MISSING, CREDENTIAL_REJECTED, ENDPOINT_UNREACHABLE, RATE_LIMITED, PROTOCOL_UNSUPPORTED, or UNKNOWN.

Cited passages (original English)Zitierte Abschnitte (englisches Original)
connect-provider · passage 3

Checking what works with wam doctor Run wam doctor before spending anything. It probes every configured connection and prints one row per connection with its id, protocol, outcome, and latency in milliseconds. The outcome vocabulary is fixed: OK, CONFIG_INVALID, CREDENTIAL_MISSING, CREDENTIAL_REJECTED, ENDPOINT_UNREACHABLE, RATE_LIMITED, PROTOCOL_UNSUPPORTED, or UNKNOWN. Scripts and the runner switch on these values without guessing, and the detail field is scrubbed of headers and key material first.

Evidence, with limitsErgebnisse mit Grenzen

A different task, prompt, language or price needs a new check. This is a dated benchmark, not a production deployment.Andere Aufgaben, Prompts, Sprachen oder Preise erfordern eine neue Prüfung. Dies ist ein datierter Vergleich, kein Produktivsystem.

One gateway, mixed model tiersEin Gateway, verschiedene Modellklassen

All models were reached through OpenCode Go in their lab’s API format. Direct provider endpoints were mock-tested only. Gemini 4 Argon is a flagship; the others are smaller models.Alle Modelle wurden über OpenCode Go im API-Format ihres Anbieters aufgerufen. Direkte Endpunkte wurden nur mit simulierten Antworten getestet. Gemini 4 Argon ist ein Spitzenmodell; die anderen sind kleinere Modelle.

Public data and fixed samplesÖffentliche Daten, feste Stichproben

Models may already know the public test messages. Reply and routing samples overlap. The vehicle sample overrepresents safety cases; the flagship used a reduced sample. Absolute scores may be optimistic.Modelle könnten die öffentlichen Testnachrichten kennen. Antwort- und Zuordnungsstichprobe überschneiden sich. Die Fahrzeugstichprobe enthält mehr Risikofälle; das Spitzenmodell nutzte eine kleinere Stichprobe. Absolute Werte können zu optimistisch sein.

Historical cost, not a price promiseHistorische Kosten, kein Preisversprechen

Gateway measurements supplied cost where available; otherwise the stored token price table was used. Prices can change. The original run costSoweit verfügbar wurden Gateway-Kosten gemessen, sonst die gespeicherte Token-Preistabelle genutzt. Preise können sich ändern. Der ursprüngliche Lauf kostete $1.94; the complaint extension was separate.die Beschwerdeerweiterung lief separat.

Settings and scoring matterEinstellungen und Bewertung zählen

The original run used provider-default temperatures rather than the planned zero. That deviation remains disclosed. Scoring is deterministic; no model judged another. The guide’s search score does not measure answer quality.Der ursprüngliche Lauf nutzte Anbietertemperaturen statt der geplanten null. Diese Abweichung bleibt offengelegt. Die Bewertung ist deterministisch; kein Modell bewertete ein anderes. Der Suchwert des Leitfadens misst nicht die Antwortqualität.

Take the evidence with youErgebnisse zum Mitnehmen

English source documents from this project. This page works offline and makes no model calls.Englische Quelldokumente aus diesem Projekt. Die Seite funktioniert offline und ruft keine Modelle auf.

Task cards and source filesAufgabenkarten und Quelldateien

Each value in the page data names its source file.Jeder Wert in den Seitendaten nennt seine Quelldatei. Download page data (JSON)Seitendaten herunterladen (JSON)

  • results/runs/live/manifest.json
  • results/runs/live/cells.json
  • results/runs/live/calls.jsonl
  • results/runs/live/budget.json
  • results/recommendations.json
  • results/baseline/metrics.json
  • results/inventory/before.json
  • results/inventory/after.json
  • results/gate_demo.json
  • results/gate_refused_demo.json
  • results/runs/live-v1.1/manifest.json
  • results/runs/live-v1.1/cells.json
  • results/baseline/defect.json
  • results/gate_demo_defect.json
  • results/runs/recheck-demo/recheck.json
  • results/runs/recheck-demo-accepted/recheck.json
  • results/cards/T-ROUTE.json
  • results/cards/T-SCOPE.json
  • results/cards/T-REPLY.json
  • results/cards/T-DOCS.json
  • results/cards/defect.json