graph-memory
Graph Memory
A local knowledge-graph memory for AI coding agents — one cross-project graph that any conversation can query, so an agent in one session reaches knowledge captured in every other.
A local knowledge-graph memory system that replaces the traditional per-session memory of agents. It uses a knowledge graph + PageRank diffusion retrieval to achieve cross-concept association, allowing an agent to access knowledge from all projects in one session.
English summary: Graph Memory replaces per-session memory with a single local knowledge graph. Retrieval seeds from semantic nearest-neighbors and spreads via Personalized PageRank over auto-built edges, fusing 50% semantic + 50% graph-diffusion scores. It exposes 5 tools to agents over MCP and ships a Cytoscape.js visualization. Everything runs locally — embeddings are a local sentence-transformers model, the graph is a JSON file, and the LLM is only used (optionally) for knowledge extraction.
特性 / Features
图式关联检索 — PageRank 沿图扩散,从一个技术点带出相关的部署细节、经验教训或用户偏好
LLM 知识提炼 — 从对话/记忆中自动提取结构化知识节点
三层去重 — MD5 → embedding 相似度 >0.85 → 新建
记忆修正 — 发现过时信息可更新已有节点
MCP 集成 — 通过 MCP 自动为各 Agent 暴露 5 个工具
可视化 — Cytoscape.js 暗色主题,筛选/增删改查
本地运行 — 数据不出本机,embedding 模型本地加载
快速开始
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/ 看可视化界面。
首次启动会下载 embedding 模型(默认
BAAI/bge-base-zh-v1.5,约 400MB),之后缓存到本地。
3a. 演示数据(可选)
首次体验时,可种入一组通用技术知识样例,让空白项目开箱即用:
python seed_demo.py随后在 http://127.0.0.1:9121/ 即可看到一张小图。清空演示数据:删除 data/graph.json 和 data/embeddings.npz 后重启 server。
3b. Docker 一键运行
docker build -t graph-memory .
docker run -p 9121:9121 -v gm_data:/app/data -v gm_models:/root/.cache/huggingface graph-memory4. 导入已有记忆
首次使用时,从 Hermes / Claude Code / Codex 导入已有记忆:
curl -X POST http://127.0.0.1:9121/api/import?source=all也可以批量提炼 Claude Code session 历史:
curl -X POST http://127.0.0.1:9121/api/extract/sessions导入路径可通过环境变量覆盖(
HERMES_HOME/CLAUDE_HOME/CODEX_HOME),默认指向各 Agent 在用户主目录下的标准位置。
在 Agent 中使用
MCP Server(自动可用)
在你的 Agent 的 MCP 配置中加入 graph-memory MCP server,重启后自动获得 5 个工具:
工具 | 说明 |
| 检索知识(关键词→PageRank扩散) |
| 写入新知识(自动建边+去重) |
| LLM 提炼对话→知识 |
| 修正过时知识 |
| 查看最近添加 |
agent 在对话中可以直接调用这些工具,无需手动操作。
MCP server 通过 stdio 运行,以 HTTP 客户端身份代理到 FastAPI 后端,本身不加载模型,避免与后端持有两份不一致的图数据。
Skill(agent 指导)
SKILL.md 是给 agent 的使用指导,agent 加载后会按规则:
回答前先检索图记忆
回答后提取有价值的新知识写入
发现过时信息时主动更新
使用方式
方式 1:直接跟 agent 对话
"帮我看看某服务器上的推理项目"
agent 会自动调 retrieve 检索相关知识,拿到项目路径/端口/分支信息后回答。
方式 2:让 agent 记住新知识
"记住,vLLM 0.25 新增了 speculative decoding 支持"
agent 会调 write 写入知识图谱,自动关联已有节点。
方式 3:修正过时信息
"某服务的端口已经改了,不是 8000 了"
agent 会调 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 server 是轻量 HTTP 客户端,不加载 embedding 模型。所有计算在 FastAPI server 中完成,避免两个进程各自持有引擎导致数据不一致。
API
端点 | 方法 | 说明 |
| POST | 检索知识 (embedding + PageRank) |
| POST | 写入新知识 (自动建边 + 去重) |
| POST | 修正/更新已有知识 |
| POST | LLM 提炼对话→知识 |
| GET | 最近添加的节点 |
| GET | 全图数据 (可视化) |
| GET | 图统计 |
| GET | 关键词搜索 |
| POST | 导入外部记忆 |
| POST | 批量提炼 session |
| GET | 健康检查 (Docker) |
评测
python benchmark.py30 道题 × 3 轮 × LLM 评分,对比"只靠 MEMORY.md"vs"加图记忆"的回答质量。
题集需针对你自己的知识库定制(见
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引擎层测试用确定性假 embedder,不下载真实模型,离线可跑。
知识管理(防膨胀)
日常使用久了图会膨胀。定期运行管理工具:
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预览
配置项
环境变量 | 默认 | 说明 |
| (无) | LLM API key,仅 extract 接口需要 |
| (无) | OpenAI 兼容 base url |
| (无) | 模型名 |
|
| 本地 embedding 模型 |
|
| 服务监听地址 |
|
| 服务端口 |
|
| Hermes 记忆根目录 |
|
| Claude Code 根目录 |
|
| Codex 根目录 |
License
MIT
This server cannot be installed
Maintenance
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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