COMRAD404 / GLOSSARY

Память агента (Agent Memory)

Agent Memory

Память агента — это сохраняемое состояние ИИ-системы: история, факты и предпочтения, которые переживают один ответ модели. Разбираем уровни памяти, схему работы, примеры OpenAI, LangChain и AutoGen и типичные ограничения.

TL;DR

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

Память агента (agent memory) — это сохраняемое состояние диалога или приложения, которое помогает ИИ-агенту удерживать факты, предпочтения и историю между ходами, сессиями или отдельными запусками. На практике под этим термином часто понимают не одну функцию, а набор механизмов: историю текущей сессии, сохранённые «воспоминания», долговременное хранилище и RAG-подобное извлечение нужных записей в контекст.

Английский термин: agent memory. В документации также встречаются связанные варианты: session memory, long-term memory, saved memories, memory layer. Это не полные синонимы: у OpenAI, LangChain, AutoGen и MemGPT границы термина различаются, поэтому в этой статье он используется как зонтичное редакционное обозначение.

Редакционное ограничение: «Память агента» не является единым стандартизованным термином. У одних платформ это история конкретной сессии, у других — отдельное хранилище предпочтений и фактов, у третьих — протокол поиска и подмешивания памяти в контекст.

Простыми словами

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

Можно представить это как рабочий стол и архив. На столе лежит текущая папка дела — это память сессии. В архиве хранятся карточки с устойчивыми фактами — это долговременная память. Перед новым ответом агент либо использует только то, что уже лежит на столе, либо ещё и достаёт из архива подходящие карточки.

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

Как это работает

Хотя названия в разных стеках отличаются, общая схема похожа. OpenAI Agents SDK хранит историю разговора для конкретной session между несколькими запусками агента. LangGraph делит память на краткосрочные checkpoints в рамках потока и долговременные cross-thread stores. AutoGen описывает память через явные операции query, update_context, add, clear и close, то есть в духе «найти релевантное и вставить в контекст».

Пользовательский запрос
        |
        v
1) Агент читает историю текущей session/thread
        |
        v
2) При необходимости делает query в долговременную память
        |
        v
3) Находит релевантные факты и делает update_context
        |
        v
4) Генерирует ответ с учётом текущего контекста и найденной памяти
        |
        v
5) Сохраняет новое: checkpoint, summary или устойчивый факт
  1. Короткая память. Сначала агент поднимает историю текущего потока: это может быть сессия в OpenAI Agents SDK или thread-scoped checkpoint в LangGraph.
  2. Поиск по долгой памяти. Если нужно помнить что-то вне текущего диалога, агент делает отдельный поиск по сохранённым записям.
  3. Подмешивание в контекст. Найденные сведения вставляются в рабочий контекст ответа. AutoGen прямо описывает этот паттерн как retrieve-then-inject.
  4. Ответ. Модель отвечает уже с учётом найденной истории, предпочтений или прошлых фактов.
  5. Запись обратно. После ответа система решает, что сохранить: только историю сессии, отдельный факт, обновлённую сводку или ничего.

В потребительских продуктах это выглядит иначе, но логика та же. Например, по справке OpenAI, память ChatGPT может помнить полезный контекст из чатов, файлов и подключённых приложений, а сохранённые воспоминания хранятся отдельно от истории чата.

Где применяется

  • ChatGPT как персональный помощник. По справке OpenAI, память может учитывать полезный контекст из чатов, файлов и подключённых приложений. Настройки находятся в Settings > Personalization > Memory, а Temporary Chats не используют существующую память и не создают новую.
  • Кастомные агенты на OpenAI Agents SDK. Раздел Sessions описывает память истории разговора между несколькими запусками агента для конкретной сессии. Это полезно для агентов, которые работают пошагово, а не одним вызовом.
  • Агенты на LangChain/LangGraph. В документации память разделена на short-term и long-term. Краткосрочная часть привязана к потоку, а долговременная может жить поперёк разговоров; при этом RAM-варианты вроде InMemorySaver и InMemoryStore не подходят для production, потому что теряются после перезапуска.
  • Управляемый слой памяти. Mem0 позиционирует себя как fully managed memory layer и отдельно заявляет, что вам не нужно поднимать vector store, reranker или другую инфраструктуру. В quickstart показан базовый сценарий: получить API key, сохранить первую запись и найти её обратно.

Практический пример

Ниже — не буквальный код одного SDK, а рабочая схема, собранная по именам операций из протокола памяти AutoGen и по модели session/long-term memory из OpenAI и LangGraph.

Запуск 1:
add - сохранить факт: "Пользователь предпочитает краткие ответы на русском"

Запуск 2 в той же session/thread:
история уже доступна из session memory или checkpoint
агент отвечает с учётом недавнего диалога

Запуск 3 в новой session:
query - найти сохранённые предпочтения пользователя
update_context - вставить найденное в рабочий контекст
агент снова отвечает кратко и по-русски
  1. Пользователь один раз сообщает устойчивое предпочтение: язык, стиль ответа, формат отчёта.
  2. Во время текущего разговора агенту достаточно памяти сессии: он уже видит недавние сообщения и промежуточные шаги.
  3. Если предпочтение нужно сохранить надолго, система пишет его в отдельное хранилище как отдельный факт, а не только в историю чата.
  4. Когда начинается новый разговор, история старой сессии может уже не участвовать, но долговременная память всё ещё доступна через поиск и подмешивание в контекст.
  5. Если же вы использовали только RAM-вариант памяти, после перезапуска процесса эти данные исчезнут. Именно поэтому LangGraph прямо рекомендует постоянное хранилище для production-сценариев.

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

Чем отличается от истории чата, памяти сессии и RAG-памяти

Чаще всего «память агента» путают с тремя близкими слоями. Удобнее всего различать их так:

Понятие Что хранит Граница Главное отличие
История чата Сырые сообщения разговора Обычно один диалог или журнал переписки В OpenAI сохранённые воспоминания хранятся отдельно от истории чата
Session memory Контекст конкретной сессии или потока Одна session / один thread Помогает между несколькими запусками агента, но не обязательно живёт между новыми сессиями
Long-term memory Устойчивые факты, предпочтения, сводки Поперёк разговоров и потоков Нужна, когда агент должен помнить пользователя или задачу дольше одного диалога
RAG-style memory Не весь архив, а только найденные релевантные записи По запросу перед ответом AutoGen описывает это как query + update_context: сначала найти, потом вставить в контекст

Иными словами, agent memory удобнее воспринимать как общий класс механизмов, а не как один конкретный компонент.

Ограничения и заблуждения

  • Заблуждение: «память агента» — один стандартный модуль. На деле термин распадается на product memory, session memory, long-term stores и RAG-подобные протоколы.
  • Заблуждение: история чата и память — одно и то же. В ChatGPT сохранённые воспоминания, по справке OpenAI, отделены от истории чатов.
  • Заблуждение: достаточно включить память, и агент будет помнить всё всегда. Session memory ограничена рамками конкретной сессии, а RAM-реализации в LangGraph теряются после перезапуска.
  • Ограничение продукта: у OpenAI набор функций памяти зависит от плана, региона и текущего rollout. В обновлении от 3 июня 2025 OpenAI отдельно писала про облегчённую память для Free и более долгосрочное понимание для Plus/Pro, а 4 июня 2026 объявила новый memory synthesis сначала для Plus и Pro в США, затем — для других стран и Free/Go.
  • Ограничение реализации: в OpenAI Agents JS память sandbox-agent вынесена отдельно от Session memory, а сам режим помечен как beta. То есть даже внутри одного вендора память может быть разделена на разные механизмы.
  • Ограничение архитектуры: память не отменяет ограниченность рабочего контекста модели. MemGPT как раз предлагает виртуальный контекст и иерархическую память, чтобы обойти пределы обычного context window при длинных взаимодействиях.

Практический вывод

Практический вердикт: если вашему агенту нужна непрерывность только внутри одного диалога, начните с session memory. Если он должен помнить пользователя или задачу через дни, новые потоки и перезапуски, проектируйте отдельную долговременную память и правила записи. Если термин в документации не уточнён, сначала выясните, идёт ли речь об истории сессии, сохранённых воспоминаниях или внешнем хранилище с retrieve-then-inject.

Связанные материалы и инструменты

Источники

Вопросы и ответы

Память агента и история чата — это одно и то же?

Нет. История чата — это журнал сообщений, а память агента может включать и историю сессии, и отдельные сохранённые факты, и долговременное хранилище. В справке OpenAI прямо указано, что saved memories хранятся отдельно от chat history.

Может ли агент помнить между разными сессиями?

Да, но не автоматически. OpenAI Sessions описывает память в рамках конкретной session, а LangGraph отдельно выделяет cross-thread long-term memory для данных, которые должны переживать новые разговоры.

Почему память иногда пропадает после перезапуска?

Потому что часть реализаций хранит данные только в RAM. В LangGraph указано, что InMemorySaver и InMemoryStore живут только в оперативной памяти и теряются при рестарте, поэтому для production нужна постоянная запись.

Работает ли память в Temporary Chats в ChatGPT?

Нет. По справке OpenAI временные чаты не используют существующую память и не создают новую.

Можно ли обойтись без собственной инфраструктуры памяти?

Иногда да. Mem0 позиционирует свой продукт как managed memory layer и заявляет, что вам не нужно поднимать vector store, reranker и другую инфраструктуру. Но точные условия хранения, регионы и коммерческие детали нужно отдельно проверять на официальном сайте.

Источники

SOURCES

Вопросы и ответы

FAQ
Память агента и история чата — это одно и то же?

Нет. История чата — это журнал сообщений, а память агента может включать и историю сессии, и отдельные сохранённые факты, и долговременное хранилище. В справке OpenAI указано, что saved memories хранятся отдельно от chat history.

Может ли агент помнить между разными сессиями?

Да, но не автоматически. OpenAI Sessions описывает память в рамках конкретной session, а LangGraph отдельно выделяет cross-thread long-term memory для данных, которые должны переживать новые разговоры.

Почему память иногда пропадает после перезапуска?

Потому что часть реализаций хранит данные только в RAM. В LangGraph указано, что InMemorySaver и InMemoryStore живут только в оперативной памяти и теряются при рестарте, поэтому для production нужна постоянная запись.

Работает ли память в Temporary Chats в ChatGPT?

Нет. По справке OpenAI временные чаты не используют существующую память и не создают новую.

Можно ли обойтись без собственной инфраструктуры памяти?

Иногда да. Mem0 позиционирует свой продукт как managed memory layer и заявляет, что вам не нужно поднимать vector store, reranker и другую инфраструктуру. Но точные условия хранения и коммерческие детали нужно отдельно проверять на официальном сайте.

Читайте также

LINKS