Как 300+ агентов eToro делятся знаниями через MemClaw — и почему это меняет правила игры для multi-agent архитектур
MemClaw — это инфраструктурный слой коллективной памяти для флотов AI-агентов, решающий фундаментальную проблему координации знаний в мультиагентных системах. В отличие от традиционных решений, где каждый агент оперирует изолированным контекстом (RAG-пайплайн или локальный кэш LLM), MemClaw предоставляет управляемое, разделяемое и самообучающееся хранилище семантических фактов, доступное всем экземплярам флота. Продукт ориентирован на инженеров, разрабатывающих production-grade мультиагентные системы (от 10 до 10 000+ агентов), где критична консистентность данных, версионирование памяти и автоматическое разрешение конфликтов при параллельной записи.
Ключевое УТП — механизм governed memory: каждое изменение в коллективной памяти проходит через политики доступа (RBAC/ABAC), временные метки и автоматическую дедупликацию на основе эмбеддингов. Это превращает память из простого векторного хранилища в полноценную систему управления знаниями с гарантиями ACID-транзакций для агентных операций. Стек технологий: Python 3.10+ (core), Rust (высоконагруженный слой записи), Redis Streams (брокер событий), PostgreSQL + pgvector (персистентный слой). Распространяется по лицензии Apache 2.0 с дополнительными enterprise-модулями под коммерческой лицензией.
Внутренняя архитектура MemClaw построена по принципу трёхуровневого конвейера: Ingestion Layer (приём данных от агентов) → Governance Layer (валидация, дедупликация, политики) → Storage Layer (векторное + графовое хранение). Каждый агент флота подключается через SDK (Python/TypeScript) и отправляет факты в формате структурированных чанков: {agent_id, timestamp, payload: str, embedding: vector, ttl: int, access_policy: str}. Ingestion Layer использует асинхронную очередь на базе Redis Streams с гарантией exactly-once delivery — критично для сценариев, где два агента одновременно фиксируют противоречивые данные (например, разная цена товара на двух страницах).
Воркфлоу обработки запроса: агент отправляет запрос в MemClaw → Governance Layer проверяет права доступа агента к запрашиваемому сегменту памяти → выполняется гибридный поиск (векторный по эмбеддингу + графовый по связям между фактами) → результат проходит через ранжирующий фильтр (re-ranking на основе cross-encoder) → возвращается топ-K фактов с метаданными (источник, время создания, уровень доверия). Критическая особенность — self-improving механизм: если агент подтверждает релевантность факта (explicit feedback) или использует его в генерации ответа (implicit feedback), MemClaw повышает его вес в индексе; при получении противоречащих данных запускается процесс разрешения конфликтов через голосование агентов или ручную модерацию.
1. Управляемая коллективная память с RBAC/ABAC
Каждый факт привязывается к политике доступа: агенты из группы «парсеры» могут только писать, агенты из группы «аналитики» — читать и подтверждать, администраторы — удалять. Политики определяются на уровне флота и наследуются дочерними агентами. Это позволяет строить иерархические системы памяти, где, например, агенты первого уровня собирают сырые данные, второго — верифицируют, третьего — генерируют отчёты.
2. Автоматическая дедупликация и разрешение конфликтов
При записи нового факта MemClaw вычисляет cosine similarity его эмбеддинга с существующими. Если сходство >0.92 (порог настраивается), запускается механизм слияния: сравниваются временные метки и уровень доверия (confidence score). Конфликтующие факты не удаляются, а помечаются как «pending resolution» и отправляются в очередь на модерацию. Это предотвращает «галлюцинации дублирования» в мультиагентных системах.
3. Self-improving ранжирование на основе обратной связи
MemClaw поддерживает матрицу обратной связи: каждый раз, когда агент использует факт из памяти, система фиксирует это как implicit positive signal. Если агент явно оценивает факт (лайк/дизлайк) — как explicit signal. На основе этих данных пересчитывается weight факта в индексе (формула: new_weight = old_weight * 0.9 + feedback_score * 0.1). Через 1000+ итераций наиболее релевантные факты получают приоритет при поиске.
4. Гибридный поиск: векторный + графовый
Помимо стандартного ANN-поиска по эмбеддингам (HNSW-индекс в pgvector), MemClaw строит граф связей между фактами на основе co-occurrence в запросах агентов. Если два факта часто запрашиваются вместе, между ними создаётся ребро с весом, пропорциональным частоте. При поиске выполняется beam search по графу: сначала находятся топ-10 векторных кандидатов, затем из них выбираются 3 с наибольшим количеством связей с другими релевантными фактами.
5. Версионирование памяти с возможностью отката
Каждое изменение (запись, удаление, обновление веса) фиксируется в журнале транзакций. MemClaw хранит до 100 последних версий состояния памяти (настраивается). Это позволяет откатить флот к предыдущему состоянию, если после обновления памяти агенты начали генерировать некорректные ответы. Версионирование реализовано через паттерн Event Sourcing: все мутации — это события, которые можно воспроизвести заново.
6. TTL-управление с автоматической архивацией
Каждый факт имеет time-to-live (по умолчанию 7 дней). По истечении TTL факт не удаляется, а перемещается в «холодное» хранилище (S3-совместимое объектное хранилище) с пониженным приоритетом поиска. Если агент запрашивает факт из холодного хранилища, он возвращается с пометкой stale: true и временем архивации. Это позволяет балансировать между актуальностью данных и стоимостью хранения.
7. Интеграция с любыми LLM-провайдерами через универсальный адаптер
MemClaw не привязан к конкретному эмбеддеру или LLM. SDK поддерживает кастомные функции эмбеддинга: можно передать свой энкодер (например, intfloat/multilingual-e5-large) или использовать встроенный (all-MiniLM-L6-v2). Для генерации ответов агенты могут использовать OpenAI, Anthropic, локальные модели через vLLM — MemClaw выступает только как слой памяти, не затрагивая логику генерации.
| Характеристика | Значение |
|---|---|
| Модель распространения | Freemium (Open Source core + Enterprise модули) |
| Цена | Бесплатно (до 1000 фактов, 3 агента) / от $49/мес (10 000 фактов, 50 агентов) / Enterprise (кастом) |
| API | REST (OpenAPI 3.0) + gRPC (для high-throughput) + Python/TypeScript SDK |
| Интеграции | LangChain, CrewAI, AutoGen, OpenAI Assistants API, Haystack, LlamaIndex |
| Лицензия | Apache 2.0 (core) / Proprietary (Enterprise: governance audit, SSO, on-prem) |
| Хранение | PostgreSQL + pgvector (векторы) + Redis (кэш) + S3 (архив) |
| Макс. пропускная способность | 5000 запросов/сек (Enterprise), 100 запросов/сек (Free) |
Установка через pip или Docker. Для production рекомендуется использовать Docker Compose с PostgreSQL и Redis. Минимальные требования: Python 3.10+, 4GB RAM (для эмбеддингов), PostgreSQL 15+ с pgvector.
# Быстрый старт через pip
pip install memclaw
# Инициализация (создаёт конфиг и поднимает локальный Redis/PostgreSQL через Docker)
memclaw init --name my-fleet --agents 5
# Запуск сервера памяти
memclaw serve --port 8080
# Пример записи факта через Python SDK
from memclaw import FleetMemory
fleet = FleetMemory(api_key="sk-xxx", endpoint="http://localhost:8080")
fleet.remember(
agent_id="parser-01",
payload="Цена товара SKU-123: 4500 рублей",
metadata={"source": "ozon.ru", "confidence": 0.95},
ttl=86400 # 24 часа
)
# Поиск фактов
results = fleet.recall(
query="сколько стоит SKU-123",
top_k=5,
min_confidence=0.8
)
print(results)
| Критерий | MemClaw | Mem0 (mem0.ai) | RAGatouille |
|---|---|---|---|
| Ключевая фича | Governed shared memory с RBAC и self-improving | Персонализированная память для одного пользователя | Только RAG-пайплайн, без коллективного доступа |
| Цена | Бесплатно до 1000 фактов / от $49/мес | Бесплатно до 500 фактов / от $29/мес | Бесплатно (Open Source) |
| Open Source | Apache 2.0 (core) | MIT (core) | MIT (полностью) |
| Сложность | Средняя (требуется PostgreSQL + Redis) | Низкая (только API) | Высокая (настройка индексов, обучение ранжировщика) |
| Мультиагентность | Нативная (флоты, RBAC, конфликты) | Только single-agent | Не поддерживается |
| Self-improving | Да (implicit + explicit feedback) | Нет | Нет (только статический индекс) |
| Версионирование | Да (Event Sourcing, до 100 версий) | Нет | Нет |
Ближайшие конкуренты: Mem0 — хорош для single-agent персонализации, но не поддерживает коллективную память и разрешение конфликтов. RAGatouille — мощный RAG-инструмент, но требует ручного управления индексами и не имеет встроенных механизмов для мультиагентных флотов. ChromaDB — более низкоуровневое векторное хранилище, без governance и self-improving. MemClaw выигрывает в сценариях, где критична координация знаний между десятками агентов с разными уровнями доступа.
MemClaw — это зрелое инфраструктурное решение для мультиагентных систем, где коллективная память является узким местом. Продукт решает реальные проблемы координации знаний, которые не адресуют ни RAG-пайплайны (статичные), ни single-agent memory (изолированные). Self-improving ранжирование и версионирование через Event Sourcing — это фичи, которые оправдывают затраты на развёртывание PostgreSQL и Redis. Однако продукт не подходит для быстрых прототипов или single-agent сценариев — здесь Mem0 или даже простой RAG будут проще и дешевле.
Кому стоит выбрать MemClaw: командам, разрабатывающим production-флоты из 10+ агентов с разными ролями (парсеры, аналитики, генераторы), где критична консистентность данных и возможность отката изменений. Идеально для e-commerce (каталоги с динамическими ценами), мониторинга (агрегация логов от множества источников) и юридических систем (версионирование фактов с аудитом).
Кому посмотреть альтернативы: стартапам на стадии MVP (один агент, прототип) — используйте Mem0 или ChromaDB. Командам, которым нужен только RAG без мультиагентности — RAGatouille или LlamaIndex. Тем, кто не хочет управлять PostgreSQL и Redis — облачные решения типа Pinecone или Weaviate (но без governance и self-improving).
Итоговая рекомендация: если вы строите мультиагентную систему, где память — это не просто хранилище, а управляемый актив с политиками и обратной связью — MemClaw лучший выбор в категории на начало 2025 года. Для простых сценариев — избыточен.