Designing Agentic Systems with LangChain
Dilini K. Sumanapala, PhD
Founder & AI Engineer, Genverv, Ltd.
User: Where is the Congo?
Agent: Let me check some details for you...
Agent: AIMessage([Tool Call to Google Maps] Searching for information on "the Congo")
Agent: The Democratic Republic of Congo is a country in Central Africa.
# Define a function to execute the chatbot based on user input def stream_graph_updates(user_input: str):
# Start streaming events from the graph with the user's input for event in graph.stream({"messages": [("user", user_input)]}):
# Retrieve and print the chatbot node responses for value in event.values(): print("Agent:", value["messages"])
# Define the user query and run the chatbot user_query = "Who is Mary Shelley?" stream_graph_updates(user_query)
Agent: [AIMessage(content='Mary Shelley (1797-1851) was an English novelist...
...best known for her groundbreaking work in the Gothic genre, particularly for her novel "Frankenstein; or, The Modern Prometheus," published in 1818. This novel is often considered one of the earliest examples of science fiction and explores themes of creation, responsibility, and the nature of humanity through the story of Victor Frankenstein, a scientist who creates a sentient creature in an unorthodox experiment...',
response_metadata={'finish_reason': 'stop', 'model_name': 'gpt-4o-mini-...')]
Agent: [AIMessage(content='Judith
Love Cohen was an American aerospace
engineer, and worked on various
space missions, including the Apollo
program... Cohen was also the mother
of actor and writer Adam Cohen,
who has spoken about her influence on
his life and career.
additional_kwargs={},
response_metadata={'finish_reason':
'stop', 'model_name':
'gpt-4o-mini-...)
# Import modules for chatbot diagram from IPython.display import Image, display
# Try generating and displaying # the graph diagram try: display(Image(graph.get_graph() .draw_mermaid_png()))
# Return an exception if necessary except Exception: print("Additional dependencies required.")
Designing Agentic Systems with LangChain