main
Самокорректирующийся агент
Описание проекта
Проект реализует LangGraph‑агента, который:
- Выполняет задачу через инструмент (или набор инструментов).
- Проверяет результат с помощью LLM‑судьи (
LLM-as-judge). - При неудаче повторяет попытку до тех пор, пока не получит
successили не исчерпает заданный лимитmax_attempts.
Это демонстрация автоматической самопроверки и ретрая в стиле HITL (Human‑in‑the‑Loop) без участия человека.
Стек технологий
- Python 3.10+
langgraph– библиотека для построения графов агентов.langchain-openaiилиlangchain-ollama– LLM‑интеграция (OpenAI API либо локальный Ollama).
Установка зависимостей
# Создайте виртуальное окружение (рекомендуется)
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# Установите зависимости
pip install langgraph langchain-openai # или langchain-ollama
Важно
Если вы используетеlangchain-openai, убедитесь, что переменная окруженияOPENAI_API_KEYустановлена:export OPENAI_API_KEY="sk-..."
Запуск проекта
1. Основной скрипт main.py
Скрипт запускает агент с заданной задачей и выводит результат.
python main.py
Внутри main.py задаётся:
task: исходная задача (строка).max_attempts: максимальное число попыток.unreliable_tool: пример инструмента, который иногда генерирует ошибку.
2. Пример использования в интерактивном режиме
from main import run_agent
result = run_agent(
task="Напиши короткую историю о путешествии робота",
max_attempts=5,
)
print(result) # {"status": "success", "attempts": 3, ...}
run_agent– публичная функция изmain.py, которую можно импортировать в другие скрипты.
Пример вывода
Attempt 1: Выполнение задачи...
Result: "Робот отправился в космос..."
Проверка результата... Неудача. Ошибка: Недостаточно деталей.
Повторяем попытку...
Attempt 2: Выполнение задачи...
Result: "Робот отправился в космос, но забыл зарядку..."
Проверка результата... Успех!
Как это работает
- execute_task – вызывает
unreliable_tool(или любой другой инструмент) и сохраняет результат. - verify_result – LLM оценивает строку результата как
successилиfailed. - Если
failedи попыток осталось, handle_error увеличивает счётчик и переходит кexecute_taskснова. - После достижения
max_attemptsагент завершается со статусомmax_attempts.
Расширение проекта
- Добавьте свои инструменты в список
tools. - Настройте более сложные правила проверки результата, используя собственный шаблон LLM‑судьи.
- Интегрируйте с другими LLM (Claude, Gemini) через
langchain-openai/langchain-google-genai.
Лицензия
MIT License – свободно используйте и модифицируйте этот код для своих проектов.
Ссылка на репозиторий: https://github.com/your-username/self-correcting-agent (замените на актуальную)
Description
Languages
Python
100%