Как я создал систему памяти для AI-агентов

Привет! Меня зовут Ильдар, и я разрабатываю AI-помощника для программистов в проекте BayLang AI.

Проект находится на гитхаб https://github.com/bayrell/baylang-ai

Сегодня хочу рассказать, как я пришёл к архитектуре памяти для AI-агентов.

Когда я начал разрабатывать AI-агента, первым делом хранил память в файлах. Казалось логично: есть memory.md, есть user_data.md, всё просто.

Но это не так.

  • Файлы постоянно перезаписывались — агент обновлял память и терял важный контекст
  • Не было версий — восстановить прошлое состояние было невозможно
  • AI терял важную информацию — всё смешивалось в одну кучу
  • Не все файлы были нужны в контексте — агент получал лишние данные

Я пришел к выводу, что нужна база данных с разделением на типы памяти и механизмом защиты важных данных.

Я понял, что память AI-агента должна работать как человеческая: есть то, что всегда "под рукой" (контекстная память), и есть то, что хранится "в ящике стола" (блокнот).

Контекстная память (Context Memory)

Это данные, которые загружаются в контекст при каждом запросе к AI. При каждом сообщении пользователя, система автоматически загружает контекстную память. AI видит эти данные "всегда" — это как если бы у вас перед глазами всегда висел листочек с важными напоминаниями. Объём ограничен и нельзя грузить всё подряд

Что хранить:

  • Системные настройки (язык, стиль общения)
  • Правила поведения агента
  • Информация о пользователе (имя, предпочтения)
  • Текущий контекст сессии

Но если грузить в контекст ВСЕ знания агента — контекст переполнится (у LLM есть лимит токенов) и AI будет получать слишком много лишней информации.

Поэтому придуман другой вид памяти.

Блокнот (Notebook)

Это память с семантическим поиском. AI не видит эти данные "всегда", но может найти их по смыслу.

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

  • Данные хранятся в базе данных с векторными эмбеддингами
  • Когда AI получает вопрос, система ищет релевантные заметки по смыслу (не по ключевым словам!)
  • Найденные заметки добавляются в контекст для конкретного запроса

Что хранить:

  • База знаний проекта
  • История взаимодействий
  • Заметки, инструкции, документация
  • Цели, планы, задачи

Пример: AI спрашивает "Расскажи про BayLang". Система ищет в блокноте и находит заметки с тегом baylang, возвращает релевантные данные.

Категории и теги: организация знаний

В блокноте есть категории и тэги для лучшей организации данных.

Категории определяют уровень доступа и тип данных:

НазваниеТипОписаниеПример
public_dataПубличнаяОбщие данные, которые можно показывать всемИнформация о проекте, стили агента
public_docsПубличнаяДокументация, инструкцииРуководства, API-документация
public_goalsПубличнаяЦели и планыПлан разработки, roadmap
public_wikiПубличнаяБаза знанийТехнические статьи, FAQ
user_dataПриватнаяЛичная информация о пользователеПредпочтения, история общения
android_maintainСистемнаяТехнические данные агентаЛоги ошибок, отладка
android_preferencesСистемнаяНастройки агентаСтили, конфигурация

Тип памяти нужен для безопасности: приватные данные пользователя не будут доступны другим пользователям или AI помощникам.

Категории нужны, для того чтобы легче найти нужную информацию. Выполнить поиск только в нужной категории.

Тэги

Теги — это метки для быстрого поиска и группировки заметок по темам.

Примеры тегов:

  • ai-agent — всё про AI-агентов
  • baylang — материалы по проекту BayLang
  • communication — общение, интерфейсы
  • important — важные заметки (не удалять!)
  • task — задачи и todo
  • personal — личные заметки

С помощью тэгов можно делать быстрый поиск или использовать их как фильтр. Например все заметки по тэгу BayLang или только важные заметки

Discovery

Когда пользователь задаёт вопрос, происходит Discovery — запрос в память.

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

  • Пользователь пишет: "Расскажи про планы BayLang"
  • System отправляет API-запрос в Discovery
  • Загружает контекстную память (system_settings, user_data, rules)
  • Собирается в начальный контекст для AI
  • AI отвечает с учётом всех данных

В планах добавить: искать по смыслу записи в блокноте и добавлять релевантные. Сейчас поиск записей работает через отдельный вызов tools. Это проще. AI агент сам решает, какие данные добавить в контекст. И не нужно использовать Reranker.

Итог

Файловая память для AI — это тупик. Нужна база данных с разделением на контекстную память (всегда в контексте) и блокнот (семантический поиск). Категории и теги помогают организовать знания, а Discovery собирает всё в начальный контекст для AI. Это работает.

Важные выводы:

  • Файлы ≠ память. Для production AI-агентов нужна структурированная БД.
  • Контекст — это ресурс. Не грузи всё подряд в промпт.
  • Семантический поиск > полнотекстовый. AI думает векторами, а не ключевыми словами.
  • Приоритизация спасает данные. Важные заметки не должны затираться.

Если разрабатываете AI-агента — начинайте с архитектуры памяти. Это фундамент, от которого зависит всё остальное.

Что дальше?

Дальше планирую развивать систему и добавлять больше возможностей.

Дата публикации: 19 Апр 2026