Update README.md

This commit is contained in:
2026-06-02 15:59:43 +00:00
parent 6e2f940e51
commit 845563ce9e
+37 -24
View File
@@ -1,13 +1,17 @@
# Selfcorrecting LangGraph Agent # SelfCorrecting LangGraph Agent
This repository contains a small demo of a **selfcorrecting LangGraph agent**. The agent receives a *task* string, executes it via an unreliable tool, then asks an LLM to judge the result. If the judge says the result is **failed**, the agent retries until it reaches a maximum number of attempts. This repository contains a minimal example of a **selfcorrecting agent** built with
[LangGraph](https://langchain-ai.github.io/langgraph/) and
[LangChain](https://langchain.com/). The agent:
## Features 1. **Receives a naturallanguage task** from the user.
2. **Executes the task** via an *unreliable* tool that fails 30% of the time.
3. **Asks an LLM** (OpenAI GPT4omini) to judge whether the result is correct.
4. **Retries automatically** until the judge says *success* or the maximum number
of attempts is reached.
- **Unreliable tool** 30% chance of raising an exception. The code demonstrates how to build a small state machine with LangGraph, how to
- **LLM judge** forces the model to answer only `success` or `failed`. use a LLM as a *judge*, and how to implement retry logic.
- **Retry logic** automatically retries until success or a maximum number of attempts.
- **LangGraph** lowlevel graph with three nodes: `execute_task`, `verify_result`, `handle_error`.
## Setup ## Setup
@@ -18,34 +22,43 @@ source venv/bin/activate # Windows: venv\Scripts\activate
# Install dependencies # Install dependencies
pip install -r requirements.txt pip install -r requirements.txt
# Set your OpenAI API key
export OPENAI_API_KEY=YOUR_KEY # Windows: set OPENAI_API_KEY=YOUR_KEY
``` ```
## Running the Agent ## Running the agent
```bash ```bash
python agent.py python agent.py "Вычисли 2+2"
``` ```
You will be prompted to enter a task. The agent will then perform the task, verify the result, and retry if necessary. Example output: You can also run the script without arguments it will prompt you for a task.
## Example output
``` ```
Selfcorrecting LangGraph agent demo Введите задачу: 2+2
Enter a task: 2+2 Попытка 1: результат Result of 2+2
Попытка 2: результат Result of 2+2
--- Result --- Итог:
Task: 2+2 Успех за 2 попыток. Результат: Result of 2+2
Attempts: 2
Status: success
Result: 22
``` ```
## Project Structure The exact number of attempts may vary because the tool fails randomly.
- `agent.py` main implementation. ---
- `README.md` this documentation.
- `requirements.txt` Python dependencies.
## Notes ### How it works
- The LLM used is OpenAI's `gpt-4o-mini`. If you prefer Ollama, change the `ChatOpenAI` import to `ChatOllama` and adjust the model name accordingly. - **State** `AgentState` tracks the task, result, number of attempts, status and
- The unreliable tool is a toy example; replace it with a real tool for production use. any error.
- **Nodes** `execute_task`, `verify_result`, `handle_error`.
- **LLM judge** a simple prompt that forces the model to answer only
"success" or "failed".
- **Graph** a conditional router that loops back to `execute_task` on failure
until the maximum attempts are reached.
Feel free to adapt the tool, the judge prompt, or the retry policy to fit your
needs.