From f7e1fd473d12d77197d1f275fdaf87a9fd3e3137 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D1=80=D0=B8=D1=8F=20=D0=91=D0=B5=D1=80=D0=B4?= =?UTF-8?q?=D0=BD=D0=B8=D0=BA=D0=BE=D0=B2=D0=B0?= Date: Thu, 28 May 2026 16:00:28 +0000 Subject: [PATCH] =?UTF-8?q?=D0=AD=D0=BA=D0=B7=D0=B0=D0=BC=D0=B5=D0=BD:=20?= =?UTF-8?q?=D0=A1=D0=B0=D0=BC=D0=BE=D0=BA=D0=BE=D1=80=D1=80=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D0=B8=D1=80=D1=83=D1=8E=D1=89=D0=B8=D0=B9=D1=81=D1=8F=20?= =?UTF-8?q?=D0=B0=D0=B3=D0=B5=D0=BD=D1=82:=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 88 insertions(+), 2 deletions(-) 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