diff --git a/README.md b/README.md index 6bd8f12..2e727ea 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,52 @@ -# task-6a1864fd8a94f887e50d4706 +# Планирующий агент +## Что делает проект + +В этом репозитории реализован **LangGraph**‑агент, который: +1. Принимает текст задачи. +2. С помощью LLM разбивает её на 3–6 конкретных шагов (узел *planning*). +3. Выполняет каждый шаг последовательно, собирая результаты (узел *execution*). +4. После завершения всех шагов выдаёт итоговый резюме. + +Пример работы: +``` +Task: Compare Python and JavaScript +Plan: +1. ... +2. ... +Execution results: +Result of step 1: ... +... +Final summary: ... +``` + +## Структура файлов +| Файл | Назначение | +|------|------------| +| `main.py` | Точка входа, реализация графа и демонстрация работы | +| `requirements.txt` | Зависимости проекта | +| `README.md` | Описание проекта и инструкции | + +## Установка +```bash +pip install -r requirements.txt +``` + +## Запуск +```bash +python main.py +``` + +### Примеры задач (внутри скрипта) +1. Сравнение Python и JavaScript. +2. Как создать простое приложение Flask. +3. Шаги развертывания Docker‑изображения Node.js в AWS Elastic Beanstalk. + +## Архитектура +- **State** – `PlanningState` хранит текущее состояние: исходную задачу, список шагов, индекс текущего шага и накопленные результаты. +- **Node `planning`** – вызывает LLM с запросом вернуть JSON‑массив шагов. Парсинг гарантирует надёжность. +- **Node `execution`** – берёт следующий шаг из списка, формирует строку результата (в реальном проекте здесь можно вызывать инструменты). +- **Conditional edge `should_continue`** – проверяет, остались ли ещё шаги; если нет – переход в `END`. + +## Тесты +В репозитории тестов нет, но скрипт содержит три демонстрационных задачи. Для проверки корректности можно запустить его и убедиться, что вывод соответствует описанию.