Всё это просто RAG

Каждый плагин памяти на рынке работает по одной схеме:

  1. Пройти по сессиям диалогов
  2. Сгенерировать осколки «воспоминаний»
  3. Загрузить в RAG-базу
  4. На каждом запросе вытащить топ-5 и вставить в контекст
  5. Нужно больше? Дать агенту инструмент для поиска в RAG

Вот вся архитектура. Некоторые инструменты более изощрённы: позволяют агенту искать по прошлым диалогам слово в слово, или реализуют многоуровневую память (краткосрочная/долгосрочная). Добавляют фоновые демоны для пересмотра, слияния, дедупликации воспоминаний. «Мечтателей», которые переписывают память ночью. Непрерывное сжатие контекста. Переранжирование. И так далее.

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

Проблема с восстановлением информации

Все эти плагины памяти страдают от одного и того же набора проблем.

  • Воспоминания всплывают по схожести. Поиск по похожести ранжирует, насколько близко два осколка находятся в пространстве эмбеддингов. И всё. Неясно, какой из них правильный, актуальный или какой информации не хватает.
  • Воспоминания хранятся без контекста. RAG-осколок может содержать столько-то. Всё остальное теряется: окружение, мотивация, уроки, среда и прочее.
  • Прошлое считается истиной. Все эти плагины полагаются на восстановление: поиск по диалогам или базе векторов. Но кодовая база меняется каждый день — насколько точны все 500 осколков про аутентификацию?
  • Агент не может искать то, что не знает. Даже если дать агенту инструмент поиска, откуда он будет знать, когда его использовать? Агент не знает, что он не знает.
  • Хранилище невозможно аудировать. В SQLite 10 000 эмбеддингов. Какие воспоминания существуют? Какие устарели? Какие никогда не вытаскивались? Какие неправильные и скрытно влияют на поведение агента?

Это только пять из множества проблем, которые плагины памяти пытаются решить и не решают, потому что все предполагают одно и то же:

Агенты забывают — вот проблема. Решение — помнить. Помнить лучше — значит, захватывать больше, индексировать лучше, вытаскивать умнее.

Вся их логика вращается вокруг захвата и восстановления прошлого. Но так никто больше знания не обрабатывает. Никто не пересматривает встречу от 3 года назад, чтобы вспомнить ограничения вокруг фичи. Люди записывают информацию и потом пользуются этими записями.

Точно так же решение — это НЕ дать агенту инструмент поиска, чтобы он перетасовывал 10 миллионов токенов диалогов, собирая осколки того, что произошло.

Решение — это память на основе документов.

Документация вместо восстановления

Люди уже давно понимали, что агентам нужен контекст. Поэтому они создали файлы AGENTS.md — чтобы агент не прыгал в кодовую базу вслепую. Это работает. Но часто этот единственный файл — это ВСЯ документация проекта.

Одного файла недостаточно. Агенту нужен целый мозг — структурированное рабочее пространство, где он может записывать инструкции, спеки, решения, исследования, индексы — всё, без просьб. Инструкции, как работает процесс code review. Спеки, что обсуждалось с пользователем. Исследования в незнакомые библиотеки или API.

Когда агент работает, он читает файлы из своего мозга, чтобы получить актуальный и полный контекст. Когда работа закончена, агент обновляет устаревшее, добавляет новые документы, пока полная картина ещё в памяти. Так цикл агента меняется с запрос → сборка → забывание на запрос → консультация → сборка → обновление. Память из RAG-базы, которую приклеивают к агенту, становится рабочим пространством, которое можно читать, обновлять и даже делить с командой.

Проверка на практике

Эту проблему заметили более года назад, когда начали программировать с AI. Было нужно, чтобы агент помнил работу между сессиями, поэтому создали папку internal/, где просили агента всё записывать: спеки, планы, индексы. Дали указание агенту всегда читать нужные документы перед работой и обновлять их потом.

Эти первобытные инструкции медленно трансформировались в формальную систему, а потом в плагин Operator Memory, который используется регулярно во всех проектах.

Диаграмма, сравнивающая цикл «запрос, сборка, забывание» с циклом Operator Memory «запрос, консультация, сборка, обновление»

Operator Memory предоставляет память на основе документов по описанной выше модели. Агент получает Markdown-мозг, где может сохранять важные знания: инструкции, спеки, исследования, индексы. Перед работой агент всегда консультирует мозг по актуальным документам. После работы обновляет мозг: пересматривает устаревшее, добавляет недостающее.

Никаких векторных баз. Никаких эмбеддингов. Никаких суммаризаторов, кураторов, обновляющих демонов, мечтателей или других сжигающих токены фоновых процессов. Никаких чёрных ящиков с поиском.

В Operator всё — обычный Markdown-документ, который можно читать, обновлять, коммитить и делить с командой. Эта система используется более года. Попробовать можно бесплатно, это open source: https://github.com/aerovato/operator-memory