Экзамен: Самокорректирующийся агент: README.md

This commit is contained in:
2026-05-28 16:00:28 +00:00
parent 85ff7d4073
commit f7e1fd473d
+88 -2
View File
@@ -1,3 +1,89 @@
# task-6a1864fa-ekzamen-samokorrektiruyus
# Самокорректирующийся агент
Решения домашних заданий
## Описание проекта
В этом проекте реализован **LangGraph**‑агент, который:
1. Выполняет задачу через заданный инструмент.
2. Проверяет результат с помощью LLM (LLMasjudge).
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.
---
**Автор:** [Ваше имя]
**Дата:** 20260528