Files
2026-05-28 17:43:07 +00:00

53 lines
2.5 KiB
Markdown
Raw Permalink 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 разбивает её на 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`.
## Тесты
В репозитории тестов нет, но скрипт содержит три демонстрационных задачи. Для проверки корректности можно запустить его и убедиться, что вывод соответствует описанию.