0Pricing
AI Agents · Lektion

Knoten, Kanten und Zustand

Definieren Sie einen TypedDict-Zustand, schreiben Sie Knotenfunktionen, die ihn verändern, und verbinden Sie diese mit gerichteten Kanten.

Knoten, Kanten und Zustand ist eine kostenlose AI Agents-Lektion auf CoddyKit. Dies ist Lektion 2 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.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

Das State-Objekt

Jeder LangGraph-Agent verfügt über einen typisierten Zustand — normalerweise ein TypedDict:

from typing import TypedDict
from typing_extensions import Annotated
import operator

class AgentState(TypedDict):
    messages: Annotated[list, operator.add]   # appends instead of replaces
    plan: str
    answer: str

So funktionieren Zustandsaktualisierungen

Jeder Node gibt ein partielles Dict zurück. LangGraph:

  1. liest den aktuellen Zustand
  2. ruft den Node damit auf
  3. führt das zurückgegebene partielle Dict wieder zusammen

Bei Listenfeldern mit operator.add werden neue Elemente angehängt, statt vorhandene zu überschreiben.

Defining a Node

def planner(state: AgentState) -> dict:
    prompt = f'User wants: {state["messages"][-1].content}'
    plan = llm.invoke(prompt).content
    return {'plan': plan}

Registering the Node

from langgraph.graph import StateGraph, END

graph = StateGraph(AgentState)
graph.add_node('planner', planner)

Edges definieren

Statische Edges werden bedingungslos ausgeführt:

graph.set_entry_point('planner')
graph.add_edge('planner', 'researcher')
graph.add_edge('researcher', 'writer')
graph.add_edge('writer', END)

Bedingte Edges

Für Verzweigungen registrieren Sie eine Funktion, die den nächsten Node auswählt:

def route(state: AgentState) -> str:
    if state['needs_research']:
        return 'researcher'
    return 'writer'

graph.add_conditional_edges(
    'planner',
    route,
    {'researcher': 'researcher', 'writer': 'writer'}
)

END ist etwas Besonderes

END ist der Endknoten. Jede Edge zu END beendet den Graphen und gibt den aktuellen Zustand zurück.

Compiling the Graph

app = graph.compile()
result = app.invoke({'messages': [...]})
print(result['answer'])

Zustandsaktualisierungen streamen

Beobachten Sie Zustandsänderungen in Echtzeit:

for event in app.stream({'messages': [...]}):
    print(event)
# Each event is the state diff from the just-completed node.

Reducer-Funktionen

Für komplexe Zustandszusammenführungen verwenden Sie einen eigenen Reducer:

def merge_facts(old, new):
    return {**old, **new}

class State(TypedDict):
    facts: Annotated[dict, merge_facts]

Subgraphen

Ein Node kann selbst ein anderer kompilierter Graph sein — praktisch für hierarchische Agents:

subgraph = StateGraph(SubState).compile()
graph.add_node('subprocess', subgraph)

Asynchrone Nodes

Nodes können asynchrone Funktionen sein:

async def fetch_node(state):
    data = await fetch_async(state['url'])
    return {'data': data}

result = await app.ainvoke({...})

Fehler in Nodes

Wenn ein Node einen Fehler auslöst, gibt LangGraph ihn weiter und stoppt. Fangen Sie den Fehler im Node ab, wenn Sie eine kontrollierte Fehlerbehandlung wünschen:

def safe_search(state):
    try:
        return {'results': search(state['query'])}
    except Exception as e:
        return {'error': str(e), 'results': []}

Zustandsaktualisierungen

Was geschieht, wenn ein Node {'plan': '...'} als Dict zurückgibt?

Zusammenfassung

Definieren Sie einen TypedDict-Zustand, schreiben Sie Funktionen, die partielle Aktualisierungen zurückgeben, fügen Sie Nodes und Edges hinzu, kompilieren und führen Sie den Graphen aus. Das ist LangGraph.

Häufig gestellte Fragen

Ist die Lektion „Knoten, Kanten und Zustand“ kostenlos?

Ja — der vollständige Text von „Knoten, Kanten und Zustand“ 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 „Knoten, Kanten und Zustand“?

Definieren Sie einen TypedDict-Zustand, schreiben Sie Knotenfunktionen, die ihn verändern, und verbinden Sie diese mit gerichteten Kanten. 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 2 von 4.

Wie lange dauert die Lektion „Knoten, Kanten und Zustand“?

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

  1. Warum Graphen flache Chains übertreffen
  2. Knoten, Kanten und Zustand
  3. Bedingtes Routing und Verzweigungen
  4. Graphzustand speichern (Checkpoints)
← Zurück zu AI Agents