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

Проект находится на гитхаб https://github.com/bayrell/baylang-ai
Сегодня хочу рассказать, как я пришёл к архитектуре памяти для AI-агентов.
Когда я начал разрабатывать AI-агента, первым делом хранил память в файлах. Казалось логично: есть memory.md, есть user_data.md, всё просто.

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

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

Но если грузить в контекст ВСЕ знания агента — контекст переполнится (у LLM есть лимит токенов) и AI будет получать слишком много лишней информации.
Поэтому придуман другой вид памяти.
Это память с семантическим поиском. AI не видит эти данные "всегда", но может найти их по смыслу.
Как работает:

Что хранить:
Пример: AI спрашивает "Расскажи про BayLang". Система ищет в блокноте и находит заметки с тегом baylang, возвращает релевантные данные.
В блокноте есть категории и тэги для лучшей организации данных.
Категории определяют уровень доступа и тип данных:
| Название | Тип | Описание | Пример |
|---|---|---|---|
| public_data | Публичная | Общие данные, которые можно показывать всем | Информация о проекте, стили агента |
| public_docs | Публичная | Документация, инструкции | Руководства, API-документация |
| public_goals | Публичная | Цели и планы | План разработки, roadmap |
| public_wiki | Публичная | База знаний | Технические статьи, FAQ |
| user_data | Приватная | Личная информация о пользователе | Предпочтения, история общения |
| android_maintain | Системная | Технические данные агента | Логи ошибок, отладка |
| android_preferences | Системная | Настройки агента | Стили, конфигурация |
Тип памяти нужен для безопасности: приватные данные пользователя не будут доступны другим пользователям или AI помощникам.
Категории нужны, для того чтобы легче найти нужную информацию. Выполнить поиск только в нужной категории.
Теги — это метки для быстрого поиска и группировки заметок по темам.
Примеры тегов:
С помощью тэгов можно делать быстрый поиск или использовать их как фильтр. Например все заметки по тэгу BayLang или только важные заметки
Когда пользователь задаёт вопрос, происходит Discovery — запрос в память.
Как это работает:
В планах добавить: искать по смыслу записи в блокноте и добавлять релевантные. Сейчас поиск записей работает через отдельный вызов tools. Это проще. AI агент сам решает, какие данные добавить в контекст. И не нужно использовать Reranker.
Файловая память для AI — это тупик. Нужна база данных с разделением на контекстную память (всегда в контексте) и блокнот (семантический поиск). Категории и теги помогают организовать знания, а Discovery собирает всё в начальный контекст для AI. Это работает.

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

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