Cost routing — ce LLM, unde

Wednesday e orchestrator pe oricare LLM (Claude, Codex — egali ca putere prin Phase 334 doctrine). Dar costul e diferit. Cost routing e doctrina care decide ce LLM rulează ce, ca să nu te trezești cu jumate de sesiune Claude consumată în background fără să tastezi un caracter.

Ce este

Hard rule fundamentală: Claude pentru foreground serios; modelul configurat în Hermes pentru background.

  • Foreground = operator tastează activ. Decizii, sinteză, code work, Harborlight (anxiety lane), governance, code review. Claude e ok aici.
  • Background = ceva rulează fără tu să tastezi. Cron, launchd daemon, scheduled wakeups, Agent sub-agent fire-and-forget, periodic reviews, classification, ingest pipelines, recurring reminders. NICIODATĂ Claude.

Codificată în CLAUDE.md § Background AI Cost Discipline (Phase 338+19) + feedback_no_background_claude.md în memorie Cowork (persistent cross-session).

Cum funcționează — cele 3 lane-uri

Lane 1 — Claude foreground

Când: operatorul tastează în Claude Code interactive, Claude Code dashboard, Telegram-via-Hermes DOAR cu override explicit de model.

Caracteristici:

  • Cel mai scump
  • Cel mai bun pentru decizii nuanțate, sinteză multi-source, governance
  • Context 1M tokens
  • Token budget limitat pe sesiune

Folosit pentru: discuții serioase, deliberări, code review pe domain-uri sensibile, council debates, redactare doctrine.

Lane 2 — Hermes-configured model (background bulk)

Când: Telegram bridge default, IRC eggdrop conversational, hermes_dispatch.py delegations din scripturi, bulk code/drafting/research/transformations, cron jobs, launchd daemons, scheduled tasks, periodic ingest, classification/sorting pipelines, anything fire-and-forget.

Caracteristici:

  • Rutează prin modelul setat în ~/.hermes/config.yaml — callerii nu pasează niciun argument de model, deci un swap în Hermes propagă automat peste tot
  • 200-tool ceiling — asuswrt MCP dezactivat în Hermes ca să rămână sub
  • Gateway local pe Mac: http://127.0.0.1:8642/v1/chat/completions

Folosit pentru: Telegram replies (TOT traficul Telegram), IRC chat, delegări scriptate, transformări mari de text/code, TOATE cron-urile (daily evolution, daemon health summary, vault organization audit), scheduled reminders, batch tagging, ingest poller.

Lane 3 — Ollama T1 (trivial local)

Când: task trivial (3-line edit, simple yes/no clasification), offline-ok.

Caracteristici:

  • Local, zero cost
  • Calitate doar pentru trivial work
  • Fallback când conectivitatea pică

Cost Escalation Ladder (operator doctrine)

Folosește cel mai ieftin tier care livrează ≥95% din calitate:

T1 Ollama (trivial, local)
   ↓ dacă insuficient
T2 modelul configurat în Hermes (bulk + complex reasoning)
   ↓ dacă insuficient
T3 Claude (DOAR pentru decizii serioase sau MCP connectors specifice)

Decizia e automată — Wednesday nu te întreabă, doar dacă vede ceva ambiguu surfacea ladder-ul.

De ce contează

Două motive cu istorie:

1. “Sa nu patim ca data trecuta sa mi se consume jumate de sesiune fara sa tastez nimic.” Operator quote, după ce într-o fază anterioară un Claude sub-agent fire-and-forget pe loop a ars jumate de token budget peste noapte. Hard rule-ul “no background Claude” vine direct din asta.

2. Tokens Claude sunt scarce + rezervate pentru foreground. Modelul Hermes coperă lane-ul cheap-bulk. Dacă pui Claude pe Telegram default, Telegram (care primește 50-100 mesaje/zi) îți consumă tot budget-ul de zoom de operator real.

Cum interacționez cu el

Decizia e automată. Tu nu rutezi nimic manual. Wednesday face routing-ul înainte de fiecare unitate substanțială de muncă.

Ce poți face:

  • Override explicit: dacă vrei Telegram via Claude pentru un mesaj specific, semnalează în mesaj (“rule: claude” sau echivalent — depinde de bridge config).
  • Verifică ce rulează unde: cat ~/.hermes/config.yaml (model defaults Hermes), cat ~/.mcp.json (model defaults MCP), cat _infra/scripts/morning_briefing.py (sample cron script — vezi că folosește modelul Hermes, nu Claude).
  • Flag legacy. Dacă descoperi un cron / daemon vechi care încă apelează Claude (pre-rule), spune-mi — îl repointez la modelul Hermes.

Ce NU să faci:

  • Nu adăuga claude-* în cron crontab fără confirmare explicită.
  • Nu scrie un launchd plist care apelează Claude CLI pentru task automat.
  • Nu lăsa un Agent sub-agent în loop infinit cu model=claude.

Limite / gotchas

  • 200-tool ceiling. Dacă adaugi MCP-uri noi în Hermes, verifică hermes_tool_count.py — peste 200 → gateway-ul pică. Strategia curentă: asuswrt MCP dezactivat în Hermes (rămâne în ~/.mcp.json pentru Claude Code direct).
  • WhatsApp a fost retras (2026-05-29). Lane-ul claude-whatsapp Opus a fost dropat (fără memorie Honcho, cost Opus, redundant cu Telegram). Mobile-Wednesday- cu-memorie = Telegram (modelul Hermes). Heavy mobile = aplicația Claude.
  • Telegram allowlist phone↔LID. Pe WhatsApp, păstrează BOTH phone AND LID în allowlist până când phone↔LID mapping persistence e verificat (lesson-18).
  • Background = modelul Hermes, nu hardcodat. Background nu mai are model fix — urmează ~/.hermes/config.yaml. Schimbi modelul Hermes → tot background-ul îl urmează automat.

Unde sunt documentate

  • CLAUDE.md la vault root — § Background AI Cost Discipline (Phase 338+19)
  • _infra/core/wednesday/wednesday.md § Execution Delegation
  • _infra/config/universal_runtime_doctrine.md § Cost Routing
  • _infra/scripts/hermes_dispatch.py — delegation path (model-agnostic)
  • ~/.hermes/config.yaml — Hermes gateway model defaults
  • ~/.mcp.json — MCP-level model defaults
  • Memory feedback_no_background_claude.md (Cowork)