Transkript-Hygiene (Provider-Fixups)
Dieses Dokument beschreibt provider-spezifische Fixes, die auf Transkripte vor einem Run angewendet werden (Aufbau des Modellkontexts). Das sind In-Memory-Anpassungen zur Erfuellung strikter Provider-Anforderungen. Diese Hygieneschritte schreiben das gespeicherte JSONL-Transkript auf Disk nicht um; ein separater Session-Datei-Reparaturdurchlauf kann jedoch fehlerhafte JSONL-Dateien umschreiben, indem er ungueltige Zeilen entfernt, bevor die Session geladen wird.
Wo das laeuft
Alle Transkript-Hygiene ist im eingebetteten Runner zentralisiert:
- Policy-Auswahl:
src/agents/transcript-policy.ts - Sanitisierungs-/Reparaturanwendung:
sanitizeSessionHistoryinsrc/agents/pi-embedded-runner/google.ts
Globale Regel: Bild-Sanitisierung
Bild-Payloads werden immer sanitisiert um provider-seitige Ablehnungen wegen Groessenlimits zu verhindern (Herunterskalierung/Rekomprimierung uebergroesser base64-Bilder).
Globale Regel: fehlerhafte Tool-Calls
Assistenten-Tool-Call-Bloecke denen sowohl input als auch arguments fehlen, werden vor dem Modellkontext-Aufbau entfernt.
Globale Regel: Inter-Session-Input-Provenienz
Wenn ein Agent einen Prompt in eine andere Session via sessions_send sendet, wird der erstellte User-Turn mit message.provenance.kind = "inter_session" persistiert.
Provider-Matrix (aktuelles Verhalten)
- OpenAI / OpenAI Codex: Nur Bild-Sanitisierung. Orphaned-Reasoning-Signaturen entfernen.
- Google (Gemini): Tool-Call-ID-Sanitisierung, Tool-Result-Pairing-Reparatur, Turn-Validierung, Google-Turn-Ordering-Fixup.
- Anthropic / Minimax: Tool-Result-Pairing-Reparatur, Turn-Validierung (konsekutive User-Turns zusammenfuehren).
- Mistral: Tool-Call-ID-Sanitisierung (strict9).
- OpenRouter Gemini: Thought-Signature-Cleanup.
- Alles andere: Nur Bild-Sanitisierung.