Есть странная мысль, от которой сложно отмахнуться: если у человека отобрать воспоминания, от него останется сильно меньше, чем кажется.
С агентами похожая история. Агент без памяти каждый раз начинает с нуля. Он может быть умным, быстрым, вежливым, подключенным к 15 инструментам, но он не знает, кто вы, как вы работаете, что уже было решено, где вы обожглись, какие темы лучше не трогать, какие слова вас бесят, как устроены ваши проекты.
И если вся эта память живет у провайдера модели, вы фактически отдаете ему кусок своей рабочей личности.
Я не про жадность. Я про контроль.
Память агента быстро становится активом
Сначала кажется, что память агента — это мелочь. Ну запомнил он имя. Ну понял, что вы пишете на PHP и Nuxt. Ну сохранил пару предпочтений по стилю ответов.
Потом внезапно выясняется, что память расползлась шире.
Агент знает, какие проекты вы строите. Какие решения приняли. Какие идеи забросили. Где у вас слабые места в инфраструктуре. Какие клиенты сложные. Как вы принимаете решения. Как спорите. Где тревожитесь. Где пытаетесь все контролировать.
Даже из обычного диалога можно вытащить неприятно много.
Вы можете прямо не говорить: “я боюсь потерять контроль над системой”. Но если вы 20 раз просите перепроверить миграции, схему деплоя, резервные копии и откат, вывод лежит на поверхности. Из косвенных деталей собирается точный портрет.
Память агента — это не список заметок. Это модель вас как оператора.
Почему опасно держать это у провайдера
Главная проблема — зависимость.
Сегодня вы работаете через одного провайдера. Завтра он меняет тарифы, режет API, закрывает регион, ломает старую модель, вводит новую политику хранения данных. Или просто становится хуже. Такое уже было с десятками SaaS-сервисов: пока удобно, все терпят. Потом экспорт данных превращается в квест.
С памятью агента больнее, чем с обычными настройками.
Настройки можно перенести руками. Промпт можно скопировать. Историю чатов можно выгрузить, если повезло. А память, которая месяцами собиралась из диалогов, решений и рабочих паттернов, восстановить трудно.
Еще хуже, если память закрыта внутри продукта. Вы не знаете:
-
что именно сохранено;
-
как это используется;
-
можно ли удалить отдельный факт;
-
попадет ли память в обучение;
-
кто имеет доступ на стороне сервиса;
-
как агент выбирает, что подмешать в контекст.
Для игрушечного ассистента это терпимо. Для агента, который помогает писать код, вести проекты, разбирать бизнес и личные задачи, уже пахнет проблемой.
Своя память дает переносимость
Если память хранится у вас, агент перестает быть привязан к одной модели.
Сегодня вы используете GPT. Завтра Claude. Послезавтра локальную модель для части задач. Потом отдельного агента для кода, отдельного для дневника, отдельного для базы знаний.
Память остается общей.
Модель становится вычислительным слоем. Агентская память — вашим слоем данных. Это нормальная архитектура: данные отдельно, исполнитель отдельно.
Так проще менять модели, сравнивать качество, делать fallback, раскладывать задачи по цене. Дешевую модель можно пускать на рутину. Дорогую — на сложные решения. Обе получают один и тот же профиль, правила, проектный контекст и историю решений.
Без своей памяти вы каждый раз платите налог на переезд.
Своя память дает аудит
Память должна быть видимой.
Не в смысле “вот огромная простыня JSON, разбирайся сам”. Нужен нормальный интерфейс: факты, категории, источники, дата записи, область действия.
Например:
-
core: имя, язык, стиль общения, постоянные предпочтения; -
project: стек, архитектурные решения, соглашения, ограничения; -
daily: итоги задач, ошибки, временные наблюдения; -
sensitive: то, что нельзя отправлять в модель без явного разрешения.
Хорошая память должна позволять спросить: “почему агент сейчас так ответил?” И получить ответ: он подмешал 4 факта, 2 из проекта, 1 из профиля, 1 из прошлой ошибки.
Это снижает магию. А магия в рабочих системах быстро превращается в отладочный ад.
Своя память помогает с приватностью
Локальное хранение не делает систему автоматически безопасной. Сервер под кроватью тоже можно взломать, потерять, залить кофе или забыть обновить.
Но появляется выбор.
Можно шифровать хранилище. Можно хранить чувствительные факты отдельно. Можно чистить PII перед отправкой в модель. Можно держать часть памяти локально, часть в облаке. Можно сделать правило: личное уходит только в локальную модель, рабочее можно отправлять наружу, секреты не уходят вообще.
Да, это сложнее.
Зато вы сами задаете границу. Провайдер модели видит только тот контекст, который вы разрешили отправить в конкретном запросе.
Контекстное окно: главный технический минус
Тут начинается неприятная часть.
Хранить память у себя легко только на словах. Модель не может съесть всю вашу жизнь целиком. Даже если контекстное окно огромное, запихивать туда все подряд дорого и тупо.
Память надо выбирать.
Для каждого запроса система должна решить:
-
какие факты относятся к задаче;
-
какие устарели;
-
какие конфликтуют;
-
какие слишком чувствительные;
-
какие можно сжать;
-
какие лучше не трогать.
Ошибся ранжировщик — агент вспомнит не то. Ошибся с областью действия — личный факт попадет в рабочий ответ. Ошибся с давностью — старое решение всплывет как актуальное.
И все это ест токены.
Собственная память добавляет служебный слой: поиск, отбор, сжатие, вставка в промпт, проверка результата. Иногда вы платите токенами за контекст, который в итоге почти не повлиял на ответ. На длинной дистанции это заметные деньги.
Расход токенов можно держать под контролем
Плохая реализация будет каждый раз приклеивать к запросу биографию пользователя, README проекта, список прошлых задач и половину дневника. Потом все удивятся, почему ответы дорогие и медленные.
Рабочий вариант жестче.
В память нельзя складывать все подряд. Факт должен быть коротким, проверяемым и привязанным к области.
Плохо:
Пользователь любит аккуратные ответы, иногда ругается, работает с разными технологиями, хочет строить хорошие системы.
Лучше:
user_lang: русский
user_style: кратко, прямо, без лести
project_stack: PHP, Node.js, Nuxt3, NestJS, Laravel
decision_auth: JWT + refresh tokens
Память должна быть не литературой, а индексом решений.
Тогда в контекст попадают 5-20 точных фактов, а не каша.
У своей памяти есть бытовые минусы
Придется обслуживать хранилище. Делать бэкапы. Думать о миграциях. Чинить поиск. Следить за дубликатами. Удалять мусор.
Еще будет проблема ложной уверенности. Агент может записать кривой факт и потом месяцами на него опираться. Поэтому память нельзя пополнять без правил.
Нужны источники. Нужна дата. Нужны категории. Нужна возможность сказать: “забудь это”. Нужна периодическая чистка. Нужны запреты на хранение секретов, токенов, паролей, приватных данных без отдельного режима.
Собственная память дает власть. Власть требует ответственности.
Почему плюсы все равно перевешивают
Потому что агент со временем становится частью рабочего процесса.
Если он помнит ваши решения, он будет действовать в этом же русле. Если знает стиль, меньше тратит время на формат. Если видит историю типичных ошибок на проекте, реже скачет по граблям. Если понимает проектные границы, не предлагает чужеродную архитектуру.
И главное: эта польза копится у вас.
Каждый разговор улучшает вашу систему, а не только чужой продукт. Каждый проект оставляет след в вашей базе. Каждый вывод можно переиспользовать с другой моделью, другим агентом, другим интерфейсом.
Это похоже на нормальную инженерную привычку: исходники храним у себя, базу бэкапим, секреты не кидаем в чат, историю решений фиксируем. Память агента просится в тот же ряд.
Как я бы это строил
Минимальная схема такая:
-
структурированное хранилище фактов;
-
отдельные области: пользователь, проект, чат, daily;
-
векторный поиск для смысловой близости;
-
ручное удаление и правка;
-
журнал, откуда взялся факт;
-
фильтр чувствительных данных;
-
лимит токенов на память в каждом запросе;
-
слой саммаризации для прошлых сессий;
-
слой саммаризации накопленных саммари.
И еще одно правило: модель не должна сама бездумно решать, что навсегда помнить о человеке. Автозапись допустима, но через понятные категории и с возможностью быстро вычистить мусор.
Иначе получится не память, а гараж с хламом.
Финальная мысль
Память агента слишком ценна, чтобы быть настройкой внутри чужого интерфейса.
Её можно отдавать модели порциями. Можно синхронизировать. Можно временно доверять облаку. Но сам источник лучше держать у себя.
Потому что в какой-то момент агент начинает помнить не команды, а вас: ваш стиль, ваши страхи, ваши решения, ваши ошибки, ваши рабочие маршруты.
И если это всё лежит где-то снаружи, вы арендуете жирный кусок собственных воспоминаний.
P.S. Если было интересно, то приглашаю подписаться на мой канал, постараюсь чаще туда писать полезное.
ссылка на оригинал статьи https://habr.com/ru/articles/1044682/