56 Commits
Author SHA1 Message Date
eltonandClaude Opus 5 ae0c4ca4a6 Korrektur: Qwen MIT Denkstufe holt den Skill selbst -- Einbacken fuer buzz unnoetig
Andreas fragte nach ("bist du dir sicher? so ganz sicher?" / "versuch sonst mal
qwen mit reasoning") -- zu Recht. Ich hatte die Aussage "Qwen laedt den Skill
nicht" aus der Doku uebernommen, statt sie zu messen.

Gemessen 2026-09-07 an agent-buzz auf auto/mass (qwen36:35b, enable_thinking):
Er ruft context_get_context von selbst und nennt seinen Arbeitsweg korrekt
(Runbooks und geschlossene Tickets zuerst, Wissen sichern, Routinen woertlich).

Der alte Befund (klara 0/9, live/live#1171) galt fuer 42i/marvin-core:none --
Qwen OHNE Denkstufe. Der Unterschied ist die Denkstufe, nicht das Modell.
AGENT_SKILL_EINBACKEN bleibt als Notnagel im Entrypoint, ist fuer buzz aber
nicht gesetzt.

Belastbarkeit: ein Lauf, kein Dutzend. Fuer eine Regel reicht das nicht -- fuer
die Entscheidung, den Vorspann nicht vorsorglich zu verdoppeln, schon.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 17:41:09 +02:00
eltonandClaude Opus 5 6c3d73584d buzz auf das lokale Qwen (role/ops -> auto/mass), Skill fuer ihn eingebacken
Andreas 2026-09-07: "lass buzz auf 42i/mass laufen. Der macht nicht so viel,
das muss ein qwen koennen." Buzz ist der einzige ops-Agent, deshalb bleibt die
Rolle der richtige Ort statt eines Modellnamens im Container.

Dazu gehoert zwingend AGENT_SKILL_EINBACKEN=1 fuer buzz: Qwen holt den
Persona-Skill nicht von selbst (klara 0/9 Laeufe, live/live#1171) -- genau der
Fall, fuer den der Schalter heute gebaut wurde. Der Vorspann steigt fuer ihn
also wieder, dafuer kostet sein Modell nichts.

Ausserdem: start-buzz-web.sh haengt den Werkzeug-Hinweis nach seinem
`cat > AGENTS.md` wieder an. Buzz war der einzige Container ohne den Hinweis --
sein warmer Web-Server ueberschreibt die Datei, die der Entrypoint schreibt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 17:37:47 +02:00
eltonandClaude Opus 5 0ecf90e152 Altnamen wirksam machen und die XO-Runde drosseln
ALTNAMEN (Schadensbehebung): Bei der Umstellung heute Mittag starben fuenf
laufende Teamlaeufe, weil sie ihren Modellnamen aus der Session mittrugen und
der Router ihn nicht mehr kannte (Aktennotiz des XO an 42i/intern#1251). Das
Feld "altnamen" war seit jeher deklariert und validiert, aber im Server NIE
angewendet. Jetzt uebersetzt der Router alte Namen VOR ACL-Pruefung und
Aufloesung; 20 Eintraege fuer die 2608-Reihe und die praefixlosen LiteLLM-Namen.

DROSSELUNG der Runde (Andreas: Verbrauch senken). Gemessen am 07.09.: 32 Runden,
75-220 Zuege je Runde, 82k Kontext je Zug, 208 Mio. Token an einem Tag.
- Ereignis-Paket 4 -> 2: der Aufwand waechst quadratisch mit der Zuglaenge,
  zwei Runden mit je 110 Zuegen kosten rund ein Viertel einer mit 220. Keine
  Zeitgrenze, nichts wird abgebrochen (Andreas 2026-09-03).
- Prompt: die Rueckgabeformate von tool.sh stehen jetzt als Tabelle im Prompt --
  mehrere Zuege gingen dafuer drauf, sie zu erraten. Dazu die Regel, Kommandos
  zu buendeln (214 der 1359 Bash-Aufrufe waren reine cd) und keine breiten
  Verzeichnis-Dumps (groesstes Ergebnis des Tages: ein ls -la mit 14k Zeichen).

Nicht umgesetzt: die Vermutung, der XO fuehre delegierbare Arbeit selbst aus.
Die Messung widerlegt sie -- die Bash-Aufrufe sind ueberwiegend tool.sh-Aufrufe
(Tickets lesen, kommentieren, CI pruefen), also seine eigentliche Aufgabe.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 14:05:35 +02:00
eltonandClaude Opus 5 32c54439c8 llmrouter: Messwerkzeug fuer Telefon-Latenz (Erstbyte mit Inkas Zuschnitt)
Anbieterstatistiken messen den Erstbyte ueber alle Nutzer und Prompts. Am
Telefon zaehlt die Zeit bis zum ersten gesprochenen Wort, mit unserem grossen
Systemprompt und ueber mehrere Zuege -- ein Modell mit Zwangs-Reasoning verliert
dort Sekunden, die in keiner Statistik stehen (42i/intern#1252).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 13:35:30 +02:00
elton 77c29266c9 llmrouter-README: Namensraum auto/ und die Rollen-Vorbelegung nachgezogen 2026-09-07 13:24:24 +02:00
eltonandClaude Opus 5 1513ca63d6 key-acls aufgeraeumt: nightjob und persona-inka-mx entfernt
nightjob hatte kein Token, keinen Konsumenten und keine Nutzung in den letzten
14 Tagen -- der Name stand nur noch in den ACL-Dateien. persona-inka-mx war ein
LiteLLM-key_alias; beide Inka-Tokens (Shim und Telefon-Front-End) laufen im
Router unter persona-inka. Der Alias in OpenBao (agents/inka/litellm) ist
mitkorrigiert.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 13:23:50 +02:00
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