Цель
Продолжать диалог между отдельными запусками программы, изолировать сессии и сохранять проверяемый журнал действий.
Что хранится
- сообщения пользователя и финальные ответы агента;
- ID сессии;
- вызовы инструментов и их результаты;
- число шагов и объём использованной истории.
Данные записываются в data/private/agent_memory.sqlite3. Папка data/private/ исключена из Git.
Первый запрос
uv run python -m agent_lab.memory_agent \
--session training \
"Запомни: меня интересует заказ DEMO-1001."Продолжение сессии
uv run python -m agent_lab.memory_agent \
--session training \
"Какой у него статус и сколько стоят две штуки?"Во втором запуске программа загрузит историю сессии training, поэтому модель сможет восстановить ID заказа.
Просмотр данных
uv run python -m agent_lab.memory_agent --session training --show-history
uv run python -m agent_lab.memory_agent --session training --show-auditОчистка
Удаление ограничено одной явно названной сессией:
uv run python -m agent_lab.memory_agent --session training --clearОграничения
- в модель передаётся не более 10 последних сообщений по умолчанию;
- допустимо установить лимит истории только от 1 до 50;
- agent loop ограничен четырьмя шагами;
- ID сессии содержит только латинские буквы, цифры,
_и-, максимум 64 символа; - разные сессии не видят историю друг друга;
- память локальная и не синхронизируется между компьютерами.
Важно
Память агента — не изменение модели. Перед каждым запросом программа извлекает прошлые сообщения из SQLite и снова передаёт их модели как контекст.
Реальные секреты, пароли, платёжные данные и лишние персональные сведения сохранять в такую память нельзя.
Тесты
uv run pytestТесты используют временную SQLite-базу и проверяют изоляцию сессий, лимит истории, audit log, очистку и недопустимые ID.