Загрузка 0
ПОДЕЛИТЬСЯ

Мой блог

Листай вниз

Память ИИ-агента против миллионного контекстного окна: эксперименты с Радиантом

Память ИИ-агента против миллионного контекстного окна: эксперименты с Радиантом

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

В агенте Коворк/Код экосистемы Битрикс24 за долговременную память отвечает модуль Радиант. В рамках подготовки этого материала я подробно изучил его работу, провел четыре масштабных теста и сравнил полученные результаты с актуальными мировыми исследованиями систем длинного контекста.

Техническая схема обработки токенов нейросетью
Техническая схема обработки токенов
График производительности языковой модели при росте контекста
График производительности модели
Архитектурная схема взаимодействия модулей памяти и роутера
Архитектурная схема взаимодействия модулей
Таблица сравнения результатов различных тестов памяти
Сравнительная таблица результатов тестирования
Интерфейс управления корпоративным хранилищем документов
Интерфейс управления корпоративным хранилищем

Проблема контекстного окна в один миллион токенов

Контекстное окно языковой модели функционирует в рамках одного сеанса взаимодействия, вмещая актуальную беседу и подгруженные для конкретного ответа файлы. Теоретически можно попытаться скармливать модели всю историю целиком, однако она физически не поместится даже в миллионное окно. Моя личная рабочая база в Радианте к моменту тестирования весила 6,8 миллиона токенов, включая переписки, корпоративные документы, задачи и профили сотрудников. Это превышает пределы окна в несколько раз, а из чистой переписки позволяет хранить лишь последние четыре месяца.

Реклама

Более того, даже попадающий внутокнь объем обрабатывается моделями далеко не безупречно. По мере роста длины входящего массива нейросеть начинает хуже ориентироваться, теряет ключевые факты и путает их с похожими соседями. Проведенные мною тесты на синтетическом журнале команды показали, что на малых объемах факты находятся без труда, но после преодоления порога в 400 тысяч токенов точность ответов резко падает. Если в середине документа значилось, что стенд QA-17 запущен на порту 8443, то при контексте в 700 тысяч модель уверенно выдавала порт соседнего стенда 8539, причем варианта «не знаю» выдано не было ни разу.

Реклама

Устройство памяти Коворк/Код и архитектура Радианта

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

Портрет разработчика программного обеспечения за рабочим ноутбуком
Привет! Меня зовут Глеб Смольяков, я инженер-программист в DevRel-отделе Битрикс24.

В ходе экспериментов моя персональная база памяти распределилась следующим образом: около 3,9 миллиона токенов заняли карточки людей, справочные статьи и события, 2,6 миллиона ушло на архивный журнал переписки, 160 тысяч составили рабочие задачи и еще порядка 100 тысяч заняли служебные темы и сеансы связи с агентом.

После последнего обновления Радиант успешно подтянул глубокую историю, увеличив объем доступного журнала с двух с лишним тысяч до почти 17 тысяч сообщений. Сами файлы хранятся в читаемых форматах Markdown и JSON, а поиск по ним организован по ключевым словам без использования сложных векторных индексов. Система выдает в приоритет те записи, где зафиксировано наибольшее количество совпадений слов. Глубина хранения регулируется настройками тарифа и может составлять 30, 90, 180 дней либо безлимитный режим. У меня активирован безлимит, благодаря чему в распоряжении агента оказались даже сообщения пятилетней давности.

Интерфейс графа памяти и связанных источников данных Радианта
Сцена памяти: граф и список источников, из которых Радиант собирает память.

Эксперимент с архивными сообщениями

Для проверки эффективности долговременной памяти я отобрал 15 сообщений возрастом от одного месяца до пяти лет. Условием чистоты эксперимента было то, что первые шесть слов каждого фрагмента уникальны для всей базы. Запросы отправлялись в изолированных сеансах, а успешным результат считался при правильном определении чата и точной даты.

Реклама
Интерфейс настроек шкалы глубины хранения архивных данных
Шкала глубины 0, 30, 90, 180 дней и безлимит

Инструмент успешно обнаружил все 15 целевых записей из 15 возможных, включая артефакты трех- и пятилетней давности. Если бы использовалось чистое контекстное окно на миллион токенов, в него гарантированно попали бы лишь четыре сообщения, созданные за последние четыре месяца, тогда как остальные одиннадцать остались бы за бортом. Поиск осуществляется в два этапа: на первом отбираются тысячи записей, содержащих хотя сотню лучших совпадений, после чего модель выбирает релевантные данные. Общее время обработки запроса варьировалось в пределах от одной до девяти секунд.

Пример интерфейса чата с замененными вымышленными данными
Пример изменён: название чата, имя и текст сообщения вымышленные

Сравнение двух подходов: Радиант против полной выгрузки

Я протестировал 12 одинаковых вопросов в двух различных сценариях. В первом случае Коворк работал в связке с Радиантом, а во втором вся доступная выгрузка памяти объемом до 380 тысяч токенов передавалась напрямую модели через специализированный маршрутизатор. Полная выгрузка включила в себя переписки, задачи и часть карточек сотрудников, однако объемная база знаний в нее не поместилась.

Вариант с прямой выгрузкой выдал восемь правильных ответов из двенадцати, допустив ошибки на тех фрагментах, которые не влезли в лимит, либо запутавшись в подсчетах внутри огромного массива. Радиант при этом ошибся лишь единожды, сгенерировав случайный идентификатор на месте данных, затертых защитным фильтром. Выгрузка продемонстрировала преимущество в скорости ответа, обрабатывая запросы в среднем за 10 секунд против 87 секунд у Радианта, а также лучше справлялась со сложными задачами обобщения информации.

Диалоговое окно чата с демонстрацией ответов ИИ-агента
Пример изменён: название чата, имя и текст сообщения вымышленные

Оценка объема передаваемых данных и текущие ограничения

Анализ логов показал, что за один стандартный рабочий ход агентная модель получает в медиане около 89 тысяч токенов, что составляет всего 1,3% от общего объема базы Радианта. На таком умеренном объеме модель функционирует стабильно и не совершает арифметических или логических ошибок, поэтому гигантское окно на миллион токенов для подобных рутинных задач попросту не требуется.

Тем не менее, определенные слабые места у системы сохраняются. В частности, автоматическое построение тем по всей базе пока дает сбой: большую часть кластеров составляют служебные уведомления или дежурные фразы, а задачи и документы в тематические подборки попадают редко. Кроме того, поиск по ключевым словам порой выдает избыточное число результатов, если в запросе встречаются распространенные лексемы. Фильтрация персональных данных периодически срабатывает избыточно, повреждая даты или IP-адреса, а локальные файлы хранятся в незашифрованном виде прямо в профиле пользователя.

Заключение: как устроена память у других современных агентов

Современные разработчики реализуют долговременную память для ИИ-систем по-разному, но общая концепция сводится к выносу полезных сведений за пределы активного контекста с последующей подгрузкой по требованию. В то время как облачные решения вроде ChatGPT или Copilot опираются на собственные фоновые алгоритмы анализа истории и скрытые системные папки, подход Радианта строится на непосредственном объединении разрозненных рабочих контуров внутри единого корпоративного пространства.

Главное достоинство такого подхода заключается в том, что рядовому сотруднику не нужно вручную фиксировать важные рабочие факты в специальных блокнотах. Переписка, задачи, регламенты и служебные документы изначально аккумулируются в инфраструктуре Битрикс24 и автоматически индексируются системой, превращаясь в надежный поисковый слой поверх всей накопленной истории компании.

01.