This repository contains a series of notebooks and scripts exploring the capabilities of LangGraph for building agentic workflows, from simple ReAct Agents to complex Multi-Agent Orchestration with memory and human-in-the-loop features.
The project is focused on learning and implementing various patterns of AI Agents using the LangGraph framework. It covers the transition from basic reasoning-acting loops to production-ready assistants.
This project is entirely based on the course "LangGraph: Orquestrando agentes e multiagentes" by Alura. The course, in Brazilian Portuguese, can be found here
- ReAct Agents: Implementing the Reasoning + Acting pattern for autonomous task execution.
- Nodes and Edges: Building graph-based workflows where nodes represent computation and edges represent the flow of control.
- State Management: Using global state to track information across agent turns.
- Agentic Search: Integrating external search capabilities (Tavily) for real-time information retrieval.
- Persistence (Memory): Implementing checkpointers to allow agents to maintain state across sessions.
- Human-in-the-Loop (HITL): Integrating human approval or correction steps in automated workflows.
- Multi-Agent Orchestration: Coordinating multiple specialized agents to solve complex tasks.
01_react_agent.ipynb: Introduction to the ReAct pattern.02_langgraph_components.ipynb: Deep dive into LangGraph nodes, edges, and state.03_agentic_search.ipynb: Implementing agents with search tools.04_persistence_and_streaming.ipynb: Adding memory using SQLite checkpointers.05_human_in_the_loop.ipynb: Adding breakpoints for human intervention.06_multiagent_orchestration.ipynb: Orchestrating a multi-agent team for content creation.07_mail_assistant.ipynb: A practical email triage assistant implementation.08_mail_assistant_with_memory_and_hitl.ipynb: Enhanced email assistant with full features.prompts.py: Centralized management of system and user prompts.
Create a .env file in the root directory and add your API keys:
GEMINI_API_KEY=your_gemini_api_key
TAVILY_API_KEY=your_tavily_api_key