Memory Bank
0. Прежде чем начать
Что такое Memory Bank?
Memory Bank — это долговременная память агента, которая сохраняется между чатами и сессиями. Обычно агент в каждом новом чате начинает «с чистого листа»: он не помнит ваших предпочтений, договорённостей по проекту и сделанных ранее выводов. Memory Bank решает эту проблему — агент может записать важный факт один раз и затем переиспользовать его в любых будущих беседах.
Например, вы один раз сказали: «у нас интеграционные тесты всегда ходят в реальную БД, не мокай её». Агент сохранит это правило, и в следующих чатах будет учитывать его сам, без напоминаний.
Не нужно каждый раз заново объяснять структуру проекта, библиотеки, код-стайл или договорённости команды — в сложных проектах это заметно экономит время.
Память хранится прямо в вашем проекте — в папке .veai/memory/. Это обычные Markdown‑файлы, которые можно прочитать или отредактировать вручную.

Что агент запоминает?
В память попадают только устойчивые, неочевидные знания, которые пригодятся в будущем. Каждая запись относится к одному из четырёх типов:
- User — кто вы и как работаете: ваша роль, область экспертизы, уровень знаний. Помогает агенту подбирать уровень объяснений.
- Feedback — как с вами работать: ваши поправки и подтверждённые предпочтения по стилю и подходу.
- Project — неочевидные знания о проекте: подводные камни, причины архитектурных решений, текущие договорённости и сроки.
- Reference — указатели на внешние источники: трекер задач, дашборды, каналы, где лежит та или иная информация.
Агент намеренно не сохраняет то, что легко восстановить, прочитав код или историю git: расположение классов, сигнатуры методов, структуру каталогов. Также он не хранит секреты, пароли и персональные данные.
1. Как включить
Memory Bank управляется из настроек:
Settings → Tools → Veai → Memory Bank
На странице есть три переключателя:
- Enable Memory Bank — главный выключатель. Включает политику памяти, индекс сохранённых знаний в контексте агента и инструменты работы с памятью. Без него остальные опции неактивны.
- Auto-extract memories after each turn — автоматическое извлечение знаний. После ваших сообщений агент сам решает, что стоит запомнить, и сохраняет это в фоне.
- Run periodic consolidation (dream) — периодическая «уборка» памяти: объединение похожих записей, удаление дубликатов и устаревших фактов.
2. Как это работает
Вам почти не нужно ничего делать вручную — память работает в фоне. Под капотом происходят три процесса.
Запоминание (recall)
В начале каждого ответа агент видит краткий индекс всех сохранённых знаний (заголовок + одна строка‑подсказка). Если что‑то из индекса относится к вашему запросу, агент сам открывает нужную запись целиком и учитывает её. Решение «заглянуть в память» агент принимает самостоятельно — никаких ключевых слов вводить не надо.
Извлечение (extraction)
Если включена опция Auto-extract, после ваших сообщений (и при закрытии чата) агент анализирует беседу и сохраняет в память то, что считает важным на будущее. Это происходит в фоне; когда что‑то сохранено, вы увидите уведомление.

Консолидация (dream)
Если включена опция Run periodic consolidation, агент время от времени, когда вы не работаете, наводит порядок в памяти: объединяет дублирующиеся записи, удаляет устаревшее, чистит индекс. Это держит память компактной и релевантной.
3. Управление памятью вручную
Вам не обязательно полагаться только на автоматику — вы можете давать команды на естественном языке прямо в чате:
- «Запомни, что…» — агент создаст новую запись в памяти.
- «Обнови запись про…» — агент изменит существующую запись.
- «Забудь про…» — агент удалит соответствующую запись (или только указанную деталь, сохранив остальные факты).

Если вы попросите забыть одну деталь из записи, где есть и другие полезные факты, агент уберёт только эту деталь, а остальное сохранит.
Редактирование файлов напрямую
Память — это обычные Markdown‑файлы в .veai/memory/. Вы можете открыть и отредактировать их в IDE как любые другие файлы. Главный файл MEMORY.md — это оглавление со ссылками на все записи.
4. Где хранятся данные
<корень проекта>/
└── .veai/
└── memory/
├── MEMORY.md ← оглавление (индекс всех записей)
├── user-prefers-pdf-export-….md ← отдельная запись
├── authfilter-x-token-….md ← отдельная запись
└── …
Каждая запись — это Markdown‑файл с небольшим YAML‑заголовком (имя, краткое описание, тип) и телом с самим знанием.
5. Рекомендации
Несколько советов, чтобы память приносила максимум пользы:
- Включите авто‑извлечение и консолидацию. Тогда память будет наполняться и поддерживаться сама, без вашего участия.
- Подтверждайте удачные решения. Память фиксирует не только поправки («так не делай»), но и подтверждения («да, именно так»). Короткое «отлично, так и оставь» помогает агенту закрепить нужный подход.
- Формулируйте устойчивые правила. Лучше всего запоминаются факты, которые останутся верными надолго: соглашения по проекту, инциденты и их причины, договорённости команды.
- Не складывайте в память временное. Текущее состояние задачи, промежуточные заметки и черновики не стоит сохранять — для этого есть планы и списки задач.
6. Частые вопросы
Память отправляет мои данные куда‑то на сервер?
Файлы памяти лежат локально в вашем проекте (.veai/memory/). В модель попадает только то, что и в обычном чате: индекс памяти и содержимое тех записей, которые агент решил открыть для вашего запроса.
Будут ли мои секреты сохранены в память?
Нет. Агент по правилам не сохраняет секреты, учётные данные и персональные данные. Тем не менее держите чувствительную информацию вне .veai/memory/.
Как полностью отключить память? Снимите галочку Enable Memory Bank в настройках. После этого память не попадает в контекст агента, а инструменты работы с памятью становятся недоступны.
Можно ли запретить агенту использовать память в конкретном запросе? Да. Достаточно прямо попросить агента игнорировать память для этого запроса — он не будет к ней обращаться и ссылаться на сохранённые факты.
Память занимает много места в контексте? Нет. В контекст постоянно попадает только компактное оглавление (заголовок + строка‑подсказка на запись). Полное содержимое подгружается лишь для тех записей, которые относятся к текущей задаче.