C
ChaoBro

Технический разбор Cloudflare Agent Memory: архитектура устойчивой памяти для AI-агентов

Технический разбор Cloudflare Agent Memory: архитектура устойчивой памяти для AI-агентов

Даже когда контекстное окно превышает миллион токенов, исследования показывают: чем полнее оно заполнено, тем ниже качество генерации модели.

Это явление называется context rot (контекстная деградация). Глубокий анализ этой проблемы можно найти в нашей предыдущей статье Настоящее ограничение контекста в 1M токенов — не техника, а вычислительная мощность — ограничения больших моделей связаны не только с технологиями, но и с вычислительными затратами.

Разработчики стоят перед дилеммой: загрузить всё и наблюдать падение качества, или агрессивно обрезать контекст, рискуя потерять критически важную для агента информацию. Систематическое обсуждение управления памятью AI-агентов также представлено в статье Проблема «контекстной амнезии» у AI-агентов.

Cloudflare в конце апреля на Agent Week представила новый продукт: Agent Memory (закрытое бета), который пытается решить эту проблему на фундаментальном уровне. Полный обзор продуктовой линейки Agent Week доступен в статье Cloudflare полностью открывает самостоятельную регистрацию агентов. Agent Memory не загружает всю историю диалога в контекстное окно — вместо этого извлекает из разговора структурированные воспоминания и извлекает только релевантные части по запросу.

«Мы создали Agent Memory, потому что реальные рабочие нагрузки на платформе выявили пробелы, которые существующие решения не способны полностью закрыть. Агенты, работающие неделями или месяцами с реальными кодовыми базами и производственными системами, нуждаются в памяти, которая остаётся полезной по мере роста, а не просто хорошо показывает себя на чистых бенчмарк-датасетах.» — Тайсон Траутманн и Роб Саттер, инженерная команда Cloudflare

Конвейер извлечения: двухпроходное сканирование + восьмиступенчатая валидация

Входящий конвейер Agent Memory спроектирован достаточно тщательно.

Каждое сообщение сначала получает контент-адресуемый SHA-256 ID, поддерживающий идемпотентную повторную обработку — повторная отправка того же сообщения не создаёт дублирующих записей.

Экстрактор работает в двух параллельных каналах:

  • Широкое сканирование: разбивает текст на блоки примерно по 10 000 символов, захватывая общую семантику
  • Детальное сканирование: фокусируется на конкретных значениях — именах, ценах, номерах версий и т. д.

Затем валидатор проводит восемь проверок, и только прошедшие сообщения классифицируются по четырём типам памяти:

  • Facts (Факты): в формате ключ-значение, индексируются по стандартизированным темам
  • Events (События): записи действий, привязанные к временной шкале
  • Instructions (Инструкции): правила поведения; новые воспоминания перезаписывают старые версии, а не удаляют их
  • Tasks (Задачи): списки дел

По умолчанию для извлечения и классификации используется Llama 4 Scout (17B MoE) — Cloudflare обнаружила, что более крупные модели на этом этапе не дают заметного преимущества.

Архитектура поиска: пять параллельных каналов + RRF-фьюжн

По-настоящему интересная часть — сторона поиска. Agent Memory — это не просто векторный поиск, а пять параллельно работающих каналов, результаты которых объединяются через Reciprocal Rank Fusion (RRF):

КаналНазначение
Полнотекстовый поискСовпадение по ключевым словам
Прямой поиск по ключу фактаМгновенный доступ к индексированным фактам
Поиск по исходным сообщениямВозврат к исходному тексту диалога
Прямой векторный поискСемантическое сходство
HyDE-векторный поискГенерация декларативного ответа для решения проблемы лексического несоответствия

Канал HyDE (Hypothetical Document Embeddings) заслуживает особого внимания: он сначала генерирует гипотетический ответ, а затем использует эмбеддинг этого ответа для поиска — это позволяет обойти лексические различия между пользовательским запросом и сохранёнными воспоминаниями.

На этапе синтеза используется Nemotron 3 (120B MoE) — тесты Cloudflare показали, что большие модели оказывают существенную помощь именно на этапе синтеза.

Совместная память: командная координация знаний агентов

Уникальная возможность Agent Memory — совместное использование памяти. Профиль памяти не привязан к одному агенту — команда может использовать общий профиль памяти, и соглашения, архитектурные решения, «племенные знания» команды, усвоенные кодирующим агентом одного инженера, становятся доступны всем остальным.

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

Сравнение с отраслевыми решениями

Сегмент Agent Memory становится всё более конкурентным:

  • Mem0: управляемый облачный API, поддержка векторного, графового и ключ-значений хранилищ
  • Zep Graphiti: темпоральный граф знаний, отслеживающий срок действия фактов
  • LangMem: интеграция с LangGraph, но требует самостоятельного развёртывания
  • Letta (ранее MemGPT): многоуровневая архитектура памяти, автономное управление контекстом агентом

Дифференциатор Cloudflare — edge-дистрибуция и глубокая интеграция с собственными вычислительными примитивами (Durable Objects, Vectorize, Workers AI). Для команд, уже строящих агентов на Cloudflare, стоимость интеграции минимальна.

Риски, на которые стоит обратить внимание

Независимый оценщик Кристофер Данэм отметил несколько моментов, требующих взвешенного подхода:

  • Вендор-лок: данные можно экспортировать, но сам конвейер поиска не является переносимым. «Exportable means you can extract the raw facts. It doesn’t mean your retrieval pipeline is portable.»
  • Неконтролируемое качество извлечения: извлечение воспоминаний зависит от вторичной модели, выбранной Cloudflare, и разработчики не могут вмешаться
  • Рекомендация: критически важные факты следует явно вызывать через инструмент remember, а не полагаться на автоматическое поглощение
  • Архитектурная рекомендация: историю диалогов и извлечённые факты следует разделять с самого начала; сжатие контекста должно запускаться при 60% ёмкости, а не когда окно заполнено полностью

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


Основные источники: InfoQ - Cloudflare Agent Memory, официальный блог Cloudflare