Память как запись, а не кэш
Кэш оптимизирован под процент попаданий. Запись оптимизирована под подотчётность. Большинство систем памяти агентов построены как кэши, а затем от них требуют поведения записей — вот почему они проваливают аудиты, которые никогда не были рассчитаны на прохождение.
Каждый элемент, который агент сохраняет, должен нести четыре поля до записи: источник (какое взаимодействие, документ или tool call его породили), метку времени (когда он был наблюдён, а не когда он был векторизован), владельца (какой пользователь, тенант или сервис за него отвечает) и причину хранения (конкретное будущее решение, которое он должен информационно поддержать). Без этих четырёх хранилище — это груда векторов без защитимого смысла. Retrieval, возвращающий предпочтение, бесполезен при проверке, если вы не можете сказать, откуда это предпочтение взялось и действует ли оно до сих пор.
Резюме теряют происхождение быстрее всего. Когда длинный эпизодический след сжимается в абзац, шаг сжатия отбрасывает ссылки обратно к исходным ходам. Резюме — это артефакт, который с наибольшей вероятностью будет извлечён и который труднее всего защитить позже, потому что доказательства его утверждений уже выброшены. Поэтому резюме следует рассматривать как производную запись с собственным указателем происхождения, а не как замену следа, из которого оно возникло. Если указатель отсутствует, резюме — не память; это утверждение без атрибуции.
Политика хранения на практике
Первое разделение, которое нужно провести, — между эпизодическими следами и долговечными фактами. Эпизодические следы — это то, что произошло во время запуска: tool calls, промежуточные рассуждения, извлечённые документы, частичные результаты. Долговечные факты — это то, что должно пережить запуск: подтверждённое предпочтение, разрешённый идентификатор, политика, которая была применена и принята. Только вторая категория принадлежит долговременной памяти. Всё остальное должно быть ограничено сессией и отброшено при её закрытии.

Срок действия по умолчанию, повышение статуса по проверке. Новые элементы входят с коротким временем жизни и низким весом доверия. Повышение до долговечного статуса — это явное событие, а не автоматическое. На практике это означает путь записи, который выглядит так:
memory.write(
key="shipping.preference",
value="carrier_a",
source="interaction:4821",
observed_at="2025-01-14T09:12:00Z",
owner="tenant:acme",
reason="applied in checkout flow",
ttl="P30D",
trust="provisional",
)
Поле trust — это рычаг. Предварительные элементы можно извлекать для контекста, но нельзя использовать для принятия необратимых решений. Повышение до confirmed требует второго наблюдения или явного действия пользователя, и само повышение записывается. Это честный компромисс: более строгие правила повышения снижают частоту, с которой агент, как кажется, помнит, потому что меньше элементов проходят планку. Альтернатива — хранилище, которое уверенно вспоминает то, что никогда не было правдой.
Удаление должно распространяться на производные резюме и embeddings, а не только на основное хранилище. Именно здесь большинство реализаций дают утечку. Запись удаляется из key-value хранилища, но резюме, которое её цитировало, остаётся, и embedding, кодирующий её смысл, остаётся в векторном индексе. С точки зрения агента факт всё ещё присутствует, потому что retrieval работает с производными артефактами. Распространение должно быть операцией первого класса: когда запись удаляется, каждое резюме, которое на неё ссылается, аннулируется, а каждый embedding, производный от неё, удаляется или пересчитывается. Без этого удаление — жест, а не гарантия.
Устаревшие предпочтения уверенно применяются к новым контекстам
Предпочтение, наблюдённое в одном контексте, не является политикой для всех контекстов. Агент, который помнит, что пользователь предпочитает короткие ответы, может применить это предпочтение к юридической проверке, где важна полнота. Ошибка не в том, что память неверна; ошибка в том, что у памяти нет области действия. Происхождение здесь помогает, потому что источник и метка времени позволяют слою retrieval спросить, было ли предпочтение сформировано в сопоставимых условиях. Память без области действия будет применяться везде, и агент б

Смягчение состоит в том, чтобы привязать область действия к каждому долговечному факту: домен, тип задачи и условия, при которых он был наблюдён. Затем retrieval фильтрует по области действия перед ранжированием по релевантности. Это снижает полноту, и эта цена реальна. Агент с ограниченной областью действия иногда не применит предпочтение, которое человек обобщил бы правильно. Альтернатива — память без области действия — порождает ошибки, которые труднее обнаружить, потому что они приходят с полной уверенностью агента за ними.
Утечка между тенантами
Когда одно пространство имён памяти обслуживает многих пользователей, retrieval по семантическому сходству в конечном итоге покажет данные одного тенанта другому. Это не тонкий сбой; это структурный. Поиск по сходству не имеет понятия тенантности, если тенантность не обеспечена до поиска, а не после него. Фильтрация результатов после retrieval недостаточна, потому что индекс embeddings мог уже раскрыть содержимое на шаге ранжирования, и потому что фильтр, применённый на неправильном слое, легко пропустить при рефакторинге.
Работающий механизм — изоляция пространств имён на уровне хранилища, с тенантностью как частью ключа, а не предикатом запроса. Каждое чтение и запись ограничены разделом тенанта, а чтения между разделами невозможны по построению, а не по соглашению. Это дороже в эксплуатации, потому что умножает число индексов и усложняет глобальную аналитику. Таков компромисс: изоляция стоит операционной простоты, а альтернатива стоит корректности.
Что это значит для проектирования агентов
Память — это не функция, которую вы добавляете агенту; это политика, которую вы проводите в жизнь. Политика должна отвечать для каждого сохраняемого элемента: откуда он взялся, кому принадлежит, почему хранится и когда истекает. Резюме и embeddings — производные записи, и они наследуют обязательства своих источников. Удаление имеет смысл только если оно распространяется на каждую производную форму.
Практическое следствие: системы памяти следует проектировать вокруг удаления и проверки, а не вокруг накопления. Агент, который помнит меньше, но может обосновать то, что помнит, полезнее в продакшене, чем тот, который вспоминает всё и не может объяснить ничего. Аудиторский след — не накладные расходы; это то, что делает память достаточно надёжной, чтобы на неё опираться.
