You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
2026-07-22 feilet tre proxy-kjøringer på rad på måter som var vanskelige å se og umulige å attribuere:
Et event ga en 0 bytes logg med exit 0 — resultatlinja ble en tom «ok», broen postet ingenting, og ingen varsel ble gitt (oppgaven «kokte bort»).
To kjøringer hallusinerte fullføring («jeg har implementert …») uten ett eneste verktøykall — og postet påstanden som issue-kommentar.
Samtidig byttes modeller hyppig i eksperimentering (proxy: gemma4 → ornith; router: 26b-a4b → e4b → …). I dag stemples ikke modell på noe ledd, så historikken kan ikke svare på «hvilken modell ga dette svaret?» — og modelleksperimenter blir anekdoter i stedet for data.
Foreslått løsning
Ikke noe sporingssystem — stemple metadata på linjene som allerede flyter, og gjør stille tomkjøringer til feil.
Agentene stempler resultatlinjene (results.jsonl): "model", "endpoint" (kun host — aldri nøkler/tokens), "duration_s", "log_bytes". Pi-entrypointet har alt i env (LLM_MODEL_ID/PI_MODEL, LLM_BASE_URL); Claude Code-agentene instrueres i CLAUDE.md-protokollen (modell fra ANTHROPIC_MODEL). Stemples ved kjøretid — poenget er at historikken forblir riktig når modellen byttes midt på dagen.
Huben logger kjeden: integrations ser alle hopp (event inn → router → kø → resultat → delegering → levering) og har korrelasjonsnøkkelen (event-id via payload.origin). Én logglinje per hopp med faste felter (event= agent= model= intent= duration=) slik at docker logs … | grep <event-id> gir hele kjeden. (Maskinlesbar state/trace.jsonl kan komme senere — grep-bare logger først.)
Tomkjørings-vakt i entrypointet: tom logg eller manglende ===AGENT-RESULT===-blokk ⇒ status: "error" med forklarende reply (f.eks. «agenten produserte ingen output — sjekk modell/endepunkt»), aldri en tom ok-linje. Broen poster dermed en synlig feil i stedet for stillhet.
Læringsløkka: debrief-events og retro-læringer tar med modell-id, slik at syntesen kan skille modellene fra hverandre over tid.
Bevisst utelatt: OpenTelemetry/spans — overkill for tre containere og to JSONL-filer.
Steg
Entrypoint: metadata på resultatlinja + tomkjørings-vakt.
CLAUDE.md-protokollene (senior + junior): samme felter i resultatlinja.
Integrations: router_meta på eventet; hopp-logging med faste felter; ta med model i delegerings-/debrief-events.
README/doc: jq/grep-oppskrifter for å følge et event ende-til-ende.
Bakgrunn
2026-07-22 feilet tre proxy-kjøringer på rad på måter som var vanskelige å se og umulige å attribuere:
Samtidig byttes modeller hyppig i eksperimentering (proxy: gemma4 → ornith; router: 26b-a4b → e4b → …). I dag stemples ikke modell på noe ledd, så historikken kan ikke svare på «hvilken modell ga dette svaret?» — og modelleksperimenter blir anekdoter i stedet for data.
Foreslått løsning
Ikke noe sporingssystem — stemple metadata på linjene som allerede flyter, og gjør stille tomkjøringer til feil.
results.jsonl):"model","endpoint"(kun host — aldri nøkler/tokens),"duration_s","log_bytes". Pi-entrypointet har alt i env (LLM_MODEL_ID/PI_MODEL,LLM_BASE_URL); Claude Code-agentene instrueres i CLAUDE.md-protokollen (modell fraANTHROPIC_MODEL). Stemples ved kjøretid — poenget er at historikken forblir riktig når modellen byttes midt på dagen.router_meta: {model, latency_ms}på eventet ved siden avclassification(utfyller tuning-loggingen i Router-drift: liten klassifiseringsmodell, romsligere timeout og tuning-logging #66).payload.origin). Én logglinje per hopp med faste felter (event= agent= model= intent= duration=) slik atdocker logs … | grep <event-id>gir hele kjeden. (Maskinlesbarstate/trace.jsonlkan komme senere — grep-bare logger først.)===AGENT-RESULT===-blokk ⇒status: "error"med forklarendereply(f.eks. «agenten produserte ingen output — sjekk modell/endepunkt»), aldri en tom ok-linje. Broen poster dermed en synlig feil i stedet for stillhet.Bevisst utelatt: OpenTelemetry/spans — overkill for tre containere og to JSONL-filer.
Steg
router_metapå eventet; hopp-logging med faste felter; ta medmodeli delegerings-/debrief-events.Berørte filer
agents/proxy-agent/docker/entrypoint.sh— metadata + tomkjørings-vaktagents/local-cc-coding-agent/CLAUDE.md,agents/local-cc-jr-developer/CLAUDE.md— resultatkontraktintegrations/src/router/router.ts—router_metaintegrations/src/agent/queue.ts— hopp-logging, modell i debriefintegrations/src/agent/types.ts,integrations/README.md,doc/Akseptansekriterier
model,endpoint(host),duration_soglog_bytes; ingen hemmeligheter i noen av feltene.status: "error"og en synlig feilmelding til opphavet — aldri stille suksess.