Atriumstatus

master9da7fa5

← all systems

LLM providers

Operationalnormal

OpenRouter, Anthropic or Google — whichever writes the grader's narrative.

checked 3m agoOpenRouter statusAnthropic status

Checks

OpenRouter reachable

The default narrative provider is unavailable.

100%

24h

100%

30d

GET https://openrouter.ai/api/v1/modelsexpects 200last 200 · 142ms · 3m ago

What it is

One completion per scan turns the numbers into prose. GRADER_AI_PROVIDER picks the provider at request time and each one needs its own key:

  • openrouter — the default, model from GRADER_AI_MODEL (falls back to openrouter/free)
  • google — gemini-2.0-flash
  • anthropic — claude-haiku-4-5

The report is not blocked on it: if the completion fails, the narrative comes back null and the scored report renders without prose.

The anthropic path is a trap today

ANTHROPIC_API_KEY is read at lib/report-agent.ts:156 but exists in no .env and no .env.example. Switching GRADER_AI_PROVIDER=anthropic therefore throws at model init, the error is swallowed, and every report quietly loses its narrative. The failure looks like a content problem, not a config problem.

Model choice is a cost lever

GRADER_AI_MODEL is only consulted on the OpenRouter path, and its default is a free model. Any paid model set there multiplies directly by scan volume, which is unbounded — the rate limiter is per-process and the Google spend guard is off.

When it breaks

Symptom

Reports render but the narrative is missing

Check

GRADER_AI_PROVIDER, then the matching key, then the provider's own status page.

Fix

Set the key or switch back to openrouter. Nothing else in a scan depends on this.

Breaks when this does

Incident history

No incidents recorded for this system.