Agentische Systeme mit LangChain entwerfen
Dilini K. Sumanapala, PhD
Founder & AI Engineer, Genverv, Ltd.







from langgraph.graph import MessagesState, START, END# Verwende MessagesState, um den Zustand der Stoppfunktion zu definieren def should_continue(state: MessagesState):# Letzte Nachricht aus dem State holen last_message = state["messages"][-1]# Prüfen, ob die letzte Nachricht Tool-Aufrufe enthält if last_message.tool_calls: return "tools"# Gespräch beenden, wenn keine Tool-Aufrufe vorhanden return END
# Letzte Nachricht aus dem Verlauf extrahieren def call_model(state: MessagesState):last_message = state["messages"][-1]# Wenn die letzte Nachricht Tool-Aufrufe hat, gib die Tool-Antwort zurück if isinstance(last_message, AIMessage) and last_message.tool_calls:# Nachrichten aus dem Tool-Aufruf zurückgeben return {"messages": [AIMessage(content=last_message.tool_calls[0]["response"])]}# Andernfalls mit einer normalen LLM-Antwort fortfahren return {"messages": [model_with_tools.invoke(state["messages"])]}
workflow = StateGraph(MessagesState)
workflow = StateGraph(MessagesState)# Knoten für Chatbot und Tools hinzufügen workflow.add_node("chatbot", call_model) workflow.add_node("tools", tool_node)

workflow = StateGraph(MessagesState)# Knoten für Chatbot und Tools hinzufügen workflow.add_node("chatbot", call_model) workflow.add_node("tools", tool_node)# START-Knoten mit dem Chatbot verbinden workflow.add_edge(START, "chatbot")

workflow = StateGraph(MessagesState)# Knoten für Chatbot und Tools hinzufügen workflow.add_node("chatbot", call_model) workflow.add_node("tools", tool_node)# START-Knoten mit dem Chatbot verbinden workflow.add_edge(START, "chatbot")# Bedingungen definieren, dann zurück zum Chatbot schleifen workflow.add_conditional_edges("chatbot", should_continue, ["tools", END])

workflow = StateGraph(MessagesState)# Knoten für Chatbot und Tools hinzufügen workflow.add_node("chatbot", call_model) workflow.add_node("tools", tool_node)# START-Knoten mit dem Chatbot verbinden workflow.add_edge(START, "chatbot")# Bedingungen definieren, dann zurück zum Chatbot schleifen workflow.add_conditional_edges("chatbot", should_continue, ["tools", END])workflow.add_edge("tools", "chatbot")

# Speicher einrichten und Workflow kompilieren memory = MemorySaver()app = workflow.compile( checkpointer=memory)display(Image(app.get_graph() .draw_mermaid_png()))
Agentische Systeme mit LangChain entwerfen