Concevoir des systèmes agentiques avec LangChain
Dilini K. Sumanapala, PhD
Founder & AI Engineer, Genverv, Ltd.
L’aire d’un rectangle de côtés 5 et 7 est 35 unités carrées.
Utilisateur : « Quelle est l’aire d’un rectangle de côtés 5 et 7 ? »
tools = [rectangle_area] query = "Quelle est l’aire d’un rectangle de côtés 14 et 4 ?"# Create the ReAct agent app = create_react_agent(model, tools)# Invoke the agent with a query and store the messages response = app.invoke({"messages": [("human", query)]})# Define and print the input and output messages print({ "user_input": query, "agent_output": response["messages"][-1].content})
{'user_input': 'Quelle est l’aire d’un rectangle de côtés 14 et 4 ?',
'agent_output': 'L’aire d’un rectangle de côtés 14 et 4 est 56
unités carrées.'}
{'user_input': 'Et pour des côtés 12 et 14 ?','agent_output': ['HumanMessage: Quelle est l’aire d’un rectangle de côtés 5 et 7 ?', 'AIMessage: L’aire d’un rectangle de côtés 5 et 7 est 35 unités carrées.', 'HumanMessage: Et pour des côtés 12 et 14 ?', 'AIMessage: L’aire d’un rectangle de côtés 12 et 14 est 168 unités carrées.','HumanMessage: Et pour des côtés 12 et 14 ?', 'AIMessage: L’aire d’un rectangle de côtés 12 et 14 est 168 unités carrées.']}
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 = "Et pour des côtés 4 et 3 ?"

from langchain_core.messages import HumanMessage, AIMessage message_history = messages["messages"]new_query = "Et pour des côtés 4 et 3 ?"# Invoke the app with the full message history messages = app.invoke({"messages": message_history + [("human", new_query)]})

# Extract the human and AI messages
filtered_messages = [msg for msg in
messages["messages"] if
isinstance(msg,
(HumanMessage,
AIMessage))
and msg.content.strip()]

# Extract the human and AI messages filtered_messages = [msg for msg in messages["messages"] if isinstance(msg, (HumanMessage, AIMessage)) and msg.content.strip()]# Format and print the final result print({ "user_input": new_query, "agent_output": [f"{msg.__class__.__name__}: {msg.content}" for msg in filtered_messages]})

{'user_input': 'Et pour des côtés 4 et 3 ?','agent_output': ['HumanMessage: Quelle est l’aire d’un rectangle de côtés 14 et 4 ?', 'AIMessage: L’aire d’un rectangle de côtés 14 et 4 est 56 unités carrées.', 'HumanMessage: Et pour des côtés 4 et 3 ?', 'AIMessage: L’aire d’un rectangle de côtés 4 et 3 est 12 unités carrées.','HumanMessage: Et pour des côtés 4 et 3 ?', 'AIMessage: L’aire d’un rectangle de côtés 4 et 3 est 12 unités carrées.']}
Concevoir des systèmes agentiques avec LangChain