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 →