Commit Graph
30 Commits
Author SHA1 Message Date
eltonandClaude Opus 5 7fea5c82c4 Router: Namensraum auto/ mit acht Profilen auf drei Achsen (42i/intern#1252)
Der Preisfinder waehlte bisher ueber EINE Zahl. Ein Modell kann generalistisch
gut aussehen und agentisch durchfallen -- gemini-3.8-flash hat Coding 76,3 und
Agentic 41,2 und traegt den Werkzeug-Rundlauf nicht.

- openrouter-auswahl: billigsterUeberSchwelle reicht minCoding/minAgentic an
  klasseFiltern durch (nahm es bereits entgegen, wurde nur nie gefuettert)
- config: art "schwelle" hat jetzt index, coding und agentic, jede optional;
  "fest" kennt ausweich
- resolver: Beschreibung nennt die geforderten Achsen
- server: ein festes Ziel weicht bei Upstream-Ausfall EINMAL auf den
  konfigurierten Alias aus. Ohne das haengt mit dem lokalen Knoten jede
  Titelzeile jedes Agenten, weil auto/mass ueberall als small_model haengt.
- acht Profile, Rollen darauf umgehaengt, 42i/marvin-2609:* bleiben als Namen

Aufgeloest (ohne Last-Probe, alle Ziele laufen bereits ueber bestehende
Aliasse): coding:junior und leader:junior -> glm-5.3-flash, coding:senior ->
grok-4.6:high, leader:senior -> glm-5.3:max (15,66 statt 26 gewichtet -- die
Regel findet etwas Billigeres als die Schaetzung im Ticket), mass:fast -> ling.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 13:20:10 +02:00
eltonandClaude Opus 5 a95c525a2c LiteLLM-Abschaltung: Fallback raus, alter Port 4000 zeigt auf den Router
- config.json: fallback und der litellm-Upstream entfernt. Unbekannte Namen
  sind ab jetzt ein Fehler statt einer stillen Weiterleitung -- mit totem
  LiteLLM waere daraus ein Timeout ohne Hinweis geworden, und mit Caddy auf
  :4000 sogar eine Schleife auf den Router selbst.
- Caddyfile: :4000 -> localhost:4010. Der Port war ueberall hart verdrahtet
  (Container-Images, spark-desktop, aeltere Skripte); ihn umzubiegen ist
  sicherer, als jeden Aufrufer einzeln zu finden.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 13:06:38 +02:00
eltonandClaude Opus 5 f5eae167f4 Container: Persona fragt ihre Rolle, small_model auf das lokale Qwen, Port 4010
- entrypoint: Zuordnung Persona -> Rolle (spark engineer, buzz ops, jessie
  assistant, klara service); AGENT_MODEL bleibt als Ueberschreibung
- small_model getrennt von model (AGENT_SMALL_MODEL, Default lokales Qwen) --
  Titel und Zusammenfassungen muessen nichts kosten (42i/intern#1252)
- baseURL 4000 -> 4010: die Container sprachen bisher LiteLLM direkt an, am
  Router und am Caddy vorbei
- key-acls: core:none fuer spark/buzz/klara, sonst laeuft small_model in 401
- compose: AGENT_MODEL bei klara entfernt, die Rolle kommt aus dem Entrypoint

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 13:04:38 +02:00
eltonandClaude Opus 5 a023deb1be Leiter komplett auf Rollen: architect guenstig, alle opencode-Agenten, logbuch weg von Claude
Andreas 2026-09-07: das Max-Abo laeuft aus, es wird direkt umgestellt statt am
Mittwoch. Damit steht KEINE Rolle mehr auf der teuren Stufe.

- llmrouter: architect von :high auf :medium (= allround:junior)
- opencode.json: baseURL auf 4010 (Router statt LiteLLM), alle zehn Agenten auf
  role/*, model und small_model ebenso; Modelldeklarationen sind jetzt die
  Rollen statt der 2608-Namen
- engines.json: xo-chat und logbuch von engine=claude auf opencode; masse von
  42i/marvin-2608-mass:medium (kein Router-Gegenstueck) auf :low
- logbuch-eintrag.sh: opencode-Zweig, Entwurf aus dem JSONL-Strom; der
  claude-Zweig bleibt als Rueckweg erhalten

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 13:03:49 +02:00
eltonandClaude Opus 5 087dd91ad7 xo: von Claude Code aufs opencode-Gespann, Modell role/xo statt Max-Abo
Der XO war der letzte grosse Posten ausserhalb des Routers: engine=claude mit
claude-opus-5 ueber das Abo, damit ohne Kostenzeile und ohne Metering. Er laeuft
jetzt wie die Teams auf opencode und fragt die Rolle role/xo.

role/xo zeigt dazu auf 42i/marvin-2609:medium (= leader:junior nach
42i/intern#1252, heute glm-5.3-flash) statt :high. Ausdruecklich als Versuch
(Andreas): reicht das Urteil nicht, ist Hochstufen eine Zeile in config.json.
Der Gegenpol bleibt notiert - der Hinweis vom 2026-08-20 (Fall t1678) steht.

Kontextgrenze der Modelldeklaration bewusst auf 262144, die garantierte
Mindestschwelle der medium-Stufe.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 12:56:57 +02:00
eltonandClaude Opus 5 da47c1b3ed router: teamleader und lead auf die guenstige Stufe (Andreas 2026-09-07)
Beide standen auf 42i/marvin-2609:high (= grok-4.6 fuer 26 $/1M gewichtet).
Nach 42i/intern#1252 entspricht das leader:junior; damit bleibt nur xo auf der
teuren Stufe, architect ueber allround:senior.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 12:50:49 +02:00
eltonandClaude Opus 5 707a60bc0d Clients auf Router-Namen ziehen: matrix-MCP und Paperless-Verschlagwortung
Beide riefen ueber Port 4000 (LiteLLM) und mit LiteLLM-eigenen Modellnamen
(marvin-tts, marvin-stt, standard, 42i/marvin-2608-core:none). Der Router kennt
diese Namen nicht und reicht sie heute still an LiteLLM durch - mit dessen
Abschaltung waeren sie tot (42i/intern#1252).

- matrix-MCP: TTS/STT auf llm.lan:4010 und 42i/marvin-tts bzw. 42i/marvin-stt
- Paperless: llm.lan:4010, Modell 42i/marvin-2609-core:none statt "standard"
  bzw. dem 2608-Namen; nach #1252 gehoert diese Massenarbeit auf auto/mass
- key-acls: persona-jessie darf das lokale Qwen (fuer genau diese Laeufe)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 12:45:12 +02:00
eltonandClaude Opus 5 c0c0cda907 gateway: Caddy aus dem LiteLLM-Stack loesen, eigener oci-Dienst
Caddy terminiert TLS fuer llm.lan und zeigt auf den llmrouter (:4010). Solange
er im llmlite-Compose steckte, haette das Abschalten von LiteLLM ihn mitgenommen
- der Router laeuft dann zwar weiter, ist aber von aussen nicht erreichbar.

Neue Quelle llmrouter/caddy/{compose.yml,Caddyfile}; agents-pull spiegelt sie
nach /srv/caddy und startet den Dienst bei Aenderung neu.

Vorarbeit zur Abschaltung von LiteLLM (42i/intern#1252).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 12:40:50 +02:00
eltonandClaude Fable 5.1 a8ef31fe20 llmrouter: role/inka zurück auf Luna; Qwen-Tests (Cloud, lokal) dokumentiert
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 10:02:50 +02:00
eltonandClaude Fable 5.1 6ea2601d1e llmrouter: 42i/inka-qwen (Qwen 3.8 27B, reasoning none, Provider AkashML/Parasail fest), role/inka darauf
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 10:02:50 +02:00
eltonandClaude Fable 5.1 106eb633c5 llmrouter: role/inka -> openrouter/qwen/qwen3.8-27b (Test, Andreas 2026-09-06); Inka-Keys dürfen die Rolle
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 10:02:50 +02:00
eltonandClaude Fable 5.1 eb1dcdd28e llmrouter: marvin-stt-turbo -> mistralai/voxtral-small-24b-2507-stt über OpenRouter
STT-Vergleich 2026-09-06 (Studio + simulierte Telefonstrecke) dokumentiert;
Whisper verliert am Telefon Zahlenstellen, Voxtral Small nicht (Andreas).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 08:28:19 +02:00
eltonandClaude Fable 5.1 bf5d3a179c llmrouter: marvin-tts-turbo Stimme ara (Andreas, Hörtest 2026-09-06)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 08:28:19 +02:00
eltonandClaude Fable 5.1 3014d1cadf llmrouter: marvin-tts-turbo -> x-ai/grok-voice-tts-1.0 (Stimme eve), Hörtest-Befunde dokumentiert
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 08:28:19 +02:00
eltonandClaude Fable 5.1 dfc85a4829 llmrouter: Sprechtext-Normalisierung vor TTS — Postleitzahl als Ziffernfolge mit Pause
"Bergstraße 7, 83646 Bad Tölz" -> "Bergstraße 7; Postleitzahl 8 3 6 4 6, Bad Tölz"
(Andreas 2026-09-06, Variante 4 nach Hörtest mit Fish S2 Pro). Betraege, Daten,
Einheiten und Bindestrich-Nummern bleiben unberuehrt; 10 Tests.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 08:28:19 +02:00
eltonandClaude Opus 5 d07bef5e10 llmrouter: kira-tts als deizo/kira-tts aufnehmen
Upstream kira-tts (10.6.42.111:8002, KIRA_TTS_KEY) und Alias deizo/kira-tts,
dazu das Recht in allen 12 Schluesseln ergaenzt, die deizo/kira-stt schon
hatten.

Anders als LiteLLM reicht der Router den Audio-Stream durch: Nicht-JSON-
Antworten gehen als Body weiter, statt ausgepuffert zu werden. Gemessen ueber
den Router: erster Ton nach 22 ms gestreamt gegen 5,70 s ungestreamt. Der
LiteLLM-Weg puffert und kommt auf 9,17 s (bekannter Upstream-Bug
BerriAI/litellm#14891).

Inka nutzt darueber jetzt STT und TTS; das LLM blieb vorerst auf dem alten
Weg (Tool-Schema-Grammatik, s. 42i/intern#1201).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-06 08:28:19 +02:00
eltonandClaude Fable 5.1 dcdfb1bc9e llmrouter README: die vier Wege ins Log (stats, zuordnung, jsonl/changes/sqlite, Journal)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 16:23:26 +02:00
eltonandClaude Fable 5.1 91e68d9ea9 llmrouter: Claude Code/Desktop — nackte claude-IDs -> alt/anthropic/<id>[:effort]
- anthropicModus (alt|openrouter), Normalisierung der IDs (Datum, [1m], Punkte),
  Client-Effort aus output_config.effort als Stufe, HEAD /api/hello -> 200
- Auswahl: nicht gemessene Stufe faellt auf die naechste gemessene darunter
  (sonst darueber, sonst Modellzahl) -- Sonnet 5 hat nur max/none
- /models: alt/ nur bei bestimmbarer Klasse; opencode-normalize nimmt
  openrouter/+alt/ genau dann (GLM 5.3 Flash war weggefallen)
- README: Abschnitt Claude Code und Claude Desktop
Verifiziert per claude -p mit claude-sonnet-5, claude-opus-5, claude-haiku-4-5-20251001.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 16:23:26 +02:00
eltonandClaude Fable 5.1 0d971b81dc llmrouter: Anthropic-Messages-Pfad (/messages, count_tokens) für Claude Code
Weiterleitung an OpenRouters Messages-Endpunkt (x-api-key, anthropic-version,
anthropic-beta), Effort als reasoning.effort, Usage in Anthropic-Form gelesen
(auch im Stream aus message_start/message_delta). Nur openrouter-Ziele; lokale
llama-server sprechen kein Messages-Format. Verifiziert: claude -p über
http://llm.lan:4010 mit alt/anthropic/claude-sonnet-5 -> glm-5.3-flash.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 16:23:26 +02:00
eltonandClaude Fable 5.1 9d0bd7e1a3 llmrouter: TTS/STT/Embedding/free als 42i/marvin-*
Alte Namen ohne Präfix laufen über die Durchreiche bei LiteLLM weiter (Andreas 2026-09-05).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 09:47:22 +02:00