Skip to main content
Glama

Graph Memory

Локальная память на основе графа знаний для ИИ-агентов кодирования — один межпроектный граф, который может запрашивать любой диалог, чтобы агент в одной сессии получал знания, накопленные во всех остальных.

Локальная система памяти на основе графа знаний, заменяющая традиционное разделение памяти агента по сессиям. Использует граф знаний + диффузионный поиск PageRank для установления связей между концепциями, позволяя агенту в одной сессии получать доступ к знаниям всех проектов.

Краткое описание на английском: Graph Memory заменяет память по сессиям единым локальным графом знаний. Поиск начинается с семантических ближайших соседей и распространяется через персонализированный PageRank по автоматически построенным рёбрам, объединяя 50% семантических + 50% графовых диффузионных оценок. Предоставляет агентам 5 инструментов через MCP и включает визуализацию на Cytoscape.js. Всё работает локально — эмбеддинги создаются локальной моделью sentence-transformers, граф хранится в JSON-файле, а LLM используется (опционально) только для извлечения знаний.

Возможности / Features

  • Ассоциативный поиск по графу — PageRank распространяется по рёбрам графа, выводя из одной технической точки связанные детали развёртывания, извлечённые уроки или предпочтения пользователя

  • Извлечение знаний через LLM — автоматическое извлечение структурированных узлов знаний из диалогов/памяти

  • Трёхуровневая дедупликация — MD5 → сходство эмбеддингов >0,85 → создание нового

  • Коррекция памяти — при обнаружении устаревшей информации можно обновить существующие узлы

  • Интеграция MCP — автоматическое предоставление 5 инструментов каждому агенту через MCP

  • Визуализация — тёмная тема Cytoscape.js, фильтрация/добавление/удаление/изменение

  • Локальный запуск — данные не покидают устройство, модель эмбеддингов загружается локально

Быстрый старт

1. Установка

git clone https://github.com/yourname/graph-memory.git
cd graph-memory
pip install -e ".[mcp,dotenv]"

2. Конфигурация

cp .env.example .env
# 编辑 .env 填入 LLM API key 和 base_url(检索/写入不需要 LLM,只有 extract 需要)

3. Запуск

python -m graph_memory.server

Откройте http://127.0.0.1:9121/ для просмотра интерфейса визуализации.

При первом запуске будет загружена модель эмбеддингов (по умолчанию BAAI/bge-base-zh-v1.5, около 400 МБ), после чего она будет кэшироваться локально.

3a. Демонстрационные данные (необязательно)

При первом использовании можно сразу загрузить набор общих технических примеров, чтобы пустой проект работал из коробки:

python seed_demo.py

Затем на http://127.0.0.1:9121/ можно увидеть небольшой граф. Очистка демонстрационных данных: удалите data/graph.json и data/embeddings.npz, затем перезапустите сервер.

3b. Docker запуск одной командой

docker build -t graph-memory .
docker run -p 9121:9121 -v gm_data:/app/data -v gm_models:/root/.cache/huggingface graph-memory

4. Импорт существующей памяти

При первом использовании импортируйте существующую память из Hermes / Claude Code / Codex:

curl -X POST http://127.0.0.1:9121/api/import?source=all

Также можно пакетно извлечь историю сессий Claude Code:

curl -X POST http://127.0.0.1:9121/api/extract/sessions

Пути импорта можно переопределить через переменные окружения (HERMES_HOME / CLAUDE_HOME / CODEX_HOME), по умолчанию они указывают на стандартные расположения агентов в домашнем каталоге пользователя.

Использование в агенте

MCP Server (доступен автоматически)

Добавьте MCP-сервер graph-memory в конфигурацию MCP вашего агента, после перезапуска автоматически будут доступны 5 инструментов:

Инструмент

Описание

mcp_graph_memory_retrieve

Поиск знаний (ключевые слова → распространение PageRank)

mcp_graph_memory_write

Запись новых знаний (автоматическое создание рёбер + дедупликация)

mcp_graph_memory_extract

Извлечение знаний из диалога через LLM

mcp_graph_memory_update

Исправление устаревших знаний

mcp_graph_memory_recent

Просмотр недавно добавленных

Агент может напрямую вызывать эти инструменты в диалоге, без ручных операций.

MCP-сервер работает через stdio и выступает в роли HTTP-клиента к FastAPI-серверу, сам не загружает модель, чтобы не иметь две несогласованные копии графа данных.

Skill (инструкция для агента)

SKILL.md — это инструкция по использованию для агента. После загрузки агент будет следовать правилам:

  • Перед ответом сначала выполнять поиск по графу памяти

  • После ответа извлекать ценные новые знания и записывать их

  • Если обнаружена устаревшая информация, активно обновлять

Способы использования

Способ 1: Прямой диалог с агентом

"Помоги мне посмотреть проект по инференсу на сервере"

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

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

"Запомни, что vLLM 0.25 добавил поддержку speculative decoding"

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

Способ 3: Исправление устаревшей информации

"Порт сервиса уже изменён, не 8000"

Агент вызовет update для обновления существующего узла.

Способ 4: Визуальный просмотр

Откройте http://127.0.0.1:9121/ для поиска, фильтрации, добавления/удаления/изменения.

Архитектура

┌──────────────────────────────────────────┐
│  Agent (Hermes / Claude Code / ...)       │
│  ┌─────────────┐  ┌──────────────────┐   │
│  │ MCP Client  │  │ Skill (指导)     │   │
│  └──────┬──────┘  └──────────────────┘   │
│         │ stdio                           │
│  ┌──────▼──────┐                          │
│  │ MCP Server  │  (轻量, 不加载模型)       │
│  │ mcp_server  │                          │
│  └──────┬──────┘                          │
└─────────┼─────────────────────────────────┘
          │ HTTP
┌─────────▼─────────────────────────────────┐
│  FastAPI Server (port 9121)              │
│  ┌───────────┐  ┌──────────┐  ┌────────┐ │
│  │ GraphEngine│  │ LLM提取  │  │ 导入器 │ │
│  │ NetworkX  │  │ OpenAI   │  │        │ │
│  │ PageRank  │  │ 兼容API  │  └────────┘ │
│  │ bge embed │  └──────────┘              │
│  └───────────┘                            │
│       │                                   │
│  ┌────▼────┐  ┌────────────┐              │
│  │ graph   │  │ embeddings │              │
│  │ .json   │  │ .npz       │              │
│  └─────────┘  └────────────┘              │
└─────────────────────────────────────────────┘

MCP-сервер — это лёгкий HTTP-клиент, не загружающий модель эмбеддингов. Все вычисления выполняются на FastAPI-сервере, чтобы избежать несогласованности данных из-за двух процессов, каждый из которых держит свой движок.

API

Конечная точка

Метод

Описание

/api/retrieve

POST

Поиск знаний (embedding + PageRank)

/api/write

POST

Запись новых знаний (автоматическое создание рёбер + дедупликация)

/api/update

POST

Исправление/обновление существующих знаний

/api/extract

POST

Извлечение знаний из диалога через LLM

/api/recent

GET

Недавно добавленные узлы

/api/graph

GET

Полный граф данных (визуализация)

/api/stats

GET

Статистика графа

/api/search

GET

Поиск по ключевым словам

/api/import

POST

Импорт внешней памяти

/api/extract/sessions

POST

Пакетное извлечение сессий

/api/health

GET

Проверка работоспособности (Docker)

Бенчмарк

python benchmark.py

30 вопросов × 3 раунда × оценка LLM, сравнение качества ответов "только MEMORY.md" против "с графом памяти".

Набор вопросов нужно настраивать под вашу собственную базу знаний (см. комментарии в начале benchmark.py). Регрессионное тестирование поведения поиска выполняется с помощью regression.py (детерминированное сравнение снимков, не зависит от LLM):

python regression.py snapshot baseline      # 改代码前
python regression.py snapshot after-change  # 改代码后
python regression.py compare baseline after-change

Тестирование

pip install -e ".[test]"
pytest tests/ -q

Тесты движка используют детерминированный фейковый эмбеддер, не загружают реальную модель, поэтому работают офлайн.

Управление знаниями (защита от разрастания)

При длительном использовании граф будет расширяться. Регулярно запускайте инструменты управления:

python manage.py status        # 查看图健康状态
python manage.py dedup         # 扫描重复节点报告
python manage.py merge          # 合并相似节点(embedding >0.85)
python manage.py prune --dry-run   # 预览孤立+过时节点
python manage.py prune              # 执行清理

Правила очистки:

  • Узлы со степенью <2 и не обновлявшиеся 90 дней удаляются (связанные сохраняются)

  • При объединении похожих узлов сохраняется более длинное/подробное содержимое

  • Все операции поддерживают предварительный просмотр с --dry-run

Параметры конфигурации

Переменная окружения

По умолчанию

Описание

GM_LLM_API_KEY

(нет)

Ключ API LLM, нужен только для интерфейса extract

GM_LLM_BASE_URL

(нет)

OpenAI-совместимый базовый URL

GM_LLM_MODEL

(нет)

Имя модели

GM_EMBEDDING_MODEL

BAAI/bge-base-zh-v1.5

Локальная модель эмбеддингов

GM_HOST

127.0.0.1

Адрес прослушивания сервиса

GM_PORT

9121

Порт сервиса

HERMES_HOME

~/.hermes

Корневой каталог памяти Hermes

CLAUDE_HOME

~/.claude

Корневой каталог Claude Code

CODEX_HOME

~/.codex

Корневой каталог Codex

Лицензия

MIT

-
license - not tested
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.

  • Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.

  • Persistent memory and knowledge graphs for AI agents. Hybrid search, context checkpoints, and more.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Doodle-Lin/graph-memory'

If you have feedback or need assistance with the MCP directory API, please join our Discord server