78dfe4666d7e2ee9241c06f4b6ac23a17fa8747c
Планирующий агент (LangGraph)
Экзаменационное практическое задание – собрать LangGraph‑агента с отдельным этапом планирования.
Сначала LLM разбивает задачу на шаги, затем выполняет их по очереди и выдаёт итоговый ответ.
📖 Описание
- Язык: Python 3.10+
- Библиотеки:
langgraph– граф с прерываниями и чекпоинтеромlangchain+langchain-openai– вызов LLMquestionary– интерактивный ввод в консоли
Важно: проект рассчитан на использование модели OpenAI.
Если вы хотите использовать другую модель, настройтеChatOpenAIвsolution.py.
⚙️ Установка
# Клонируйте репозиторий
git clone https://github.com/your-username/planning-agent.git
cd planning-agent
# Создайте виртуальное окружение (рекомендуется)
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# Установите зависимости
pip install langgraph langchain langchain-openai questionary
API‑ключ
Установите переменную окруженияOPENAI_API_KEYс вашим ключом OpenAI:
export OPENAI_API_KEY="sk-..."
🚀 Запуск
python solution.py
Что происходит
- Ввод задачи – пользователь вводит задачу, которую нужно решить.
- Планирование – LLM генерирует список шагов (
plan). - Выполнение – каждый шаг выполняется последовательно, пользователь может просматривать результаты.
- Итог – после выполнения всех шагов выводится финальный ответ.
📄 Пример использования
$ python solution.py
Введите задачу: Напиши план по изучению Python за 3 месяца
План:
1. Изучить основы синтаксиса
2. Практиковаться с проектами
3. Изучить продвинутые темы
4. Пройти сертификацию
Выберите шаг для выполнения (1-4): 1
Результат шага 1: ...
Выберите шаг для выполнения (1-4): 2
Результат шага 2: ...
...
Итоговый ответ:
...
📂 Структура проекта
.
├── solution.py # Основной скрипт
├── README.md # Это файл
└── requirements.txt # (опционально) список зависимостей
🔧 Настройка
- Параметры модели – можно изменить в
solution.py(например,temperature,max_tokens). - Чекпоинтер – по умолчанию используется
SqliteSaver. Путь к базе можно задать черезSqliteSaver.from_conn_str("sqlite:///graph_state.db"). - Интерактивность –
questionaryобеспечивает простое меню выбора. Если нужно убрать интерактивность, заменитеselectиtextна обычныйinput().
📜 Лицензия
MIT © 2026
---```
Description
Languages
Python
100%