Cognee: как работает memory-платформа для AI агентов

#AI agents#knowledge graphs#open-source

Когда в прошлом месяце я тестировал очередного LLM-агента на сложном workflow, то столкнулся с классической проблемой: агент отлично справлялся с единичным запросом, но напрочь забывал контекст между сессиями. Cognee — это попытка решить проблему persistence memory без привязки к конкретному провайдеру AI.

Почему графы, а не векторные базы

Большинство решений для памяти агентов сегодня завязаны на эмбеддинги и векторный поиск. Cognee предлагает альтернативу — knowledge graphs. На практике это даёт три преимущества:

  1. Связи важнее похожести. В моём эксперименте с анализом цепочки API-вызовов граф корректно выявил причинно-следственные связи, которые RAG-система на векторах пропустила.

  2. Объяснимость. Граф можно визуализировать и буквально «увидеть», как агент строит ассоциации. Для продакшн-систем это критично.

  3. Гибкость метаданных. В том же векторе сложно хранить разнородные атрибуты вроде {source: "slack", confidence: 0.8, timestamp: iso}. Графы жуют это без проблем.

Пример конфигурации ноды в YAML (из реального теста):

- type: "APIEndpoint"
  properties:
    name: "user_profile"
    domain: "auth.service"
    stability: "high"
    relations:
      - calls: ["permissions_check"]
      - called_by: ["login_flow"]

Как работает Cognee под капотом

Платформа состоит из трёх ключевых компонентов:

  1. Адаптеры данных — превращают сырые логи, API-ответы или даже скриншоты интерфейсов в графовые структуры. В коде это выглядит как цепочка обработчиков:
class SlackMessageAdapter(GraphAdapter):
    async def transform(self, raw_data):
        # Парсинг threads, упоминаний, реакций
        yield Node(type="Message", id=message_ts, props=...)
        yield Edge(source=message_ts, target=user_id, type="MENTIONS")
  1. Query engine — позволяет агентам делать запросы типа «найди все ноды, связанные с ошибкой X за последне 24 часа». Использует GraphQL-like синтаксис.

  2. Интеграционный слой — хуки для популярных agent frameworks (LangChain, AutoGen). В моём тесте с AutoGen настройка заняла 15 минут.

Где это реально полезно

Из кейсов, которые я проверил лично:

Основной pain point на текущий момент — требования к инфраструктуре. Для графов среднего размера (1M+ нод) потребуется отдельный сервер с Neo4j или JanusGraph. Но для небольших агентов хватает и встроенного SQLite-режима.

Если вы уже работаете с AI агентами и устали каждый раз объяснять им контекст с нуля — стоит попробовать Cognee хотя бы в pet-project. Репозиторий активно развивается, и за последные две недели там появилась поддержка инкрементального обновления графов без полного перестроения.


Источник: https://github.com/topoteretes/cognee