Files
task-6a1864fa-ekzamen-samok…/README.md
T

89 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Самокорректирующийся агент
## Описание проекта
В этом проекте реализован **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