Дата публикации
ai_products

YourMemory: «биологическая» память для ИИ‑агентов с 2× лучшей точностью, чем Zep Cloud

Что нового

YourMemory — это локальный слой долговременной памяти для ИИ‑агентов, который копирует поведение человеческой памяти. Он работает как стандартный MCP‑сервер и встраивается в Claude Code, Claude Desktop, Cline, Cursor, OpenCode и другие MCP‑клиенты.

Ключевые факты:

  • Память не сбрасывается между сессиями: ассистент помнит предпочтения, стек, баги, контекст проектов.
  • Механизм забывания основан на кривой Эббингауза: важные факты «живут» дольше, редко используемые стираются автоматически.
  • На бенчмарке LoCoMo-10 (1 534 QA‑пары, 10 многоходовых диалогов) YourMemory показал:
    • Recall@5: 59% (95% CI: 56–61%).
    • Zep Cloud на том же тесте: 28% (95% CI: 26–30%).
    • То есть примерно в 2 раза выше точность извлечения памяти, чем у Zep Cloud.
  • Локальная установка без Docker и внешних сервисов:
    • Поддерживаются Python 3.11, 3.12, 3.13, 3.14.
    • По умолчанию всё хранится в ~/.yourmemory/memories.duckdb и ~/.yourmemory/graph.pkl.
  • Автоматическая деградация и чистка памяти:
    • Сила памяти экспоненциально падает.
    • Записи со «силой» ниже 0.05 удаляются раз в 24 часа.
  • Мультиагентный режим: несколько агентов могут делить один инстанс YourMemory с приватными и общими пространствами памяти.

Для пользователей это означает: Claude Code или Cursor перестают «забывать» ваш проект между сессиями и начинают вести себя ближе к личному разработческому ассистенту.

Как это работает

Биологическое забывание по Эббингаузу

YourMemory моделирует человеческое забывание. Каждая запись получает:

  • importance — важность (0–1), задаётся при сохранении;
  • strength — текущую «силу» памяти, которая убывает со временем;
  • recall_count — сколько раз память доставали из хранилища.

Формулы:

effective_λ = base_λ × (1 - importance × 0.8)
strength = importance × e^(−effective_λ × days) × (1 + recall_count × 0.2)
score = cosine_similarity × strength

Что это даёт:

  • Важные факты (importance ближе к 1) забываются медленнее.
  • Часто запрашиваемые записи «закрепляются» за счёт recall_count.
  • При поиске учитывается не только близость по смыслу (cosine_similarity), но и сила памяти (strength).
  • Записи со strength < 0.05 YourMemory удаляет раз в сутки.

Категории и срок «жизни» памяти

Скорость забывания зависит от категории записи:

  • strategy — живёт ~38 дней без повторного вызова.
    • Например, удачные подходы к архитектуре.
  • fact — ~24 дня.
    • Предпочтения, стабильные настройки, идентичность пользователя.
  • assumption — ~19 дней.
    • Негласные контексты, которые можно скорректировать.
  • failure — ~11 дней.
    • Ошибки, особенности конкретной среды, временные баги.

Эти интервалы — время, за которое память заметно ослабевает, если её не использовать.

Гибридный поиск: вектора + граф

YourMemory комбинирует векторный поиск и граф связей между воспоминаниями.

  1. Раунд 1 — векторный поиск

    • Все записи имеют эмбеддинг (sentence-transformers all-mpnet-base-v2, 768 измерений).
    • Поиск идёт по косинусному сходству.
    • Возвращаются top‑k записей выше порога схожести.
  2. Раунд 2 — графовый обход

    • Поверх векторной БД строится граф (NetworkX по умолчанию или Neo4j опционально).
    • Узлы — отдельные воспоминания, рёбра — связи с cosine_similarity ≥ 0.4, дополнительно учитывается вес по глаголу (verb_weight).
    • YourMemory делает BFS‑обход из найденных на первом раунде узлов и подтягивает связанные записи, даже если у них низкое прямое сходство с запросом.

Пример из документации:

recall("Python backend")
Round 1 → [1] Python/MongoDB (sim=0.61)
           [2] DuckDB/spaCy (sim=0.19)
Round 2 → [5] Docker/Kubernetes (sim=0.29 — ниже порога, но пришло через граф)

Есть ещё один трюк: chain-aware pruning. Если память почти «умерла» по силе, но у неё есть сосед в графе с силой выше порога, YourMemory не удаляет её. Связанные цепочки стареют вместе, а не поодиночке.

Мультиагентная память и права доступа

YourMemory поддерживает несколько агентов с разными правами на чтение и запись:

from src.services.api_keys import register_agent

result = register_agent(
    agent_id="coding-agent",
    user_id="sachit",
    can_read=["shared", "private"],
    can_write=["shared", "private"],
)

# → result["api_key"] — ym_xxxx, показывается один раз

Дальше агент передаёт api_key в MCP‑вызовы:

store_memory(
    content="Staging uses self-signed cert — skip SSL verify",
    importance=0.7,
    category="failure",
    api_key="ym_xxxx",
    visibility="private",
)

recall_memory(
    query="staging SSL",
    api_key="ym_xxxx",
)
# → вернёт общие записи + приватные этого агента
# → другие агенты увидят только shared

Стек под капотом

По умолчанию YourMemory полностью локален:

  • DuckDB — векторное хранилище (~/.yourmemory/memories.duckdb) с поддержкой косинусного сходства.
  • NetworkX — графовая БД (~/.yourmemory/graph.pkl).
  • sentence-transformers — локальные эмбеддинги (all-mpnet-base-v2).
  • spaCy — локальная NLP‑модель для дедупликации и извлечения SVO‑троек (subject–verb–object).
  • APScheduler — планировщик для ежедневного задания по «старению» памяти.

Для команд или больших датасетов доступны опции:

  • PostgreSQL + pgvector — внешняя векторная БД.
  • Neo4j — внешний графовый бэкенд (pip install 'yourmemory[neo4j]').

Что это значит для вас

Когда YourMemory полезен

YourMemory особенно интересен, если вы:

  • Пишете код с Claude Code, Cline, Cursor, OpenCode или другим MCP‑клиентом.
  • Хотите, чтобы ассистент помнил:
    • стиль кода (tabs vs spaces, типы аннотаций, правила линтера);
    • структуру проекта и стек (PostgreSQL vs MySQL, FastAPI vs Django);
    • баги и обходные пути в конкретной инфраструктуре;
    • личные предпочтения по инструментам и форматам ответов.
  • Работаете в долгих проектах, где контекст растягивается на недели, а не на один чат.
  • Не хотите отдавать историю диалогов во внешний облачный сервис и предпочитаете локальное хранение.

Пример сценария:

store_memory(
    "Sachit prefers tabs over spaces in Python",
    importance=0.9,
    category="fact",
)

# В следующей сессии, без дополнительного напоминания:
recall_memory("Python formatting")
# → {"content": "Sachit prefers tabs over spaces in Python", "strength": 0.87}

Ассистент сам подтянет эту запись и будет форматировать код как вы любите.

Где YourMemory не решит проблему

  • Он не заменяет саму языковую модель. Это надстройка над Claude 4, GPT‑4.1, GPT‑o3 и другими моделями, которая даёт им память.
  • Он не синхронизирует память между устройствами через облако «из коробки». Всё по умолчанию лежит локально.
  • Он не управляет доступом к самим моделям — только к памяти.

Если вы просто иногда спрашиваете ИИ «как сделать join в SQL», выгода будет небольшой. YourMemory раскрывается, когда вы живёте с ассистентом в одном проекте неделями.

Доступность из России

YourMemory — это Python‑пакет и локальный сервис. Его можно установить без VPN, если вы умеете ставить пакеты из PyPI и зависимости вроде spaCy, DuckDB и sentence-transformers.

Однако большинство сценариев из документации завязаны на MCP‑клиенты:

  • Claude Code и Claude Desktop.
  • Cline, Cursor, OpenCode, Windsurf, Continue, Zed.

Эти продукты могут требовать VPN или не работать в России в зависимости от политики Anthropic, Microsoft, GitHub и других разработчиков. Сам YourMemory технически доступен, но практическая польза зависит от того, можете ли вы легально и технически использовать MCP‑клиент.

Место на рынке

По сути, YourMemory конкурирует с сервисами долговременной памяти для ИИ‑ассистентов, один из которых — Zep Cloud.

Конкретные цифры из бенчмарка LoCoMo-10:

  • YourMemory (BM25 + vector + graph + decay):
    • Recall@5: 59%.
    • 95% доверительный интервал: 56–61%.
  • Zep Cloud:
    • Recall@5: 28%.
    • 95% доверительный интервал: 26–30%.

То есть на этом наборе из 1 534 QA‑пар YourMemory почти вдвое лучше извлекает релевантные воспоминания в топ‑5 результатов.

По инфраструктуре подходы разные:

  • YourMemory:
    • Локальная установка, без Docker и внешних сервисов по умолчанию.
    • Вся память хранится у вас, можно поднять PostgreSQL/Neo4j для командной работы.
    • Лицензия CC-BY-NC-4.0: бесплатен для личного, образовательного, академического и опенсорс‑использования, но запрещён для коммерции без отдельного договора.
  • Zep Cloud:
    • Облачный сервис (по информации из его экосистемы, а не из этого текста), фокус на интеграции с приложениями.
    • Коммерческие условия, ориентированные на продакшн.

Выбор между ними упирается в три вопроса:

  1. Нужен ли вам полностью локальный контроль над памятью.
  2. Нужна ли коммерческая эксплуатация.
  3. Устраивает ли вас точность Recall@5 на длинных диалогах.

Если вы делаете коммерческий продукт, придётся либо договариваться с автором YourMemory (контакт: mishrasachit1@gmail.com), либо смотреть в сторону других решений.

Установка

YourMemory не требует Docker и развёртывания внешней базы по умолчанию. Достаточно Python 3.11–3.14.

Шаг 1 — установка пакета

pip install yourmemory

Шаг 2 — первичная настройка

yourmemory-setup

Команда скачает языковую модель spaCy и инициализирует локальную БД по адресу:

~/.yourmemory/memories.duckdb

Шаг 3 — получить путь к конфигу

yourmemory-path

Команда выведет полный путь к исполняемому файлу и готовый блок конфигурации, который можно вставить в настройки MCP‑клиента.

Как запустить

Ниже — готовые конфиги для популярных MCP‑клиентов. Важно: если клиент не наследует PATH вашей оболочки, используйте полный путь из yourmemory-path.

Claude Code

Добавьте в ~/.claude/settings.json:

{
  "mcpServers": {
    "yourmemory": {
      "command": "yourmemory"
    }
  }
}

Перезагрузите окно: Cmd+Shift+P → Developer: Reload Window.

Claude Desktop

macOS — ~/Library/Application Support/Claude/claude_desktop_config.json.

Windows — %APPDATA%\Claude\claude_desktop_config.json.

Добавьте блок:

{
  "mcpServers": {
    "yourmemory": {
      "command": "yourmemory"
    }
  }
}

Перезапустите Claude Desktop.

Cline (VS Code)

VS Code не наследует PATH из вашей оболочки, поэтому сначала выполните:

yourmemory-path

Скопируйте полный путь к бинарю и добавьте в настройках Cline → MCP Servers → Edit MCP Settings:

{
  "mcpServers": {
    "yourmemory": {
      "command": "/full/path/to/yourmemory",
      "args": [],
      "env": {
        "YOURMEMORY_USER": "your_name"
      }
    }
  }
}

Перезапустите Cline после сохранения.

Cursor

Добавьте в ~/.cursor/mcp.json:

{
  "mcpServers": {
    "yourmemory": {
      "command": "/full/path/to/yourmemory",
      "args": [],
      "env": {
        "YOURMEMORY_USER": "your_name"
      }
    }
  }
}

OpenCode

Добавьте в ~/.config/opencode/config.json:

{
  "mcp": {
    "yourmemory": {
      "type": "local",
      "command": ["yourmemory"],
      "environment": {
        "YOURMEMORY_USER": "your_name"
      }
    }
  }
}

Затем скопируйте инструкции по workflow памяти:

cp sample_CLAUDE.md ~/.config/opencode/instructions.md

Перезапустите OpenCode.

Любой MCP‑совместимый клиент

YourMemory работает как стандартный MCP‑сервер поверх stdio. Поддерживаются Windsurf, Continue, Zed и другие клиенты с MCP.

Если клиент не наследует PATH, используйте полный путь из yourmemory-path в поле command.

Инструкции для памяти в проекте

Чтобы Claude автоматически вызывал инструменты памяти, добавьте в корень проекта инструкции:

cp sample_CLAUDE.md CLAUDE.md

Отредактируйте CLAUDE.md и замените YOUR_NAME и YOUR_USER_ID на свои значения. После этого Claude начнёт использовать стандартный workflow:

  • recall_memory → в начале задачи.
  • store_memory → когда узнаёт что‑то новое о вас или проекте.
  • update_memory → когда информация устарела или изменилась.

MCP‑инструменты

У YourMemory три инструмента, которые вызываются автоматически, когда конфигурация настроена:

  • recall_memory(query) — старт каждой задачи. Возвращает релевантные воспоминания, отсортированные по similarity × strength.
  • store_memory(content, importance) — после нового факта. Сохраняет запись с учётом биологического забывания.
  • update_memory(id, new_content) — при обновлении факта. Перезаписывает содержимое и переиндексирует его в графе.

Схема работы в коде:

# Пример сессии
store_memory(
    "Sachit prefers tabs over spaces in Python",
    importance=0.9,
    category="fact",
)

# Следующая сессия — без напоминания
recall_memory("Python formatting")
# → {"content": "Sachit prefers tabs over spaces in Python", "strength": 0.87}

Опциональная интеграция с PostgreSQL и Neo4j

Если локального DuckDB и NetworkX мало, можно перейти на PostgreSQL + pgvector и Neo4j.

PostgreSQL + pgvector

Установка зависимостей:

pip install yourmemory[postgres]

Создайте файл .env:

DATABASE_URL=postgresql://YOUR_USER@localhost:5432/yourmemory

macOS:

brew install postgresql@16 pgvector && brew services start postgresql@16
createdb yourmemory

Ubuntu / Debian:

sudo apt install postgresql postgresql-contrib postgresql-16-pgvector
createdb yourmemory

Neo4j

Для Neo4j достаточно установить пакет с дополнительными зависимостями:

pip install 'yourmemory[neo4j]'

Граф по умолчанию подключается по адресу bolt://localhost:7687.

Архитектура

Логика YourMemory строится вокруг MCP‑клиента и двух хранилищ: векторного и графового.

Упрощённая схема:

Claude / Cline / Cursor / любой MCP‑клиент

│
├── recall_memory(query, api_key?)
│   └── embed → векторное сходство (Раунд 1)
│       → графовый BFS (Раунд 2)
│       → score = sim × strength → top‑k
│       → распространение recall → буст соседей
│
├── store_memory(content, importance, category?, visibility?, api_key?)
│   └── проверка: вопрос? → reject
│   └── проверка противоречий → update при конфликте
│   └── embed() → INSERT → index_memory() → узел графа + рёбра
│
└── update_memory(id, new_content, importance)
    └── embed(new_content) → UPDATE → обновление узла в графе

Векторная БД (Раунд 1): DuckDB (по умолчанию)

Графовая БД (Раунд 2): NetworkX (по умолчанию)

memories.duckdb:
  ├── embedding FLOAT[768]
  ├── importance FLOAT
  ├── recall_count INTEGER
  ├── visibility VARCHAR
  └── agent_id VARCHAR

graph.pkl:
  ├── nodes: memory_id, strength
  └── edges: sim × verb_weight ≥ 0.4

Neo4j (опционально): bolt://localhost:7687

Лицензия и коммерческое использование

YourMemory распространяется под лицензией CC-BY-NC-4.0.

Разрешено:

  • личное использование;
  • образование;
  • академические исследования;
  • опенсорс‑проекты.

Запрещено без отдельного письменного договора:

  • любое коммерческое использование.

По вопросам коммерческого лицензирования автор предлагает писать на mishrasachit1@gmail.com.

Откуда данные

Для оценки качества YourMemory использует датасет LoCoMo от Snap Research:

  • Maharana et al. (2024). LoCoMo: Long Context Multimodal Benchmark for Dialogue.
  • В бенчмарке YourMemory применяет комбинацию BM25 + векторный поиск + граф + биологическое забывание.

Именно на этом наборе YourMemory показал Recall@5 59% против 28% у Zep Cloud.


Читайте также