Skip to main content

Memory Bank

0. Прежде чем начать

Что такое Memory Bank?

Memory Bank — это долговременная память агента, которая сохраняется между чатами и сессиями. Обычно агент в каждом новом чате начинает «с чистого листа»: он не помнит ваших предпочтений, договорённостей по проекту и сделанных ранее выводов. Memory Bank решает эту проблему — агент может записать важный факт один раз и затем переиспользовать его в любых будущих беседах.

Например, вы один раз сказали: «у нас интеграционные тесты всегда ходят в реальную БД, не мокай её». Агент сохранит это правило, и в следующих чатах будет учитывать его сам, без напоминаний.

Не нужно каждый раз заново объяснять структуру проекта, библиотеки, код-стайл или договорённости команды — в сложных проектах это заметно экономит время.

Память хранится прямо в вашем проекте — в папке .veai/memory/. Это обычные Markdown‑файлы, которые можно прочитать или отредактировать вручную.

Memory Bank: общий вид

Что агент запоминает?

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

  • 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 в настройках. После этого память не попадает в контекст агента, а инструменты работы с памятью становятся недоступны.

Можно ли запретить агенту использовать память в конкретном запросе? Да. Достаточно прямо попросить агента игнорировать память для этого запроса — он не будет к ней обращаться и ссылаться на сохранённые факты.

Память занимает много места в контексте? Нет. В контекст постоянно попадает только компактное оглавление (заголовок + строка‑подсказка на запись). Полное содержимое подгружается лишь для тех записей, которые относятся к текущей задаче.