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