# LangGraph Agent with Memory and Tool Confirmation This project demonstrates a simple conversational agent built with **LangGraph** that: - **Remembers** the conversation history across turns using an in‑memory checkpoint. - **Pauses** before invoking any tool, asking the user for confirmation. - Uses the **Rich** library for pretty console output. ## Prerequisites - Python 3.10+ - An OpenAI API key (set as the `OPENAI_API_KEY` environment variable). ## Installation ```bash # Clone the repository (or copy the files) git clone https://github.com/yourusername/langgraph-agent.git cd langgraph-agent # Create a virtual environment (optional but recommended) python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate # Install dependencies pip install -r requirements.txt ``` ## Usage ```bash python src/main.py ``` You will see a prompt: ``` Start chat. Type 'exit' to quit. You: ``` Type any message. If the agent decides to use a tool (e.g., the `echo` tool), it will pause and ask: ``` Agent wants to call tool: echo({"text":"Hello"}) Разрешить? (Y/n): ``` - Type `Y` or press Enter to allow the tool to run. - Type `n` to cancel the tool call. The conversation history is preserved across turns, so the agent can refer back to earlier messages. ## Customizing - **Tools**: Add more tools by defining functions decorated with `@tool` from `langchain.tools`. - **Memory**: Replace `MemorySaver()` with a persistent checkpoint (e.g., `RedisSaver`) for long‑term storage. - **Prompt**: Modify the `system_prompt` in `create_agent` to change the agent’s behavior. ## License MIT License