Kontext-Kompression und MoA
Verantwortung
Zwei Dinge: (1) Wenn die Historie sich der Kontextobergrenze des Providers nähert, werden alte Nachrichten zusammengefasst/abgeschnitten, um Budget freizugeben (context_compressor); (2) optional aggregiert der Mixture-of-Agents-Pfad die Ausgaben mehrerer Modelle (moa_loop). Beide werden innerhalb der Hauptschleife aufgerufen und sind die Stützen, die «lange Konversationen am Laufen halten» und «Antworten stabiler machen».
Schlüsseldateien
context_compressor-Modul— Kompressions-Haupteinstieg (ca. 3700 Zeilen)Budget-Schätzung:190-242—_estimate_msg_budget_tokens/_serialized_length_for_budgetNachrichten-Bereinigung:136-155—_fresh_compaction_message_copy/_strip_persistence_markersExtraktion von Werkzeugaufruf und Pfad-Erwähnung:337-360—_extract_tool_call_name_and_args/_collect_path_mentionsInhalts-Beschneidung:472-515—_append_text_to_content/_strip_image_parts_from_partsmoa_loop— Mixture-of-Agents-AggregationIterationBudget— Kompressions-Refund und Budget-Kopplung
Datenfluss
- Die Hauptschleife prüft jeden Turn, ob Kompression nötig ist (siehe
_should_run_preflight_estimate:213). - Wird die Schwelle getroffen, ruft der context_compressor auf:
- Token-Budget pro Nachricht schätzen (
agent/context_compressor.py:419) - Bereinigte Kopien alter Nachrichten erstellen (
agent/context_compressor.py:136), Persistenz-Marker abstreifen (agent/context_compressor.py:155) - Werkzeugaufruf-Namen/-Argumente und Pfad-Erwähnungen erhalten, damit die Zusammenfassung keine Schlüsseloperationen verliert (
agent/context_compressor.py:337) - Bild-Teile und überlange Inhalte beschneiden (
agent/context_compressor.py:472)
- Token-Budget pro Nachricht schätzen (
- Der durch Kompression «neu geschaffene» Raum wird über
iteration_budget.refund()(agent/iteration_budget.py) teilweise zurückgegeben, sodass die Hauptschleife zusätzliche Turns drehen darf. - Wenn MoA aktiviert ist, ruft
moa_loopin diesem Turn parallel mehrere Provider auf und aggregiert sie als Verstärkung oder Schiedsspruch der Hauptantwort.
Zusammenfassung
Der Kompressor ist die Lebenslinie langer Konversationen. Der zentrale Trade-off ist «was wegwerfen, was behalten» – Werkzeugaufrufe und Pfad-Erwähnungen werden bevorzugt erhalten, weil ihr Verlust in folgenden Turns zu «Amnesie» führt. MoA ist eine orthogonale, ein-/ausschaltbare Verstärkung. Beide verändern die Struktur der Hauptschleife nicht, sondern klinken sich nur zum richtigen Zeitpunkt ein.