# LangGraph Reflection Demo This project demonstrates a simple LangGraph agent that: 1. Generates a short answer (5–10 sentences) to a user‑supplied question. 2. Critiques the answer for completeness, concreteness, and fluff. 3. If the critique indicates `needs_revision`, rewrites the answer up to a maximum number of rounds. ## Features - **Separate nodes** for drafting, reflecting, and rewriting. - **LLM‑based critic** that returns a verdict (`ok` or `needs_revision`) and 2–3 critique points. - **Controlled loop**: rewrites only if the verdict is `needs_revision` and the round count is below `max_rounds`. - **CLI interface**: pass a question via `-q` or input interactively. - **Configurable maximum rounds** via `-m` (default 2). ## Requirements - Python 3.10+ - `langgraph` - `langchain-openai` Install dependencies: ```bash pip install -r requirements.txt ``` ## Usage 1. **Set your OpenAI API key**: ```bash export OPENAI_API_KEY="your_api_key_here" ``` 2. **Run the demo**: ```bash python src/main.py -q "Explain the difference between a tool and a resource in MCP." ``` Or simply: ```bash python src/main.py ``` and enter the question when prompted. The script will output the final answer, the number of rounds performed, the verdict, and the critique points. ## Project Structure ``` src/ ├── main.py # CLI entry point ├── graph.py # LangGraph definition └── nodes.py # Node implementations requirements.txt README.md ``` ## License MIT License