Agentic Systems ontwerpen met LangChain
Dilini K. Sumanapala, PhD
Founder & AI Engineer, Genverv, Ltd.







from langgraph.graph import MessagesState, START, END# Gebruik MessagesState om de staat van de stopfunctie te definiëren def should_continue(state: MessagesState):# Haal het laatste bericht uit de state last_message = state["messages"][-1]# Controleer of het laatste bericht tool-calls bevat if last_message.tool_calls: return "tools"# Beëindig het gesprek als er geen tool-calls zijn return END
# Haal het laatste bericht uit de geschiedenis def call_model(state: MessagesState):last_message = state["messages"][-1]# Als het laatste bericht tool-calls heeft, geef de tool-respons terug if isinstance(last_message, AIMessage) and last_message.tool_calls:# Geef de berichten van de tool-call terug return {"messages": [AIMessage(content=last_message.tool_calls[0]["response"])]}# Anders: ga door met een normale LLM-respons return {"messages": [model_with_tools.invoke(state["messages"])]}
workflow = StateGraph(MessagesState)
workflow = StateGraph(MessagesState)# Voeg nodes toe voor chatbot en tools workflow.add_node("chatbot", call_model) workflow.add_node("tools", tool_node)

workflow = StateGraph(MessagesState)# Voeg nodes toe voor chatbot en tools workflow.add_node("chatbot", call_model) workflow.add_node("tools", tool_node)# Verbind de START-node met de chatbot workflow.add_edge(START, "chatbot")

workflow = StateGraph(MessagesState)# Voeg nodes toe voor chatbot en tools workflow.add_node("chatbot", call_model) workflow.add_node("tools", tool_node)# Verbind de START-node met de chatbot workflow.add_edge(START, "chatbot")# Definieer condities, daarna terug naar chatbot workflow.add_conditional_edges("chatbot", should_continue, ["tools", END])

workflow = StateGraph(MessagesState)# Voeg nodes toe voor chatbot en tools workflow.add_node("chatbot", call_model) workflow.add_node("tools", tool_node)# Verbind de START-node met de chatbot workflow.add_edge(START, "chatbot")# Definieer condities, daarna terug naar chatbot workflow.add_conditional_edges("chatbot", should_continue, ["tools", END])workflow.add_edge("tools", "chatbot")

# Stel geheugen in en compileer de workflow memory = MemorySaver()app = workflow.compile( checkpointer=memory)display(Image(app.get_graph() .draw_mermaid_png()))
Agentic Systems ontwerpen met LangChain