Исследование [ИССЛЕДОВАНИЕ · РЕЗУЛЬТАТЫ] DOI 10.5281/zenodo.21210732

Память: концепция и измеренные результаты

Мы строим долговременную память для команд и их агентов: знания живут в человекочитаемых документах, поверх - поисковый индекс, семантика и граф связей. Здесь - сама концепция и то, что мы намерили, когда проверили ее на двух корпусах против ручной валидации по первоисточникам и на открытом корпусе в тысячи документов.

Концепция

Три принципа памяти

Слой истины - версионируемые документы Источник истины - обычные Markdown-документы под версионным контролем. В хранилище нет ни одной строчки, порожденной моделью: вся «умность» - детерминированные алгоритмы поверх. Каждая версия каждого документа сохраняется навсегда и доступна для аудита.
Знания компилируются один раз Вместо того чтобы перечитывать первоисточники на каждый вопрос, корпус один раз превращается в связанную базу знаний - и дальше агент отвечает по ней. Ссылки между документами - явные и автоматические (упоминание имени документа простым текстом само становится связью, с учетом русской морфологии).
Карантин доверия Все новое попадает в память со статусом «на проверке»; в выдачу ассистентов идет только подтвержденное человеком. Изменение подтвержденного документа автоматически возвращает его в карантин - подпись человека привязана к содержимому, а не к названию.

Все разворачивается в изолированном контуре заказчика и остается в его инфраструктуре.

Архитектура

Граница генеративности: детерминированный слой и агент

Языковая модель работает только у агента-читателя, который формирует ответ. Весь путь записи и производные индексы детерминированы: источник истины хранится побайтно, а индекс полностью перестраивается из него переиндексацией. Именно это отличает подход от систем памяти на LLM-экстракции сущностей.

Слой истины git-репозиторий Markdown с вики-ссылками · человекочитаемый · версионируемый
↓ атомарная запись: git-фиксация → одна транзакция
детерминированный слой · без генеративной LLM
Реляционный индекс + граф связей документы · полнотекстовый поиск (морфология) · ребра графа · журнал событий
Векторный слой эмбеддинги bge-m3 · pgvector · копия графа
Гибридный поиск лексический + семантический (RRF) + графовая экспансия по связям
↓ карантин доверия: на проверке → подтверждено
Агент-читатель - генерация ответа единственный генеративный компонент
Явная вики-ссылка Ghost - на отсутствующий документ Упоминание - имя в тексте (морфология)

Три типа ребер графа строятся на момент записи, без обращения к модели: явные ссылки, «призрачные» (разрешаются автоматически, когда упоминаемый документ появляется) и упоминания по имени с учетом словоизменения.

Методология

Как мерили: два корпуса, ручной референс, четыре типа вопросов

Эталон строился вручную: для каждого вопроса ответ выверялся чтением первоисточников - референс по построению равен 100%. Вопросы четырех типов: точные термины (идентификаторы, номера, версии), парафразы без словарных совпадений, multi-hop (ответ размазан по нескольким связанным документам) и негативные (ответа в корпусе нет). Метрики - попадание нужного документа в топ-5 выдачи и полнота: найдены ли все документы, требуемые для полного ответа.

Корпус Состав Вопросов Что проверяет
Дистиллированная база знаний 29 заметок, написанных по кодовой базе сервиса 100 Память как конспект: что теряется при сжатии знаний
Реальный корпоративный корпус 68 живых документов компании: контрагенты, договоры, процессы 50 Память как есть: документы без адаптации под поиск
Результаты

Гибрид «лексика + семантика + связи» находит 88-89% против ручного референса

89% точность на реальном корпусе (референс = 100%)
27% → 80% полнота multi-hop-вопросов после включения графа связей
секунды индексация корпуса - без вызова генеративной LLM
Режим поиска База знаний (100 вопросов) Корп-корпус (50 вопросов)
Полнотекстовый (русская морфология) 71% 78%
Семантический + граф связей 81% 80%
Гибридный протокол (все вместе) 88% 89%
Graphiti - открытый движок графа знаний, LLM-экстракция (Qwen2.5-7B, Q4_K_M) - 42% (по фактам - 67%)

Средний hit@5 по трем содержательным категориям вопросов. Сравнение с Graphiti - честное, но с оговоркой: он работал «из коробки» с локальной моделью экстракции Qwen2.5-7B-Instruct (Q4_K_M, Ollama, Apple M3 Max - условие изолированного контура), тогда как наша система - в настроенном виде. Показательна цена: его индексация того же корпуса заняла 2 часа 4 минуты и ~500 обращений к генеративной модели - почти на три порядка дольше наших ≈10 секунд и при нуле таких обращений у нас, и на связанных корпусах это не купило качества.

Масштабирование

Проверено на 3600 документах: запись ускорена в 3,7 раза, чтение не деградирует

×3,7 ускорение записи на 3600 документах после оптимизации
O(N) → O(log N) три «горячих» запроса записи переведены в индексный доступ
≈50 000 связей в графе - чтение держит латентность и качество

Чтобы проверить поведение под нагрузкой, мы загрузили открытый корпус из 3600 статей русской Википедии. Исходная реализация содержала на пути записи операции, линейные по числу связей, - из-за этого время записи документа росло с объемом (в 5 раз при росте корпуса в 14 раз), а суммарная загрузка вела себя выраженно сверхлинейно. Анализом планов выполнения рост удалось локализовать до трех запросов сложности O(N) и устранить стандартными средствами СУБД - индексами и переносом нормализации в SQL. После этого запись масштабируется практически линейно: рост времени записи документа сократился с 6,3× до 1,4×, а на 3600 документах полная загрузка ускорилась в 3,7 раза - при полном сохранении семантики связей (число ребер графа совпало до единицы).

Документов Полная загрузка (до → после) Запись, мс/документ (до → после)
1000 119 с → 62 с 237 → 124
2000 359 с → 130 с 359 → 130
3600 880 с → 236 с 550 → 147

Путь чтения при этом не деградирует: полнотекстовый и векторный поиск сохраняют латентность и качество выдачи до 3600 документов и ≈50 000 связей. Мы намеренно сначала измерили деградацию на открытом корпусе, а затем устраняли ее - и показываем обе кривые, а не только финальную.

Что мы поняли

Четыре вывода, которые переносимы на любую память

Лексика и семантика промахиваются на разном Точные идентификаторы надежнее находит полнотекстовый поиск, парафразы - векторный. Порознь - 67-80%, вместе - 88-89%. Гибрид - условие работоспособности.
Связи дают полноту Графовая экспансия почти не меняет «нашелся ли лучший документ», но утраивает шанс собрать все документы ответа: 27% → 80% на multi-hop-вопросах. Для вопросов, где ответ размазан по базе, граф - главный вклад.
Детерминизм дешевле экстракции На корпусах, где связи уже проставлены людьми (базы знаний, вики), автоматическое связывание по именам с учетом морфологии обходит LLM-экстракцию сущностей по качеству - при цене индексации почти на три порядка ниже и нулевом риске галлюцинаций в хранилище.
Часть вопросов требует возврата к первоисточникам Разрыв с референсом честный: примерно каждый четвертый-десятый вопрос требует возврата к первоисточникам. Правильный протокол для агента: сначала память, при сомнении - источник. На вопросы без ответа в корпусе система должна отвечать «не знаю» - это зона генератора, и мы ее отдельно контролируем карантином доверия.
Границы честности

Что эти цифры не доказывают

  • Вопросы и эталоны готовил один исследователь - общий словарь завышает абсолютные цифры и может влиять даже на относительный порядок режимов. Проверка на независимой разметке - впереди.
  • Измерялось качество поиска, а не конечных ответов: «нужный документ в топе» - необходимое, но не достаточное условие правильного ответа.
  • Качество измерялось на корпусах в десятки документов; масштаб проверялся отдельно - до 3600 документов и ≈50 000 связей: запись переведена в линейный режим, чтение не деградирует. Поведение на корпусах от десятков до сотен тысяч документов и мультиязычных хранилищах - следующий этап.
Статус · честный

Работает внутри FOXOPS, готовится к поставке

Память уже работает внутри FOXOPS: агенты в разработке ПО пишут в нее выводы и достают контекст в новых сессиях; корпоративные документы компании ищутся через тот же контур. Впереди - темпоральный слой фактов («что было верно тогда»), измерение экономии токенов агентных сессий и дистрибутивная реализация для поставки в контур заказчика.

Публикация · открытый архив

Опубликовано в Zenodo - цитируемый DOI

Рекомендуемое цитирование. Slednev A. Deterministic Long-Term Memory for LLM Agents: Hybrid Retrieval, Document Graph, and Write-Path Scalability in Air-Gapped Environments. Preprint. Version 4.0. July 2026. DOI: 10.5281/zenodo.21210732.

@misc{slednev2026deterministic,
  author    = {Slednev, Alexandr},
  title     = {Deterministic Long-Term Memory for LLM Agents: Hybrid Retrieval,
               Document Graph, and Write-Path Scalability in Air-Gapped Environments},
  year      = {2026},
  month     = jul,
  publisher = {Zenodo},
  version   = {4.0},
  doi       = {10.5281/zenodo.21210732},
  url       = {https://doi.org/10.5281/zenodo.21210732}
}