44 lines
1.7 KiB
Markdown
44 lines
1.7 KiB
Markdown
# Human‑in‑the‑Loop via Middleware
|
||
|
||
## Описание
|
||
|
||
Решение задачи «Human‑in‑the‑Loop через middleware».
|
||
|
||
* Создан агент с `HumanInTheLoopMiddleware`.
|
||
* При вызове инструмента `get_weather` агент останавливается и запрашивает подтверждение.
|
||
* В консоли выводятся имя инструмента, аргументы и описание (если есть).
|
||
* Пользователь вводит `a` – approve, `r` – reject (с возможностью указать причину) или `e` – edit (необязательно).
|
||
* После всех решений агент возобновляется через `Command(resume={"decisions": …})`.
|
||
* Цикл продолжается до тех пор, пока не будет выполнен весь диалог.
|
||
|
||
## Установка
|
||
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
## Запуск
|
||
|
||
```bash
|
||
python main.py "Какая погода в Казани сегодня?"
|
||
```
|
||
|
||
Если аргумент не передан, будет использовано сообщение по умолчанию.
|
||
|
||
## Пример работы
|
||
|
||
```
|
||
$ python main.py "Какая погода в Казани сегодня?"
|
||
|
||
--- Подтверждение ---
|
||
Инструмент: get_weather
|
||
Аргументы: {'city': 'Казань', 'date': 'сегодня'}
|
||
a = approve, r = reject, e = edit: a
|
||
|
||
Агент: The weather in Казань on сегодня is sunny with a high of 25°C.
|
||
```
|
||
|
||
## Тесты
|
||
|
||
Тесты отсутствуют, но можно проверить работу вручную, как показано выше.
|