Архитектура без векторных баз данных
Google Cloud выпустила референсную реализацию Always-On Memory Agent в репозитории generative-ai. Ключевое отличие подхода — полный отказ от векторных баз данных и эмбеддингов. Вместо этого система использует модель Gemini 3.1 Flash-Lite для чтения, анализа и записи структурированных данных напрямую в SQLite. Это решение направлено на снижение задержек и стоимости при фоновой работе 24/7.
Система построена на Google ADK (Agent Development Kit) и работает как непрерывный процесс, а не как однократный вызов API. Архитектура включает оркестратора и трех специализированных субагентов, каждый из которых управляет своими инструментами для работы с хранилищем памяти.
Три агента: Ингест, Консолидация, Запрос
Процесс обработки информации разделен на три этапа, выполняемые разными агентами:
- IngestAgent: Принимает контент, используя мультимодальные возможности Gemini. Он извлекает сводку, сущности, темы и assigns importance score. Результат записывается в таблицу memories.
- ConsolidateAgent: Запускается по таймеру (по умолчанию каждые 30 минут). Анализирует неконсолидированные записи, находит связи между ними и пишет синтезированную сводку и ключевые инсайты. Это позволяет агенту «думать» и строить новые знания в фоновом режиме.
- QueryAgent: Отвечает на вопросы, читая все памяти и инсайты консолидации. Важно: агент цитирует ID использованных записей как источники.
Сравнение с традиционными подходами
Новый подход решает проблемы пассивности RAG и потери деталей в обычных суммаризациях. Сравнение характеристик представлено ниже:
| Подход | Хранение | Активная обработка | Основное ограничение |
|---|---|---|---|
| Vector DB + RAG | Эмбеддинги в векторном хранилище | Нет | Пассивно: эмбеддинг создается один раз, поиск происходит позже |
| Суммаризация диалога | Сжатый текст | Нет | Потеря деталей; отсутствие кросс-ссылок |
| Графы знаний | Узлы и ребра | Ручное обслуживание | Дорого в построении и поддержке |
| Always-On Memory Agent | Структурированные строки в SQLite | Непрерывная консолидация | Запрос читает до 50 последних записей |
Поддержка форматов и запуск
IngestAgent поддерживает 27 типов файлов в пяти категориях: текст (.txt, .md, .json, .csv, .log, .xml, .yaml, .yml), изображения (.png, .jpg, .jpeg, .gif, .webp, .bmp, .svg), аудио (.mp3, .wav, .ogg, .flac, .m4a, .aac), видео (.mp4, .webm, .mov, .avi, .mkv) и документы (.pdf). Файлы просто помещаются в папку ./inbox для автоматической обработки.
Для запуска требуется установка зависимостей и установка переменной окружения GOOGLE_API_KEY. Агент запускает HTTP API на порту 8888 (по умолчанию) и предоставляет эндпоинты для /ingest, /query, /status, /memories, /consolidate, /delete и /clear. Также доступна опциональная панель управления на Streamlit.
Практическое применение
Паттерн подходит для задач, требующих долговременного и эволюционирующего контекста. Примеры использования включают:
- Исследовательский ассистент: Ингестирует PDF, аудио встреч и скриншоты, самостоятельно связывая целевые показатели стоимости с проблемами надежности.
- Персональная база знаний: Поглощает заметки, статьи и изображения, выявляя темы, которые пользователь явно не связывал.
- Агент поддержки: Хранит прошлые тикеты как структурированные памяти и отвечает на новые вопросы со ссылками на предыдущие кейсы.
Источник: MarkTechPost ↗
