Was macht langgraph-persistence?
NUTZE DIESEN SKILL, wenn dein LangGraph Zustände persistieren, Unterhaltungen merken, durch die Historie reisen oder den Gültigkeitsbereich des Subgraph-Checkpointer konfigurieren muss. Behandelt Checkpointers, thread_id, Time Travel, Store und Subgraph-Persistenzmodi.
Übersicht
Dieser Skill bietet eine umfassende Anleitung zur Zustandspersistenz in LangGraph. Er ermöglicht es Entwicklern, den Verlauf von Unterhaltungen und Agentenschritten zu speichern, auf frühere Zustände zuzugreifen (Time Travel) und die Persistenz für Subgraphen zu konfigurieren.
Hauptkonzepte
Checkpointer
Ein Checkpointer ist ein Mechanismus, der den Zustand eines Graphs zu bestimmten Zeitpunkten speichert. Dies ermöglicht:
- Wiederaufnahme: Einen Graph nach einem Fehler oder einer Unterbrechung neu zu starten.
- Time Travel: Auf frühere Zustände zuzugreifen und von dort aus neu zu starten.
- Verlauf: Den gesamten Verlauf einer Ausführung zu verfolgen.
thread_id
thread_id ist ein eindeutiger Bezeichner für einen Gesprächsfaden (Thread). Er wird verwendet um:
- Mehrere parallele Unterhaltungen mit demselben Graph zu führen.
- Auf den Verlauf einer bestimmten Unterhaltung zuzugreifen.
- Die Persistenz auf bestimmte Threads zu beschränken.
Time Travel
Time Travel erlaubt es:
- Auf einen früheren Zustand aus dem Verlauf zuzugreifen.
- Den Graph ab diesem Zustand neu auszuführen (Branchen der Historie).
- Alternative Pfade zu erkunden, ohne den Hauptthread zu beeinflussen.
Store
Der Store ist ein persistenter Datenspeicher, der für Daten verwendet wird, die threadsübergreifend bestehen bleiben sollen, wie z.B.:
- Benutzerprofile
- Allgemeines Wissen
- Langfristige Konfigurationen
Subgraph-Persistenzmodi
Wenn Subgraphen verwendet werden, kann die Persistenz konfiguriert werden über:
inner: Persistenz nur innerhalb des Subgraphen.outer: Persistenz im übergeordneten Graph, wobei der Subgraph isoliert bleibt.shared: Gemeinsame Persistenz zwischen übergeordnetem Graph und Subgraph.
Verwendung
Beispiel: Checkpointer konfigurieren
from langgraph.checkpoint import MemorySaver
checkpointer = MemorySaver()
graph = Graph(
...
checkpointer=checkpointer
)
Beispiel: thread_id setzen
config = {"configurable": {"thread_id": "user-session-1"}}
result = graph.invoke(input_data, config)
Beispiel: Time Travel nutzen
history = graph.get_state_history(config)
state = history[-2] # Vorletzten Zustand nehmen
graph.update_state(config, state)
result = graph.invoke(new_input, config)
Beispiel: Store verwenden
store = InMemoryStore()
store.put(namespace, key, value)
retrieved_value = store.get(namespace, key)
Unterstützte Plattformen
Dieser Skill ist für die Verwendung mit LangGraph (Python) und verwandten Tools aus dem LangChain-Ökosystem konzipiert.
Zusätzliche Hinweise
- Für Tests und Entwicklung kann
MemorySaververwendet werden; für die Produktion sind Datenbank-Backends zu empfehlen. - Der Gültigkeitsbereich des Checkpointers sollte sorgfältig konfiguriert werden, um unerwünschte Nebenwirkungen bei Subgraphen zu vermeiden.
- Weitere Details finden Sie in der offiziellen LangGraph-Dokumentation.