Design wechseln

AI-Agent-State-Machine-Design: Warum komplexe Workflows nicht nur auf Prompts setzen können

Easton editorial illustration: large Agent state recorder, coral failure beacon, checkpoint rewind handle, recovery status strip
8
Kernfelder für State
state, event, guard, action, checkpoint, retry, compensation, terminal.
4
Record-Objekte
state snapshot, event log, trace, audit log.
3
Recovery-Actions
resume, retry, compensate.
数据来源: Diese Engineering-Checkliste basiert auf offizieller Dokumentation von LangGraph, Temporal, OpenAI Agents SDK, AWS Step Functions und Stately. API-Namen und Produktverhalten sollten nach Veröffentlichung weiterhin gegen die offiziellen Dokumente geprüft werden.

"Die LangGraph-Persistence-Dokumentation beschreibt Checkpoints als thread-scoped graph state snapshots und erklärt, dass sie conversation continuity, human-in-the-loop, time travel und fault tolerance unterstützen."

Ein Reporting-Agent scheiterte kurz vor dem E-Mail-Versand in Schritt 5. Der Betrieb startete den Task erneut. Der Agent begann wieder bei Schritt 1, erzeugte einen neuen Report und überschrieb die bereits genehmigte Version. Der Approval-State ging verloren. Die Signatur des Freigebenden wurde durch das neue Ergebnis ersetzt, und kein Log konnte mehr beweisen, dass die erste Report-Version genehmigt war.

Das war kein Datenbank-Rollback-Problem und auch kein einfacher Queue-Retry. Im Prompt stand nur noch “weiterverarbeiten”. Das Modell leitete den gesamten Ablauf neu ab und wusste nicht, dass Schritt 1 bis 4 bereits Side Effects erzeugt hatten: Approval-API aufgerufen, Report generiert, temporäre Datei geschrieben. Der Fehler lag in Schritt 5, aber die Side Effects begannen schon in Schritt 2.

Das eigentliche Problem war nicht, ob das Modell stark genug war. Der Task-Fortschritt steckte als natürliche Sprache im Prompt, ohne wiederherstellbaren State Snapshot. Messages im Prompt sind Modellkontext, keine Ausführungsfakten.

Um so einen Incident zu beheben, reicht kein zusätzlicher Prompt-Satz wie “vor dem Fortfahren Fortschritt prüfen”. Stabiler ist es, aktuellen Node, bereits entstandene Side Effects, nächste Action und Failure Compensation in eine recoverbare State Table zu schreiben.

Kernpunkte des Incidents

Ausführungsfluss des Reporting-Agents:

SchrittOperationSide EffectIdempotenz
Schritt 1DatenabfrageRuft die Datenbank auf und liest User-DatenIdempotent (Read Operation)
Schritt 2Report-ErzeugungRuft das Report-Tool auf und erzeugt ein PDFNicht idempotent (überschreibt Datei)
Schritt 3Approval-WaitSendet Approval Request und wartet auf menschliche FreigabeIdempotent (API unterstützt es)
Schritt 4Approval akzeptiertEmpfängt approve EventIdempotent (Statusabfrage)
Schritt 5E-Mail sendenRuft E-Mail-API auf und sendet ReportFehlgeschlagen (Timeout)

Fehlerursache: Der E-Mail-Versand in Schritt 5 lief wegen Rate Limiting der externen API in einen Timeout. Der Task wurde als FAILED markiert.

Rerun-Logik: “aktuellen Fortschritt” aus dem Prompt lesen. Der Prompt enthielt nur “genehmigt, weiterverarbeiten”. Tatsächliche Ausführung: wieder bei Schritt 1 starten -> in Schritt 2 Report neu erzeugen (genehmigte Version überschreiben) -> in Schritt 3 erneut Approval anfordern -> in Schritt 5 erfolgreich senden.

Business Impact: Der genehmigte Report wurde ersetzt, Approval-Record und ausgelieferter Report passten nicht mehr zusammen. Der User beschwerte sich, dass der genehmigte Report nicht dem empfangenen Report entsprach. Der Approval-Prozess wurde verschwendet: Zwei Versionen wurden genehmigt, aber nur eine wurde wirklich versendet.

Anti-Pattern-Erkennung

Prüfen Sie, ob Ihr Agent eines dieser Anti-Patterns trifft:

Anti-PatternErscheinungsbildRisikoKorrektur
Fortschritt im PromptNatürliche Sprachzusammenfassung wie “aktuell bei Schritt 3”Nach Neustart verloren, nicht recoverbarAktuellen Node in einem State-Feld speichern
Trace als StateVollständiger Trace wird für State gehaltenTrace entscheidet nicht über den nächsten SchrittState speichert, was als Nächstes passieren soll
Retry ohne IdempotenzprüfungBei Fehler von vorne rerunnenSide Effects werden doppelt ausgeführtIdempotency Key + Already-executed Check
Resume nach Approval ohne PrüfungDirekt weiterlaufenFalscher Ausführungspunktcheckpoint + thread_id

1. State-Machine-Grundlagen: State, Event, Transition, Guard, Action

Eine State Machine ist nicht für jeden Agent nötig. Ein einfacher Customer-Support-Q&A kann mit einem messages-Array auskommen. Komplexe Tasks mit mehreren Schritten, Approval, externen Systemaufrufen und Recovery nach Fehlern müssen Fortschritt jedoch explizit machen.

1.1 Tabelle der Kernbegriffe

Die Grundbegriffe stammen aus der Stately-Dokumentation:

BegriffDefinitionAgent-BeispielQuelle
StateModus, in dem sich die Maschine befindet, mit eindeutiger semantischer AbsichtINIT, PLAN_READY, TOOL_RUNNING, APPROVAL_PENDING, FAILED, COMPLETEDStately state machines
EventExternes Signal, das State-Wechsel auslösttimeout, approve, reject, retry, resume, task_receivedStately state machines
TransitionErlaubter Pfad zwischen States, als deterministische ZuordnungINIT -> PLAN_READY (event: task_received)Stately state machines
Guard/ConditionVorbedingung für den Eintritt in einen StateNur bei ausreichendem Budget nach TOOL_RUNNING wechselnStately state machines
ActionOperation, die während einer Transition ausgeführt wirdBeim Eintritt in TOOL_RUNNING ein Tool aufrufenStately state machines
CheckpointState Snapshot für RecoveryLangGraph checkpointer speichert graph stateLangGraph Persistence

Determinismus-Prinzip: Dieselbe Kombination aus State + Event sollte genau einen Next State ergeben, damit keine Mehrdeutigkeit entsteht. Endliche State-Menge: Eine State Machine ist kein unendliches Flowchart, sondern eine endliche Menge erreichbarer States plus klare Transition-Regeln.

1.2 Trace vs State vs Audit im Vergleich

Trace, Audit Log und State Snapshot lösen drei verschiedene Probleme:

KonzeptGelöstes ProblemBusiness State?Entscheidet nächsten Schritt?Agent-Beispiel
TraceBeobachtung und DiagnosegerüstNeinNeinOpenAI Agents SDK trace (workflow_name, trace_id)
Audit LogCompliance Record und Audit TrailNeinNeinAudit-Felder im Permission Model (actor, traceId, action, result)
State SnapshotAktueller State, der den nächsten Schritt bestimmtJaJaLangGraph checkpoint (aktueller Node, erledigte Schritte, was als Nächstes passieren soll)

Die Abgrenzung ist entscheidend: Ein Trace zeigt, was passiert ist, ist aber nicht der Business State selbst. Ein Audit Log hält Compliance-Historie fest. Ein State Snapshot bestimmt, was als Nächstes passieren soll, und ist damit der Kern der Recovery. Diese drei Dinge ersetzen einander nicht: Trace bedeutet nicht State, Audit bedeutet nicht Recovery.

2. Wie LangGraph State Persistence umsetzt

Ein Checkpoint ist keine natürliche Sprachzusammenfassung im Prompt, sondern ein wiederherstellbarer, prüfbarer und replay-fähiger State Snapshot. Die LangGraph-Persistence-Dokumentation definiert einen Checkpoint als graph state snapshot mit vollständigem State und den nächsten auszuführenden Nodes.

2.1 Checkpointer und Thread State

Kernmechanismen (laut LangGraph Persistence):

  • Checkpointer: speichert thread-scoped State Snapshots (graph state snapshots)
  • Store: speichert thread-übergreifende Langzeitdaten (application-defined store)
  • Thread_id: eindeutiger Einstiegspunkt zur Recovery eines konkreten Thread State
  • Vier Einsatzzwecke: conversation continuity, human-in-the-loop, time travel, fault tolerance

LangGraph Persistence legt kurzfristigen thread-scoped State in Checkpointern ab und thread-übergreifende Langzeitdaten in Stores. Ein Checkpoint enthält State Snapshot und application-defined store. Thread_id ist der Recovery-Einstieg; mit derselben thread_id kann am Pause Point weitergemacht werden.

Ein LangGraph-Checkpoint enthält graph state, Liste der nächsten auszuführenden Nodes, checkpoint_id, Zeitstempel und Version. Sensitive Daten gehören nicht blind in den Checkpoint: Manche graph-state-Felder können vertrauliche Informationen enthalten und müssen explizit vom Speichern ausgeschlossen werden.

2.2 Interrupts und Recovery-Mechanismus

Kernmechanismen (laut LangGraph Interrupts):

  • interrupt(): pausiert Ausführung dynamisch innerhalb eines Graph-Node, speichert graph state und wartet auf externen Input
  • Recovery-Methode: dieselbe thread_id und Command(resume=…) verwenden
  • Übliche Muster: Approval, review/edit, tool call review, human input validation
  • Warnung zu idempotenten Side Effects: Side Effects vor interrupt müssen idempotent sein, weil der Node beim Resume vom Anfang des interrupt-Node erneut läuft

Eine Approval-Pause muss ein Pause-State in der State Machine sein, nicht die Hoffnung, dass das Modell “sich merkt, auf Approval zu warten”. Recovery braucht denselben Thread Cursor.

Recovery nutzt dieselbe thread_id und Command(resume=…). Idempotente Side Effects sind Voraussetzung. Wenn vor dem Approval ein Side Effect liegt, etwa ein externer API-Call, muss dieser idempotent sein. Sonst ruft der wiederaufgenommene Node die API erneut auf.

3. Engineering-Analogie: Temporal Durable Execution

Zuverlässigkeit langer Tasks ist kein neues Problem. Temporal durable execution liefert eine reife Analogie.

3.1 Definition von Durable Execution

Kernkonzepte (laut Temporal Durable Execution):

  • Durable Execution: workflow execution bewahrt state/progress bei Fehlern, Crashes oder Service-Unterbrechungen
  • Event History: zeichnet jeden State-Schritt auf, damit nach Fehlern vom letzten aufgezeichneten Event recoveriert werden kann
  • Drei Eigenschaften: Resumable, Recoverable, Reactive

Zuverlässigkeit langer Tasks entsteht durch event history und recoverbare Ausführung, nicht durch Speicher eines einzelnen Prozesses oder Prompt-Kontext. Eine Agent-State-Machine braucht etwas Ähnliches: checkpoint/event log + Business State, nicht nur erneute Modellinferenz.

Temporal Event History und LangGraph checkpoint sind konzeptionell verwandt: Beide zeichnen Ausführungshistorie auf und ermöglichen Recovery vom Fehlerpunkt. Der Unterschied: Temporal ist eine vollständige Workflow Engine, LangGraph ein Framework für Agent State Management. Die Lehre für Agent-Entwickler ist klar: Durable Execution braucht strukturierte State-History, nicht Prozessspeicher oder Modellkontext.

4. State-Table-Vorlage: Eine kopierbare Agent State Table

State-Machine-Konzepte sind abstrakt. Für die Umsetzung braucht es ein konkretes State Model. Die folgenden drei Vorlagen decken State Table, Event Table und einen incident-getriebenen State-Table-Fall ab.

4.1 State-Table-Vorlage (ausführbarer Schrittblock)

Vorlagenstruktur:

StateEventGuardErforderliche ActionNext
INITtask_receivedKeineKontext initialisieren, Startzeit aufzeichnenPLAN_READY
PLAN_READYplan_generatedplan_validAusführungsplan erzeugen, Tool-Sequenz speichernTOOL_RUNNING
TOOL_RUNNINGtool_completedbudget_sufficientTool aufrufen, Ergebnis speichern, Budget aktualisierenAPPROVAL_PENDING oder COMPLETED
APPROVAL_PENDINGapproveapproval_requiredApproval Request senden, Freigebenden speichernCOMPLETED
APPROVAL_PENDINGrejectKeineAblehnungsgrund speichern, User benachrichtigenFAILED
FAILEDretryretry_count < maxIdempotenz prüfen, auf vorherigen Checkpoint zurückgehenTOOL_RUNNING oder APPROVAL_PENDING
COMPLETEDKeineKeineCompletion-Zeit speichern, Ressourcen aufräumenTerminal

Erläuterung: Die State-Spalte definiert alle erreichbaren States (INIT, PLAN_READY, TOOL_RUNNING, APPROVAL_PENDING, FAILED, COMPLETED). Die Event-Spalte definiert auslösende Events (task_received, approve, reject, retry). Die Guard-Spalte definiert Vorbedingungen (budget_sufficient, retry_count < max). Die Action-Spalte definiert Pflichtoperationen während der Transition. Die Next-Spalte definiert den deterministischen Next State.

4.2 Event-Table-Vorlage (Ergänzung zur State Table)

Vorlagenstruktur:

Event-NameAuslöserErforderlicher Vor-StateNach-StateErzeugt Side Effects?
task_receivedUser übermittelt TaskINITPLAN_READYNein
plan_generatedLLM erzeugt AusführungsplanPLAN_READYTOOL_RUNNINGNein
tool_completedTool-Ausführung abgeschlossenTOOL_RUNNINGAPPROVAL_PENDING oder COMPLETEDJa (externer API-Call)
approveFreigebender stimmt zuAPPROVAL_PENDINGCOMPLETEDJa (E-Mail senden, Budget abziehen)
rejectFreigebender lehnt abAPPROVAL_PENDINGFAILEDNein
retryRetry Request nach FehlerFAILEDTOOL_RUNNING oder APPROVAL_PENDINGIdempotenzprüfung nötig
timeoutAusführung läuft in TimeoutTOOL_RUNNINGFAILEDNein

Erläuterung: Der erforderliche Vor-State macht explizit, in welchen States ein Event akzeptiert werden darf. Die Side-Effect-Spalte markiert, welche Events Idempotenz oder Compensation brauchen.

4.3 Incident-getriebenes State-Table-Beispiel (aus dem Report-Overwrite-Fall)

Vollständiges Beispiel: State Table für den Reporting-Agent aus dem Einstieg

StateEventGuardActionNextIdempotenz-/Compensation-Prüfung
INITtask_receivedKeinethread_id initialisieren, Startzeit speichernQUERY_RUNNINGNicht nötig
QUERY_RUNNINGquery_completedKeineDaten abfragen, Ergebnis in State speichernREPORT_GENERATINGNicht nötig
REPORT_GENERATINGreport_generatedKeineReport erzeugen, Report-ID in State speichernAPPROVAL_PENDINGIdempotenzcheck: Wenn Report existiert, Generation überspringen
APPROVAL_PENDINGapproveKeineFreigebenden und Approval-Zeit speichernEMAIL_SENDINGNicht nötig
APPROVAL_PENDINGrejectKeineAblehnungsgrund speichernFAILEDNicht nötig
EMAIL_SENDINGemail_sentKeineE-Mail senden, E-Mail-ID speichernCOMPLETEDIdempotenzcheck: Wenn E-Mail schon gesendet wurde, überspringen
EMAIL_SENDINGtimeoutretry_count < 3Fehler speichern, Idempotenz prüfenEMAIL_SENDING (Retry) oder FAILEDIdempotency Key: email_id + thread_id
FAILEDretryretry_count < maxIdempotenz prüfen, aus vorherigem Checkpoint recovernQUERY_RUNNING oder REPORT_GENERATING oder EMAIL_SENDINGRecovery Point per Checkpoint bestimmen
COMPLETEDKeineKeineCompletion-Zeit speichern, Ressourcen aufräumenTerminalNicht nötig

Korrektur des Incidents: Wenn Schritt 5 fehlschlägt (EMAIL_SENDING -> timeout), sollte Recovery bei EMAIL_SENDING beginnen, nicht bei QUERY_RUNNING. Der Checkpoint muss aktuellen Node (EMAIL_SENDING), erledigte Schritte (QUERY, REPORT_GENERATED, APPROVAL_APPROVED) und nächste Action (EMAIL_SENDING) speichern. Report-Erzeugung und E-Mail-Versand brauchen Idempotency Keys, damit Side Effects nicht doppelt laufen.

5. Idempotenz und Compensation: Recovery ist mehr als Checkpoint

Ein Checkpoint bedeutet nicht, dass alle Side Effects sicher recoverbar sind. Recovery braucht außerdem Idempotenz, Transaktionen, Compensation und Prüfungen des externen Systemzustands.

5.1 Konzepte von Idempotenz und Compensation

Definitionen:

  • Idempotent: Mehrfache Ausführung führt zum gleichen Ergebnis und erzeugt keine doppelten Side Effects
  • Compensation: Bereits eingetretene Side Effects rückgängig machen und Konsistenz wiederherstellen
  • Transaction Rollback: Atomare Operation rollt bei Fehler automatisch zurück
  • Externe Zustandsprüfung: Vor Recovery den externen Systemzustand prüfen, um doppelte Operationen zu vermeiden

Drei Säulen der State Consistency: Idempotenz-Identität (action_id + schema_hash), State-Snapshot-Chain (snapshot + prev_hash + delta) und registrierte Compensation Action (undo_op).

5.2 Checkliste für Idempotenz und Compensation

So entscheiden Sie, welche Operationen Idempotenz und welche Compensation brauchen:

OperationstypBraucht Idempotenz?Braucht Compensation?Idempotency-Key-DesignCompensation-Plan
Datenabfrage (kein Side Effect)NeinNein--
Report-Erzeugung (überschreibt Datei)JaJareport_id + thread_idNeuen Report löschen, genehmigte Version wiederherstellen
E-Mail-Versand (externe API)JaSchwierigemail_id + thread_idIn manchen Fällen Korrektur- oder Widerrufs-Mail senden
Lagerbestand abziehen (Datenbank)JaJainventory_id + order_idBestand wieder erhöhen
Ticket erstellen (externes System)JaJaticket_id + thread_idTicket schließen
Budget abziehen (interner State)JaJabudget_id + thread_idBudget wieder erhöhen
Approval Request senden (kein dauerhafter Side Effect)NeinNein--

Entscheidungslogik: Ob eine Operation externe Side Effects erzeugt, entscheidet über Idempotenzbedarf. Rückgängig machbare Operationen brauchen Compensation. Bei systemübergreifenden Calls sollte der Idempotency Key eine externe Systemkennung enthalten. Atomare Operationen können Transaction Rollback nutzen.

Recovery ist nicht nur Checkpoint. Sie braucht Idempotenz, Transaktionen, Compensation und externe Zustandsprüfungen. Die Aussage, ein Checkpoint könne alle Side Effects sicher recovern, ist ungenau.

6. Agent-Task-State-Checkliste: Recoverbar vs nicht recoverbar

Nicht jeder Checkpoint kann recovern. Terminal State ist der Endzustand einer workflow execution: abgeschlossen, fehlgeschlagen, timeout oder cancelled. Ein Terminal State kann nicht fortgesetzt werden, sondern nur neu ausgeführt oder kompensiert.

6.1 State-Klassifikationstabelle

State-TypRecoverbar?Recovery-BedingungRecovery-MethodeBeispiel
FailedJaretry_count < maxAus vorherigem Checkpoint recovernTool-Call-Timeout
RetryJaIdempotenzcheck bestandenVom Fehler-Node erneut ausführenE-Mail-Versand fehlgeschlagen
CompensationTeilweiseCompensation-Plan existiertundo_op ausführenLagerabzug fehlgeschlagen
Approval PauseJaapprove/reject EventCommand(resume=…)Warten auf Approval
TerminalNeinKeineKein Recovery-PfadCOMPLETED, FAILED (retry_count = max)

Erläuterung: Ein Failed State kann per retry recovern, solange retry_count < max. Ein Retry State braucht eine Idempotenzprüfung und führt vom Fehler-Node erneut aus. Ein Compensation State ist teilweise recoverbar, wenn ein Compensation-Plan existiert. Approval Pause recoveriert durch approve/reject Event. Terminal State ist nicht recoverbar, etwa COMPLETED oder FAILED nach maximaler Retry-Anzahl.

7. Weiterführende Lektüre

State-Machine-Design ist nur der Anfang. State Modeling muss zum konkreten Business-Szenario passen; verschiedene Tasks brauchen unterschiedliche State-Granularität und Recovery-Strategien.

ArtikelBeziehungLink
Human-in-the-loop Agent Design: Welche Schritte menschliches Approval brauchenDetails zu Approval Pause/blog/de/posts/ai/20260707-human-in-the-loop-agent-approval-design/
Agent Cost Control: Model Routing, Tool Budgets und Failure RetryBudget- und Retry-Strategie/blog/de/posts/ai/20260707-agent-cost-control-model-routing-tool-budget-cache-retry/
LangGraph State Management in der Praxis: Agent-Architektur-Best-Practices 2026LangGraph State Management/blog/de/posts/ai/20260424-langgraph-agent-architecture/
AI-Agent Monitoring, Alerting und Failure Recovery: Von Logs zu State MachinesMonitoring und Recovery/blog/de/posts/ai/20260527-ai-agent-monitoring-recovery/
LangGraph vs AutoGen State TrackingFramework-Vergleich/blog/de/posts/ai/20260526-langgraph-autogen-state-tracking/
Agent Evaluation Datasets und Regression Tests: Wie eine Änderung nicht das ganze System beschädigtEvaluation und Regression TestsVorschau, nächster Artikel der Serie

Externe Referenzen

Quellen mit hoher Vertrauenswürdigkeit:

QuelleVertrauenThemaLink
LangGraph Persistence DokumentationhighCheckpointer, Store, Thread State, Checkpointhttps://docs.langchain.com/oss/python/langgraph/persistence
LangGraph Interrupts Dokumentationhighinterrupt(), Command(resume=…), thread_idhttps://docs.langchain.com/oss/python/langgraph/interrupts
Temporal Durable Execution DokumentationhighEvent History, Durable Execution, Resumable/Recoverablehttps://docs.temporal.io/temporal
OpenAI Agents SDK Tracing DokumentationhighTrace, Span, workflow_name, trace_idhttps://openai.github.io/openai-agents-python/tracing/
AWS Step Functions State Machines DokumentationhighState Machine, Flow State, Task State, StartAt, Nexthttps://docs.aws.amazon.com/step-functions/latest/dg/concepts-statemachines.html
Stately: State machines and statechartsmediumState, Event, Transition, Guard, Action, Hierarchyhttps://stately.ai/docs/state-machines-and-statecharts

Eine State Machine ist nicht für jeden Agent nötig, aber komplexe Tasks müssen ihren Fortschritt explizit machen. Der nächste Schritt ist nicht, mehr Frameworks einzuführen. Entscheidend ist, für Ihr Business-Szenario passende State, Event, Transition, Guard und Action zu entwerfen und Task-Fortschritt aus natürlicher Prompt-Sprache in strukturierten State zu verschieben.

Eine State Machine für einen komplexen AI-Agent entwerfen

Zerlegen Sie einen komplexen AI-Agent-Task in State, Event, Guard, Action, Checkpoint, Retry, Compensation und Terminal State, damit Fortschritt nicht nur im Prompt verborgen bleibt.

⏱️ Estimated time: 45 min

  1. 1

    Step 1: Risikopunkte auflisten

    Listen Sie externe Side Effects, menschliche Pausenpunkte, Failure Points und Terminal Conditions des Tasks auf.
  2. 2

    Step 2: Minimale State-Menge definieren

    Definieren Sie eine minimale State-Menge wie pending, running, waiting_approval, retrying, compensating, succeeded, failed und cancelled.
  3. 3

    Step 3: Events mit Next States verbinden

    Schreiben Sie für jeden State auf, welche Events er akzeptiert und in welchen Next State jedes Event führt.
  4. 4

    Step 4: Guard-Bedingungen ergänzen

    Ergänzen Sie Guards für gefährliche Transitions, etwa Permission, Budget, Approval, Idempotency Key und externe Ressourcenstate-Prüfung.
  5. 5

    Step 5: Tool-Actions isolieren

    Legen Sie Tool Calls in die Action-Schicht und protokollieren Sie Input-Zusammenfassung, Output-Zusammenfassung, traceId und Side-Effect-Ergebnis.
  6. 6

    Step 6: Failure-Policies festlegen

    Definieren Sie Retry Policy, Terminal State und Compensation Policy für jeden Failure Path.
  7. 7

    Step 7: Recovery-Grundlage persistieren

    Definieren Sie Checkpoint oder Event Log für Recovery und behandeln Sie den Prompt nur als temporären Kontext, nicht als einzige Quelle der Wahrheit.

FAQ

Wenn ein Agent bei Schritt 5 scheitert, starte ich bei Schritt 1 neu oder fahre ich vom Checkpoint fort?
Das hängt davon ab, ob die Side Effects idempotent sind und ob der Checkpoint ausreicht. Ohne Side Effects kann der Task von vorne laufen. Mit idempotenten Side Effects sollte er vom Checkpoint fortfahren. Sind Side Effects nicht idempotent, müssen Sie zuerst kompensieren und dann recovern. Ohne Checkpoint bleibt nur ein Neustart mit dem Risiko doppelter Side Effects.
Gehört Task-State in den Prompt, in eine Datenbank, in einen LangGraph-Checkpoint oder in einen Queue-Job?
Bei einfachen Tasks kann der Prompt temporärer Kontext sein. Komplexe Tasks brauchen Checkpoint oder Event Log plus Business State. In Produktion speichert man Thread State oft in LangGraph-Checkpoints, während Orders, Approvals, Permissions und Billing Facts in der Business-Datenbank bleiben. Ein Queue-Job eignet sich für asynchrone Scheduling-Logik, braucht aber weiterhin State Management.
Was unterscheidet eine State Machine von einem Workflow-Diagramm?
Eine State Machine betont endliche erreichbare States, deterministische Transitions, Guards und Actions. Ein Workflow beschreibt eher eine Abfolge von Ausführungsschritten. Ein Agent braucht die Kernkonzepte der State Machine, aber nicht immer vollständige Statechart-Funktionen wie Hierarchie und Parallelität.
Wie stelle ich sicher, dass ein Agent nach Approval an denselben Ausführungspunkt zurückkehrt?
Nutzen Sie dieselbe thread_id und recovern Sie aus einem Checkpoint, zum Beispiel mit dem Command(resume=...)-Muster aus der LangGraph-Interrupts-Dokumentation. Der Checkpoint sollte aktuellen Node, abgeschlossene Schritte und nächste Action enthalten; Side Effects vor dem Interrupt müssen idempotent sein.
Gehören Retry und Compensation in den Prompt oder in State-Transition-Regeln?
Sie gehören in serverseitige State-Transition-Regeln, nicht nur in den Prompt. retry_count, max retry, Idempotency Keys, undo_op und Terminal States sollten testbar, auditierbar und wiederherstellbar sein. Der Prompt kann bei Entscheidungen helfen, darf aber nicht der einzige Träger von Reliability-Regeln sein.
Braucht ein einfacher Customer-Service-Agent eine State Machine?
Ein Single-Turn-FAQ-Bot braucht normalerweise keine schwere State Machine. Sobald der Agent Orders nachschlägt, Tickets erstellt, Refunds genehmigt, Zahlungen anstößt oder externe APIs nutzt, braucht er expliziten State, Checkpoints, Idempotenz und Compensation.

12 Min. Lesezeit · Veröffentlicht am: 17. Sept. 2026

Kommentare

Melde dich mit GitHub an, um einen Kommentar zu hinterlassen

Easton BlogEaston Blog