This project implements a dynamic, memory-enabled conversational agent that interacts over multiple turns, reasons through ReAct, and streams its thought process using LangGraph and GPT-4o-mini. Built within a Jupyter Notebook, the assistant simulates natural conversation with embedded search capabilities and message-based memory.

The chatbot uses LangChain’s tool-calling logic with Tavily for real-time web answers, scoped thread_id sessions for memory isolation, and a LangGraph agent executor to perform reasoning and retrieval steps transparently.

⸻

Features

⸻

Key Insight

Chatbots become far more powerful when they reason step by step, track what’s been said, and know when to search. This project demonstrates that stateful, tool-augmented chat interfaces are the future of intelligent assistants.

View the source code on GitHub

View on GitHub →