df8fc357f05e5dc5091de8990760f2aca8f3c3a0
Self‑Correcting LangGraph Agent
Overview
This project implements a self‑correcting agent using LangGraph. The agent performs a task, asks an LLM to judge the result, and retries automatically until the result is judged success or the maximum number of attempts is reached.
The key components are:
| Component | Purpose |
|---|---|
AgentState |
Typed state that tracks the task, result, attempts, status, error and max_attempts |
unreliable_tool |
Simulates a tool that fails 30 % of the time (used to demonstrate retry logic) |
verify_result |
LLM judge that must reply with the single word success or failed |
handle_error |
Resets the error and sets the status back to pending for a retry |
execute_task |
Runs the unreliable tool and updates the state |
create_agent |
Builds the LangGraph with the above nodes and a retry loop |
create_agent_executor |
Compiles the graph into a runnable executor |
| CLI | Run the agent from the command line: python agent.py "2+2" --max 5 |
How It Works
- Start – The graph begins at
execute_task. - Execute – The tool runs. If it throws an exception, the state status becomes
failed. - Check attempts – If the number of attempts is >=
max_attempts, the graph ends with statusmax_attempts. - Verify – The LLM judges the result. If the verdict is
success, the graph ends. Iffailed, it goes tohandle_error. - Retry –
handle_errorclears the error and sets status topending, then the graph loops back toexecute_task.
Usage
# Install dependencies
pip install -r requirements.txt
# Run the agent
python agent.py "2+2" --max 5
The console will show the final state, e.g.:
--- Final State ---
result: 4
attempts: 2
status: success
error: None
max_attempts: 5
Requirements
langchain>=1.0.0
langgraph>=1.0.0
langchain-openai>=1.0.0
Note
The agent uses the OpenAI API. Make sure the environment variable OPENAI_API_KEY is set.
Description
Languages
Python
100%