2026-06-04 23:10:50 +00:00
2026-06-04 23:10:50 +00:00
2026-06-03 12:44:34 +00:00
2026-06-03 12:44:40 +00:00
2026-06-03 12:44:46 +00:00

SelfCorrecting LangGraph Agent

Overview

This project implements a selfcorrecting 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

  1. Start The graph begins at execute_task.
  2. Execute The tool runs. If it throws an exception, the state status becomes failed.
  3. Check attempts If the number of attempts is >= max_attempts, the graph ends with status max_attempts.
  4. Verify The LLM judges the result. If the verdict is success, the graph ends. If failed, it goes to handle_error.
  5. Retry handle_error clears the error and sets status to pending, then the graph loops back to execute_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.

S
Description
Экзамен: Самокорректирующийся агент
Readme 56 KiB
Languages
Python 100%