AI Engineering • 12 мин чтение

Memory Management: Векторные БД как «Коллективный Разум» Агентов

Как синхронизировать состояние десятков автономных агентов в реальном времени, используя векторные эмбеддинги в качестве краткосрочной памяти? Разбираем архитектуру единого когнитивного пространства.

Проблема «Изолированного сознания»

Традиционные мультиагентные системы часто страдают от «фрагментации знаний». Агент А не знает, что Агент Б уже обновил статус задачи, пока не получит прямое сообщение.

"Без общей памяти агенты превращаются в группу людей, пытающихся собрать пазл в полной темноте, перекрикиваясь друг с другом."

Использование векторных БД (Pinecone, Weaviate, Milvus) позволяет создать Shared Context Layer — слой общей памяти, где каждое действие сохраняется в виде вектора.

Традиционная связь Векторная память
P2P Messaging
Shared Vector Space

Архитектурные компоненты памяти

Уровень Функция Технология Задержка
Hot Memory Текущий стек диалога, кэш последних действий Redis / RAM < 1ms
Short-term Memory Векторный поиск по недавним событиям всех агентов ChromaDB / Qdrant 10-50ms
Long-term Memory Архивные данные, глобальные правила и логика Pinecone / PGVector 100ms+

Write-Through

Каждое действие агента немедленно преобразуется в эмбеддинг и пушится в БД.

Semantic Retrieval

Перед каждым шагом агент делает запрос: «Что другие делали по этой теме за последние 5 минут?»

Conflict Resolution

Векторная близость помогает выявлять противоречивые намерения агентов до их исполнения.

memory_coordinator.py
import qdrant_client
from sentence_transformers import SentenceTransformer

# Инициализация "Коллективного Разума"
memory = qdrant_client.QdrantClient("localhost", port=6333)
encoder = SentenceTransformer('all-MiniLM-L6-v2')

def sync_agent_state(agent_id, action_description, metadata):
    # 1. Создание векторного отпечатка действия
    vector = encoder.encode(action_description)
    
    # 2. Запись в общую краткосрочную память
    memory.upsert(
        collection_name="swarm_memory",
        points=[
            qdrant_client.models.PointStruct(
                id=generate_uuid(),
                vector=vector.tolist(),
                payload={"agent": agent_id, "data": metadata}
            )
        ]
    )
    
    # 3. Поиск релевантных действий коллег
    context = memory.search(
        collection_name="swarm_memory",
        query_vector=vector.tolist(),
        limit=5
    )
    return context

Ключевые выводы

01

Векторная память снижает объем передаваемых данных между агентами на 70%.

02

Агенты могут подключаться к задаче "на лету", просто запросив текущий векторный контекст.

03

Механизм TTL (Time-To-Live) в БД автоматически очищает неактуальную "краткосрочную" память.

04

Семантический поиск позволяет находить зависимости, которые не были явно прописаны в коде.