Память агента (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 или устойчивый факт
- Короткая память. Сначала агент поднимает историю текущего потока: это может быть сессия в OpenAI Agents SDK или thread-scoped checkpoint в LangGraph.
- Поиск по долгой памяти. Если нужно помнить что-то вне текущего диалога, агент делает отдельный поиск по сохранённым записям.
- Подмешивание в контекст. Найденные сведения вставляются в рабочий контекст ответа. AutoGen прямо описывает этот паттерн как retrieve-then-inject.
- Ответ. Модель отвечает уже с учётом найденной истории, предпочтений или прошлых фактов.
- Запись обратно. После ответа система решает, что сохранить: только историю сессии, отдельный факт, обновлённую сводку или ничего.
В потребительских продуктах это выглядит иначе, но логика та же. Например, по справке 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 - вставить найденное в рабочий контекст агент снова отвечает кратко и по-русски
- Пользователь один раз сообщает устойчивое предпочтение: язык, стиль ответа, формат отчёта.
- Во время текущего разговора агенту достаточно памяти сессии: он уже видит недавние сообщения и промежуточные шаги.
- Если предпочтение нужно сохранить надолго, система пишет его в отдельное хранилище как отдельный факт, а не только в историю чата.
- Когда начинается новый разговор, история старой сессии может уже не участвовать, но долговременная память всё ещё доступна через поиск и подмешивание в контекст.
- Если же вы использовали только 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.
Связанные материалы и инструменты
- ИИ-агент — базовый термин, без которого легко перепутать память агента с обычной памятью модели.
- Автономный агент — полезно, если вы хотите понять, где память нужна для длинных цепочек действий.
- Как создать простого AI-агента с LangChain — для практики с memory-стеком LangChain/LangGraph.
- Как сделать ИИ-агента в n8n — если вы собираете агента в no-code/automation-сценарии.
- Pieces for Developers — локальная память, Timeline и поиск сниппетов — пример инструмента, где память подаётся как отдельная практическая функция.
Источники
- Memory FAQ
- Memory and new controls for ChatGPT | OpenAI
- Dreaming: Better memory for a more helpful ChatGPT | OpenAI
- Sessions – OpenAI Agents SDK
- Agent memory | OpenAI Agents SDK
- Memory overview – Docs by LangChain
- Persistence – Docs by LangChain
- Long-term memory – Docs by LangChain
- Memory and RAG — AutoGen
- Overview – Mem0
- Quickstart – Mem0
- MemGPT
- MemGPT: Towards LLMs as Operating Systems
Вопросы и ответы
Память агента и история чата — это одно и то же?
Нет. История чата — это журнал сообщений, а память агента может включать и историю сессии, и отдельные сохранённые факты, и долговременное хранилище. В справке 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 и другую инфраструктуру. Но точные условия хранения, регионы и коммерческие детали нужно отдельно проверять на официальном сайте.