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>
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>
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>
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>
- 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>
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>
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>
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>
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>
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>
- 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>
- openrouter/<id>[:effort] 1:1, alt/<id>[:effort] günstigste Alternative auf
Abruf (ohne Last-Probe, im Takt erneuert), role/<name> aus config.rollen
- Klasse: Intelligence, Coding, Agentic je >= 95 % der Referenz (relativ statt
3 Punkte), Kontext >= 90 %, billiger; Kandidaten auch ohne OpenRouter-Index,
wenn AA Stufen kennt (OpenRouter führt Intelligence nur für 53 Modelle)
- ACL-Muster mit *, /models mit allen Konto-Modellen je Namensraum und Stufe
- Rollen aus der LiteLLM-Zeit übernommen (Führung high, Rest medium)
Andreas 2026-09-05.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Caddy zeigt llm.lan künftig auf den Router; alles Unbekannte (2608, role/*)
geht unverändert mit dem Client-Key an LiteLLM :4000. Umstellung je Agent =
Modellname, kein base_url-Wechsel (Andreas 2026-09-05). altnamen entfällt,
bis LiteLLM abgeschaltet wird.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>