Память агента: личная пятислойка
Личная эвристика
Это не общепринятый стандарт, а моя рабочая карта ответственности. Названия помогают не смешивать состояние текущей задачи, события, сведения о пользователе, инструкции и документы.
Пять слоёв
| Слой | Содержание | Примеры хранения | Главный риск |
|---|---|---|---|
| L1. Рабочий контекст | информация, переданная модели прямо сейчас | сообщения, выбранные фрагменты, tool results | переполнение и потеря важного |
| L2. Состояние и эпизоды | ход конкретных runs и подтверждённые события | state store, checkpoints, журнал действий | повтор side effects и ложная история |
| L3. Семантическая память | устойчивые факты и предпочтения пользователя | профиль, БД памяти, Mem0-подобный слой | устаревание, приватность, ложные выводы |
| L4. Процедурная память | правила «как выполнять» | system instructions, policies, skills | конфликт инструкций и скрытое влияние |
| L5. Корпус знаний | документы и внешние факты | Obsidian, search index, RAG, GraphRAG | слабый retrieval и недоверенные данные |
Что не считать памятью
- Context window — лимит входа модели, а не хранилище между сессиями.
- Prompt cache — оптимизация повторной обработки одинакового префикса, а не источник воспоминаний.
- Weights модели — обученные параметры, но не доступная приложению запись конкретного события.
- Полный лог — сырой архив; памятью он становится после отбора, маркировки и управляемого извлечения.
Контур памяти
У каждого слоя должны быть правила:
- Запись: что достаточно важно и подтверждено для сохранения?
- Происхождение: откуда факт, кем и когда он создан?
- Извлечение: для какой задачи и по какому фильтру он возвращается?
- Консолидация: как объединяются дубли и разрешаются противоречия?
- Забывание: когда истекает срок, кто может удалить или исправить запись?
- Проверка: как обнаружить устаревание и memory poisoning?
Практические правила
- Не сохранять вывод модели как факт без источника или подтверждения пользователя.
- Разделять слова пользователя, наблюдение инструмента и гипотезу модели.
- Хранить
created_at,updated_at, provenance и область применимости. - Извлекать минимально достаточный контекст, а не всю историю.
- Давать пользователю возможность просмотреть, исправить и удалить личную память.
- Не записывать секреты, если они не нужны для специально защищённого хранилища.
Почему это полезно
Карта отвечает на инженерные вопросы: что нужно модели сейчас, что произошло в run, что известно о пользователе, какие правила действуют и где лежит источник истины. Она не требует, чтобы все слои были отдельными продуктами или базами данных.