Настройка LLM и AI-агентов под задачу/aka-gst

Эксперимент 4 · 3 мин

Лабораторная работа 4: состояние, память и ограничения

Содержание раздела
  1. Цель
  2. Что хранится
  3. Первый запрос
  4. Продолжение сессии
  5. Просмотр данных
  6. Очистка
  7. Ограничения
  8. Важно
  9. Тесты

Цель

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

Что хранится

  • сообщения пользователя и финальные ответы агента;
  • ID сессии;
  • вызовы инструментов и их результаты;
  • число шагов и объём использованной истории.

Данные записываются в data/private/agent_memory.sqlite3. Папка data/private/ исключена из Git.

Первый запрос

bash
uv run python -m agent_lab.memory_agent \
  --session training \
  "Запомни: меня интересует заказ DEMO-1001."

Продолжение сессии

bash
uv run python -m agent_lab.memory_agent \
  --session training \
  "Какой у него статус и сколько стоят две штуки?"

Во втором запуске программа загрузит историю сессии training, поэтому модель сможет восстановить ID заказа.

Просмотр данных

bash
uv run python -m agent_lab.memory_agent --session training --show-history
uv run python -m agent_lab.memory_agent --session training --show-audit

Очистка

Удаление ограничено одной явно названной сессией:

bash
uv run python -m agent_lab.memory_agent --session training --clear

Ограничения

  • в модель передаётся не более 10 последних сообщений по умолчанию;
  • допустимо установить лимит истории только от 1 до 50;
  • agent loop ограничен четырьмя шагами;
  • ID сессии содержит только латинские буквы, цифры, _ и -, максимум 64 символа;
  • разные сессии не видят историю друг друга;
  • память локальная и не синхронизируется между компьютерами.

Важно

Память агента — не изменение модели. Перед каждым запросом программа извлекает прошлые сообщения из SQLite и снова передаёт их модели как контекст.

Реальные секреты, пароли, платёжные данные и лишние персональные сведения сохранять в такую память нельзя.

Тесты

bash
uv run pytest

Тесты используют временную SQLite-базу и проверяют изоляцию сессий, лимит истории, audit log, очистку и недопустимые ID.