Перейти к основному содержимому

Институциональная память: что агент должен помнить, а что обязан забыть

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

Detailed close-up of a high-tech white robot in a studio setting with a gray background.

Память как запись, а не кэш

Кэш оптимизирован под процент попаданий. Запись оптимизирована под подотчётность. Большинство систем памяти агентов построены как кэши, а затем от них требуют поведения записей — вот почему они проваливают аудиты, которые никогда не были рассчитаны на прохождение.

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

Резюме теряют происхождение быстрее всего. Когда длинный эпизодический след сжимается в абзац, шаг сжатия отбрасывает ссылки обратно к исходным ходам. Резюме — это артефакт, который с наибольшей вероятностью будет извлечён и который труднее всего защитить позже, потому что доказательства его утверждений уже выброшены. Поэтому резюме следует рассматривать как производную запись с собственным указателем происхождения, а не как замену следа, из которого оно возникло. Если указатель отсутствует, резюме — не память; это утверждение без атрибуции.

Политика хранения на практике

Первое разделение, которое нужно провести, — между эпизодическими следами и долговечными фактами. Эпизодические следы — это то, что произошло во время запуска: tool calls, промежуточные рассуждения, извлечённые документы, частичные результаты. Долговечные факты — это то, что должно пережить запуск: подтверждённое предпочтение, разрешённый идентификатор, политика, которая была применена и принята. Только вторая категория принадлежит долговременной памяти. Всё остальное должно быть ограничено сессией и отброшено при её закрытии.

A vibrant close-up image of an arcade joystick and buttons, capturing a retro gaming mood.

Срок действия по умолчанию, повышение статуса по проверке. Новые элементы входят с коротким временем жизни и низким весом доверия. Повышение до долговечного статуса — это явное событие, а не автоматическое. На практике это означает путь записи, который выглядит так:

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 спросить, было ли предпочтение сформировано в сопоставимых условиях. Память без области действия будет применяться везде, и агент б

Interior view of an automated beverage bottling factory with machinery and conveyor belts.

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

Утечка между тенантами

Когда одно пространство имён памяти обслуживает многих пользователей, retrieval по семантическому сходству в конечном итоге покажет данные одного тенанта другому. Это не тонкий сбой; это структурный. Поиск по сходству не имеет понятия тенантности, если тенантность не обеспечена до поиска, а не после него. Фильтрация результатов после retrieval недостаточна, потому что индекс embeddings мог уже раскрыть содержимое на шаге ранжирования, и потому что фильтр, применённый на неправильном слое, легко пропустить при рефакторинге.

Работающий механизм — изоляция пространств имён на уровне хранилища, с тенантностью как частью ключа, а не предикатом запроса. Каждое чтение и запись ограничены разделом тенанта, а чтения между разделами невозможны по построению, а не по соглашению. Это дороже в эксплуатации, потому что умножает число индексов и усложняет глобальную аналитику. Таков компромисс: изоляция стоит операционной простоты, а альтернатива стоит корректности.

Что это значит для проектирования агентов

Память — это не функция, которую вы добавляете агенту; это политика, которую вы проводите в жизнь. Политика должна отвечать для каждого сохраняемого элемента: откуда он взялся, кому принадлежит, почему хранится и когда истекает. Резюме и embeddings — производные записи, и они наследуют обязательства своих источников. Удаление имеет смысл только если оно распространяется на каждую производную форму.

Практическое следствие: системы памяти следует проектировать вокруг удаления и проверки, а не вокруг накопления. Агент, который помнит меньше, но может обосновать то, что помнит, полезнее в продакшене, чем тот, который вспоминает всё и не может объяснить ничего. Аудиторский след — не накладные расходы; это то, что делает память достаточно надёжной, чтобы на неё опираться.

ПоделитьсяXLinkedInПостоянная ссылка5 мин чтения

Связанное чтение

На какие вопросы это отвечает

Why does an agent need provenance on every memory item?

Without a source, timestamp, owner and retention reason, a retrieved memory cannot be defended in review. Provenance is what turns a stored value into an accountable record.

What is the difference between episodic traces and durable facts?

Episodic traces record what happened during a run and should be discarded when the session closes. Durable facts are confirmed items that should survive the run and inform future decisions.

Why must deletion propagate to summaries and embeddings?

Retrieval operates on derived artefacts. If a summary or embedding still encodes a deleted record, the fact remains effectively present, so deletion must invalidate every derived form.

How should cross-tenant memory bleed be prevented?

By enforcing tenancy at the storage layer, with the tenant as part of the key rather than a filter applied after retrieval. Post-retrieval filtering is too easy to omit or misapply.