ebe9e913f5
- Агент с HumanInTheLoopMiddleware для подтверждения вызовов инструментов - Инструменты: get_weather, search_web - Цикл: invoke → __interrupt__ → approve/reject → Command(resume=...) - Поддержка approve и reject с сообщением при отказе - requirements.txt, .env.example, README.md
35 lines
1.2 KiB
Markdown
35 lines
1.2 KiB
Markdown
# Задание 5: Human-in-the-Loop через middleware
|
||
|
||
## Описание
|
||
|
||
Агент с `HumanInTheLoopMiddleware`: при каждом вызове инструмента
|
||
агент останавливается, в терминале показывается что он хочет сделать,
|
||
пользователь вводит решение (approve или reject),
|
||
после чего выполнение возобновляется через `Command(resume=...)`.
|
||
|
||
## Стек
|
||
|
||
- Python 3.10+
|
||
- langchain-core, langchain-openai, langgraph
|
||
|
||
## Установка
|
||
|
||
```bash
|
||
pip install -r requirements.txt
|
||
cp .env.example .env
|
||
# Заполнить OPENAI_API_KEY в .env
|
||
```
|
||
|
||
## Запуск
|
||
|
||
```bash
|
||
python main.py "Какая погода в Казани сегодня?"
|
||
```
|
||
|
||
## Архитектура
|
||
|
||
- `get_weather`, `search_web` — инструменты агента
|
||
- `HumanInTheLoopMiddleware` — middleware для подтверждения вызовов
|
||
- `run_agent_with_hitl()` — цикл: invoke → __interrupt__ → решения → resume
|
||
- Поддерживаются `approve` и `reject` для каждого вызова инструмента
|