# Планирующий агент ## Что делает проект В этом репозитории реализован **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`. ## Тесты В репозитории тестов нет, но скрипт содержит три демонстрационных задачи. Для проверки корректности можно запустить его и убедиться, что вывод соответствует описанию.