diff --git a/README.md b/README.md index a508c2c..d81173f 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,89 @@ -# task-6a1864fa-ekzamen-samokorrektiruyus +# Самокорректирующийся агент -Решения домашних заданий \ No newline at end of file +## Описание проекта +В этом проекте реализован **LangGraph**‑агент, который: +1. Выполняет задачу через заданный инструмент. +2. Проверяет результат с помощью LLM (LLM‑as‑judge). +3. При неудаче повторяет попытку до тех пор, пока результат не будет признан успешным + или пока не исчерпается лимит `max_attempts`. + +Это демонстрация автоматической самопроверки и ретрая без участия человека. + +## Стек технологий + +- Python 3.10+ +- `langgraph` – библиотека для построения графов агентов. +- `langchain-openai` (или `langchain-ollama`) – подключение к LLM. + +```bash +pip install langgraph langchain-openai +``` + +## Структура проекта + +``` +├── main.py # точка входа, содержит всю логику агента +└── README.md # это файл +``` + +### Файл `main.py` + +- **AgentState** – тип состояния графа. +- **execute_task** – узел, который вызывает инструмент (в примере используется `unreliable_tool`). +- **verify_result** – LLM‑ас‑джюри, оценивает результат как `success` или `failed`. +- **handle_error** – увеличивает счётчик попыток и готовит повторную попытку. +- Цикл: `START → execute_task → verify_result → (success|failed) → handle_error?`. + +## Установка зависимостей + +```bash +# Создайте виртуальное окружение (рекомендовано) +python -m venv .venv +source .venv/bin/activate # Windows: .venv\Scripts\activate + +# Установите зависимости +pip install langgraph langchain-openai +``` + +## Запуск проекта + +```bash +python main.py +``` + +При запуске агент выполнит задачу, проверит результат и при необходимости повторит попытку. В консоли будет выводить статус каждой итерации. + +### Пример вывода + +``` +Attempt 1: Task executed successfully. +Verification result: failed +Retrying... (attempt 2) + +Attempt 2: Tool raised an error. +Error: Simulated tool failure. +Retrying... (attempt 3) + +Attempt 3: Task executed successfully. +Verification result: success +Agent finished with status: success +``` + +## Как использовать + +1. **Измените задачу** – в `main.py` найдите строку + ```python + task = "Напиши короткую историю о путешествии робота." + ``` + и замените её на свою. +2. **Настройте LLM** – при необходимости поменяйте провайдера (OpenAI, Ollama и т.д.) в `ChatOpenAI(...)`. +3. **Установите лимит попыток** – задайте нужное значение `max_attempts` в состоянии графа. + +## Тестовый инструмент + +В примере используется `unreliable_tool`, который случайно генерирует ошибку 30 % времени, чтобы продемонстрировать работу ретрая. Вы можете заменить его на любой реальный инструмент из LangChain. + +--- + +**Автор:** [Ваше имя] +**Дата:** 2026‑05‑28 \ No newline at end of file