Graphzustand speichern (Checkpoints)
Speichern Sie den Zustand in Postgres oder SQLite, damit ein langlebiger Agent pausiert, fortgesetzt und auditiert werden kann.
Graphzustand speichern (Checkpoints) ist eine kostenlose AI Agents-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AI Agents-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.
Warum den Zustand persistieren?
Lang laufende Agents müssen:
- Stunden später pausiert und fortgesetzt werden können
- sich nach Abstürzen mitten in der Ausführung wiederherstellen lassen
- Human-in-the-Loop unterstützen (auf eine Genehmigung warten)
- zur Fehlersuche erneut ausgeführt werden können
LangGraph-Checkpointer persistieren den Zustand an jeder Node-Grenze.
In-Memory-Checkpointer
Für Entwicklung und Tests:
from langgraph.checkpoint.memory import MemorySaver
checkpointer = MemorySaver()
app = graph.compile(checkpointer=checkpointer)Postgres-Checkpointer
Für den Produktionseinsatz:
from langgraph.checkpoint.postgres import PostgresSaver
checkpointer = PostgresSaver.from_conn_string('postgresql://...')
await checkpointer.setup() # create tables
app = graph.compile(checkpointer=checkpointer)Sqlite-Checkpointer
Lokale Persistenz ohne Datenbankserver:
from langgraph.checkpoint.sqlite import SqliteSaver
import sqlite3
conn = sqlite3.connect('agents.db', check_same_thread=False)
checkpointer = SqliteSaver(conn)Thread-IDs
Jeder Lauf hat eine thread_id — ähnlich einer Sitzungs-ID. Mehrere Benutzer erhalten separate thread_ids; zum Fortsetzen eines Laufs verwenden Sie dieselbe ID:
config = {'configurable': {'thread_id': 'user-42-conversation-1'}}
result = app.invoke({'messages': [...]}, config)Einen Lauf fortsetzen
Rufen Sie invoke mit derselben thread_id und ohne Eingabe auf — der Agent setzt die Ausführung an der Stelle fort, an der er angehalten wurde:
# Some hours later:
app.invoke(None, config)Den Zustand untersuchen
Lesen Sie den aktuellen Zustand eines Threads:
snapshot = app.get_state(config)
print(snapshot.values) # current state dict
print(snapshot.next) # which node is next
print(snapshot.created_at)Zustandsverlauf
Gehen Sie alle Checkpoints rückwärts durch:
for snapshot in app.get_state_history(config):
print(snapshot.created_at, snapshot.values)Einen Lauf abzweigen
Sie können den Zustand an jedem vergangenen Checkpoint aktualisieren und die Ausführung von dort aus erneut starten — nützlich für die Fehlersuche nach dem Muster „Was wäre, wenn?“:
app.update_state(config, {'plan': 'a different plan'})
app.invoke(None, config) # continue with the new planHuman-in-the-Loop mit interrupt_before
Pausieren Sie die Ausführung vor einem sensiblen Node, damit ein Mensch sie überprüfen kann:
app = graph.compile(
checkpointer=checkpointer,
interrupt_before=['send_email']
)
result = app.invoke({'messages': [...]}, config)
# Agent paused. Human inspects state.
# When approved:
app.invoke(None, config)Nach der Bearbeitung fortsetzen
Der Mensch kann den Zustand vor dem Fortsetzen bearbeiten:
app.update_state(config, {'email_draft': 'final version'})
app.invoke(None, config)Kostenverfolgung über Checkpoints hinweg
Der persistierte Zustand kann Token- und Kostenzähler enthalten, die Abstürze überdauern:
class State(TypedDict):
cost_usd: Annotated[float, lambda a, b: a + b]
# Every LLM-calling node adds to it.Bereinigung
Alte Threads sammeln sich an. Löschen Sie abgeschlossene Threads regelmäßig, um den Speicherbedarf zu kontrollieren:
await checkpointer.delete(thread_id='old-thread')Threads fortsetzen
Wie setzen Sie einen Agent-Lauf nach einem Absturz fort?
Zusammenfassung
Verwenden Sie SqliteSaver lokal und PostgresSaver für den Produktionseinsatz. Thread-IDs trennen die einzelnen Läufe. Kombinieren Sie dies mit interrupt_before für Human-in-the-Loop-Workflows.
Häufig gestellte Fragen
Ist die Lektion „Graphzustand speichern (Checkpoints)“ kostenlos?
Ja — der vollständige Text von „Graphzustand speichern (Checkpoints)“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AI Agents-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Graphzustand speichern (Checkpoints)“?
Speichern Sie den Zustand in Postgres oder SQLite, damit ein langlebiger Agent pausiert, fortgesetzt und auditiert werden kann. Du übst AI Agents mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um AI Agents zu starten?
Keine Vorkenntnisse erforderlich. AI Agents auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Graphzustand speichern (Checkpoints)“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser AI Agents-Lektion Code schreiben und ausführen?
Ja. Jede AI Agents-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Warum Graphen flache Chains übertreffen
- Knoten, Kanten und Zustand
- Bedingtes Routing und Verzweigungen
- Graphzustand speichern (Checkpoints)