Files

4.2 KiB
Raw Blame History

Практическое задание №3 – Память и подтверждение действий

Описание проекта

В этом задании вы дорабатываете агента из предыдущих практических работ.
Новые возможности:

  • Память разговора – агент запоминает все сообщения в рамках одного диалога.
  • Подтверждение перед вызовом инструмента – пользователь подтверждает каждый запрос к инструменту.

Для красивого вывода используется библиотека rich.

Структура репозитория

project/
├── solution.py          # Основной скрипт с реализацией агента
└── README.md            # Это файл

Установка зависимостей

# Создайте виртуальное окружение (рекомендуется)
python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate

# Установите все необходимые пакеты
pip install langchain-openai langgraph rich

Важно
Для работы с ChatOpenAI вам понадобится переменная окружения OPENAI_API_KEY.

export OPENAI_API_KEY="sk-..."

Запуск проекта

1. Откройте терминал и перейдите в корневую папку проекта.

cd /путь/к/project

2. Активируйте виртуальное окружение (если не сделали это ранее).

source .venv/bin/activate   # Windows: .venv\Scripts\activate

3. Запустите скрипт solution.py.

python solution.py

Скрипт запускает интерактивный диалог с агентом.
Введите сообщение, после чего агент предложит вам подтвердить вызов инструмента (в данном случае – эхо‑инструмент).
Нажмите Y для подтверждения или N для отмены.


Пример использования

$ python solution.py
🤖  Здравствуйте! Чем могу помочь? 
User: Какой сегодня день недели?
🤖  (подтверждение) Вы хотите вызвать инструмент echo_tool с аргументом {"message": "Какой сегодня день недели?"}?
Y
✅  Эхо: Какой сегодня день недели?
🤖  Что ещё интересует вас?
  • 🤖 вывод агента.
  • User: ваш ввод.
  • – результат работы инструмента после подтверждения.

Как это работает

  1. MemorySaver сохраняет все сообщения в состоянии графа, позволяя агенту «помнить» историю диалога.
  2. Параметр interrupt_before=['tools'] заставляет агент остановиться перед каждым вызовом инструмента и запросить подтверждение от пользователя.
  3. Библиотека rich используется для красивого форматирования вывода в консоли.

Что дальше

  • Добавьте собственные инструменты (например, поиск в интернете, вычисления и т.д.).
  • Измените system_prompt, чтобы агент отвечал в нужном стиле.
  • Попробуйте запустить несколько диалогов с разными thread_id – они будут независимыми.

Поддержка

Если возникли вопросы или проблемы, откройте issue в репозитории.