Ein KI-Koordinator verteilt Aufgaben an mehrere Sub-Agenten, doch was passiert, wenn seine Sitzung plötzlich endet? Ohne ein zuverlässiges System zur Wiederherstellung des Zustands läuft die Pipeline Gefahr, Aufgaben doppelt auszuführen, teilweise Ergebnisse zu verlieren oder sogar die Ausführungsreihenfolge zu verändern. Dieses Problem, das als Koordinator-Resume-Integritätsfehler bekannt ist, führt in der Praxis häufig zu inkonsistenten Ergebnissen – selbst wenn kein technischer Fehler vorliegt.
Warum Koordinatoren den Faden verlieren
Der Zustand eines Koordinators – also welche Aufgaben bereits erledigt sind, welche noch laufen und welche noch anstehen – wird meist ausschließlich im Arbeitsspeicher gehalten. Wenn die Sitzung abbricht, etwa durch Erreichen der Kontextgrenze, einen Cron-Job-Zeitüberschreitung oder einen Systemneustart, geht dieser Zustand unwiederbringlich verloren. Viele Entwickler gehen fälschlicherweise davon aus, dass Agenten ihre Aufgaben innerhalb einer einzigen Sitzung abschließen können. Doch in der Produktion gelten völlig andere Voraussetzungen:
- Agenten laufen oft zeitgesteuert und nicht nur einmalig.
- Nachgelagerte Prozesse können länger dauern als die maximale Ausführungsdauer des Koordinators.
- Systemabbrüche treten unvorhersehbar auf.
Drei typische Fehler, die in der Praxis auftreten
Ohne ein zentrales Protokoll der ausgeführten Aufgaben kommt es zu wiederkehrenden Problemen:
1. Mehrfachausführungen unnötiger Tasks
Ein Koordinator startet neu und hat keine Kenntnis über bereits abgeschlossene Aufgaben. Er ordnet an, dass alle Sub-Agenten ihre Arbeit erneut verrichten – selbst wenn etwa ein Agent bereits 80 Prozent seiner Aufgabe erledigt hat.
Die Folgen:
- Aufgaben überschreiben sich gegenseitig, wenn sie in dasselbe Ausgabeverzeichnis schreiben.
- Oder es entstehen Duplikate, zwischen denen nicht mehr unterschieden werden kann, welches Ergebnis das richtige ist.
2. Unsichtbare Teilabschlüsse
Ein Sub-Agent hat eine Aufgabe zu 40 Prozent fertig gestellt, als der Koordinator abstürzt. Der nächste Koordinator startet den Agenten von vorne – die bereits geleistete Arbeit wird ignoriert. Das ist besonders kritisch, wenn der Agent teure API-Aufrufe oder komplexe Berechnungen durchgeführt hat.
3. Verstöße gegen die Ausführungsreihenfolge
Ein Koordinator ist dafür verantwortlich, dass Task A vor Task B und Task B vor Task C ausgeführt wird. Wenn der Koordinator neu startet, beginnt er alle Tasks gleichzeitig. Task B könnte nun auf Daten zugreifen, die Task A noch nicht vollständig geschrieben hat – was zu fehlerhaften Ergebnissen führt.
Warum herkömmliche Ansätze versagen
Häufig versuchen Entwickler, den Zustand des Koordinators mithilfe von Dateien oder Logs zu rekonstruieren. Doch beide Methoden sind unzuverlässig:
Überprüfung von Ausgabedateien:
Typischerweise prüft der Koordinator, ob eine Ausgabedatei existiert, um zu erkennen, ob eine Aufgabe abgeschlossen ist. Doch das scheitert, wenn:
- Eine Datei unvollständig geschrieben wurde und daher ungültig ist.
- Eine vorherige, unterbrochene Ausführung eine Datei hinterlassen hat, die nicht zum aktuellen Kontext gehört.
Lesen von Sub-Agent-Logs:
Die Logs eines Sub-Agenten zeigen zwar, was innerhalb seiner Sitzung passiert ist. Sie enthalten jedoch keine Informationen darüber, welche Aufgaben der Koordinator bereits an ihn delegiert hat oder ob die Ausführung für die aktuelle Pipeline-Runde gedacht war.
Vertrauen auf persistente Kontexte:
Kontexte sind flüchtig und werden nicht über Sitzungsgrenzen hinweg gespeichert. Alles, was der Koordinator weiß – außer in einer expliziten Datei festgehalten – ist nach einem Neustart verloren.
Die Lösung: Ein zentrales Dispatch-Logbuch
Um Koordinator-Resume-Integritätsfehler zu vermeiden, muss der Zustand des Koordinators explizit persistent gemacht werden. Das gelingt mit einem zentralen Dispatch-Logbuch, einer strukturierten Datei, die alle wichtigen Informationen über den Pipeline-Status enthält.
Das Logbuch wird in einem festgelegten Verzeichnis abgelegt, das nach der Pipeline-ID benannt ist. Es enthält unter anderem:
- Eine eindeutige Pipeline-ID.
- Den Startzeitpunkt des Koordinators.
- Einen Zeitstempel des letzten Herzschlags (für langlaufende Pipelines).
- Eine Liste aller Tasks mit ihrem Status (PENDING, IN_PROGRESS, COMPLETE), Zeitstempeln und Ausgabepfaden.
So funktioniert die Wiederaufnahme
Beim Start des Koordinators wird zunächst geprüft, ob ein Logbuch existiert. Wenn ja, liest der Koordinator den Status der Tasks und setzt die Pipeline fort, ohne bereits abgeschlossene Aufgaben erneut zu starten.
Für jede neue Aufgabe wird vor der Ausführung ein Eintrag im Logbuch erstellt. Sobald ein Task abgeschlossen ist, wird sein Status und der Pfad zur Ausgabedatei aktualisiert. So bleibt der Pipeline-Status konsistent – selbst bei wiederholten Neustarts.
Herzschlag für langlaufende Pipelines
Bei Pipelines, die über die maximale Laufzeit eines Koordinators hinausgehen, wird regelmäßig ein Herzschlag in das Logbuch geschrieben. Ein neuer Koordinator kann so erkennen, ob der vorherige noch aktiv ist oder ob die Pipeline tatsächlich neu gestartet werden muss.
Fazit: Zuverlässige Koordination erfordert explizite Zustandsverwaltung
Ohne ein zentrales Logbuch sind Multi-Agenten-Pipelines anfällig für Inkonsistenzen und Fehler, die sich nur schwer nachvollziehen lassen. Ein Dispatch-Logbuch macht den Zustand des Koordinators persistent und ermöglicht eine fehlerfreie Wiederaufnahme nach jedem Neustart. Entwickler sollten dieses Muster zur Standardpraxis erheben – besonders in Produktionsumgebungen, wo Systemabbrüche unvermeidbar sind. Die Implementierung mag zunächst zusätzlichen Aufwand bedeuten, doch sie ist der Schlüssel zu stabilen und vorhersehbaren KI-Agenten-Pipelines.
KI-Zusammenfassung
Learn how a dispatch ledger ensures multi-agent pipelines resume correctly after interruptions, preventing duplicate work and data inconsistencies.
Tags