Agentische Systeme mit LangChain entwerfen
Dilini K. Sumanapala, PhD
Founder & AI Engineer, Genverv, Ltd.
Die Fläche eines Rechtecks mit den Seiten 5 und 7 beträgt 35 Flächeneinheiten.
User: „Wie groß ist die Fläche eines Rechtecks mit den Seiten 5 und 7?“
tools = [rectangle_area] query = "Wie groß ist die Fläche eines Rechtecks mit den Seiten 14 und 4?"# ReAct-Agent erstellen app = create_react_agent(model, tools)# Agent mit einer Anfrage aufrufen und Nachrichten speichern response = app.invoke({"messages": [("human", query)]})# Eingabe- und Ausgabenachrichten definieren und ausgeben print({ "user_input": query, "agent_output": response["messages"][-1].content})
{'user_input': 'Wie groß ist die Fläche eines Rechtecks mit den Seiten 14 und 4?',
'agent_output': 'Die Fläche eines Rechtecks mit den Seiten 14 und 4 beträgt 56
Flächeneinheiten.'}
{'user_input': 'Wie wäre es mit Seiten 12 und 14?','agent_output': ['HumanMessage: Wie groß ist die Fläche eines Rechtecks mit den Seiten 5 und 7?', 'AIMessage: Die Fläche eines Rechtecks mit den Seiten 5 und 7 beträgt 35 Flächeneinheiten.', 'HumanMessage: Wie wäre es mit Seiten 12 und 14?', 'AIMessage: Die Fläche eines Rechtecks mit den Seiten 12 und 14 beträgt 168 Flächeneinheiten.','HumanMessage: Wie wäre es mit Seiten 12 und 14?', 'AIMessage: Die Fläche eines Rechtecks mit den Seiten 12 und 14 beträgt 168 Flächeneinheiten.']}
from langchain_core.messages import
HumanMessage, AIMessage
from langchain_core.messages import HumanMessage, AIMessagemessage_history = messages["messages"]

from langchain_core.messages import HumanMessage, AIMessage message_history = messages["messages"]new_query = "Wie wäre es mit Seiten 4 und 3?"

from langchain_core.messages import HumanMessage, AIMessage message_history = messages["messages"]new_query = "Wie wäre es mit Seiten 4 und 3?"# App mit komplettem Nachrichtenverlauf aufrufen messages = app.invoke({"messages": message_history + [("human", new_query)]})

# Human- und AI-Nachrichten extrahieren
filtered_messages = [msg for msg in
messages["messages"] if
isinstance(msg,
(HumanMessage,
AIMessage))
and msg.content.strip()]

# Human- und AI-Nachrichten extrahieren filtered_messages = [msg for msg in messages["messages"] if isinstance(msg, (HumanMessage, AIMessage)) and msg.content.strip()]# Endergebnis formatieren und ausgeben print({ "user_input": new_query, "agent_output": [f"{msg.__class__.__name__}: {msg.content}" for msg in filtered_messages]})

{'user_input': 'Wie wäre es mit Seiten 4 und 3?','agent_output': ['HumanMessage: Wie groß ist die Fläche eines Rechtecks mit den Seiten 14 und 4?', 'AIMessage: Die Fläche eines Rechtecks mit den Seiten 14 und 4 beträgt 56 Flächeneinheiten.', 'HumanMessage: Wie wäre es mit Seiten 4 und 3?', 'AIMessage: Die Fläche eines Rechtecks mit den Seiten 4 und 3 beträgt 12 Flächeneinheiten.','HumanMessage: Wie wäre es mit Seiten 4 und 3?', 'AIMessage: Die Fläche eines Rechtecks mit den Seiten 4 und 3 beträgt 12 Flächeneinheiten.']}
Agentische Systeme mit LangChain entwerfen