Files
task_6a1d75d1fd30e81cf3126a…/README.md
T
2026-06-04 16:16:27 +00:00

2.0 KiB
Raw Blame History

LangGraph DraftCritiqueRewrite Agent

Overview

This project implements a small LangGraph agent that:

  1. Generates a short answer (510 sentences) to a user question.
  2. Critiques the draft for completeness, concreteness and absence of filler.
  3. If the critique says needs_revision, rewrites the draft incorporating the critique.
  4. Loops until the verdict is ok or a maximum of two rewrites is reached.
  5. Provides a simple CLI entry point.

The implementation is fully selfcontained and requires only a modern Python interpreter (3.10+).

Installation

# Create and activate 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

Dependencies

  • langgraph
  • langchain-openai
  • langchain-ollama

Configuration

The agent uses an LLM via the langchain_openai.ChatOpenAI wrapper. It supports both OpenAI and Ollama providers.

Variable Description Example
OPENAI_API_KEY API key for OpenAI. export OPENAI_API_KEY=sk-…
OLLAMA_BASE_URL Base URL for a local Ollama instance. export OLLAMA_BASE_URL=http://localhost:11434/v1

If neither variable is set the agent falls back to the default model gpt-4o-mini (this will require network access to OpenAI).

Usage

Run the CLI entry point:

python agent.py

You will be prompted to type a question. The agent will then display the final draft, the critique, and the verdict.

Example

$ python agent.py
Enter your question: What is the capital of France?

Final Result:
Draft: The capital of France is Paris.
Critique: ok
Verdict: ok

Development Notes

  • The graph uses END from langgraph for terminal states.
  • The reflect node parses a JSON response, falling back to a default verdict if parsing fails.
  • The rewrite node increments the round counter.
  • All LLM calls are wrapped in try/except blocks to surface errors clearly.

License

MIT License.