语义记忆存储服务

一个轻量级、本地优先的AI代理个人记忆中心,支持语义向量搜索和多代理共享记忆。

  • by ibb-net
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ibb-net/easy_memory_mcp

使用说明

易记忆MCP

英语 | 中文

一个轻量级的、本地第一个人工智能代理个人记忆中心,由 兰斯数据库 和那个 模型上下文协议(MCP).

多个代理(Claude Code、OpenClaw、Cursor等)连接到这个MCP服务器,通过语义向量搜索存储和检索长期记忆,不需要外部数据库进程。

特性

  • 语义搜索 --LanceDB支持的向量相似性搜索,而不仅仅是关键字匹配
  • 零基础设施 --LanceDB是嵌入式的,无需运行单独的数据库服务器
  • 多代理共享内存 --一个内存存储,多个代理
  • 命名空间隔离 --每个项目或代理都有内存范围,以防止渗透
  • 中、英文 --用途 BAAI/bge-m3 高质量双语嵌入
  • 本地优先和私人 --所有数据都保留在您的计算机上 ~/memory-mcp/
  • 去重 --保存时自动进行相似性检查,避免冗余内存
  • 记忆巩固 --合并相似的记忆,保持店铺整洁

建筑

┌─────────────┐  ┌─────────────┐  ┌─────────────┐
│ Claude Code  │  │  OpenClaw   │  │  Cursor ...  │
└──────┬───────┘  └──────┬──────┘  └──────┬───────┘
       │    MCP (stdio/SSE)│               │
       └─────────┬─────────┘───────────────┘
                 │
       ┌─────────▼──────────┐
       │  Easy Memory MCP    │
       │  (Python + FastMCP) │
       ├────────────────────┤
       │  Memory Manager     │  ← dedup / consolidate / decay
       │  Embedding Engine   │  ← local model or API
       │  Namespace Router   │  ← multi-project isolation
       └─────────┬──────────┘
                 │
       ┌─────────▼──────────┐
       │      LanceDB        │
       │   ~/memory-mcp/     │
       │  (embedded, local)  │
       └────────────────────┘

用例

Easy Memory MCP专为需要持久、可搜索内存的AI代理而设计。以下是一些常见的场景:

  • 个人开发助理 --Claude Code会记住您的编码偏好、项目决策和跨会话的技术背景。不再重复自己。
  • 多智能体知识共享 --多个代理(Claude Code、Cursor、自定义机器人)共享一个内存存储。一个代理学习的知识可以通过命名空间隔离供所有人使用。
  • 项目上下文持久性 -体系结构决策、API契约和部署说明在单个会话之后仍然有效。几周后回来,你的经纪人已经知道这个项目了。
  • 反馈循环 --代理保存更正(“不要使用 any 在TypeScript中”),并避免在未来的会话中重复错误。
  • 参考图书馆 --构建一个可搜索的知识库,其中包含开发过程中发现的解决方案、代码片段和调试技巧。

看 用例 有关代码示例的详细演练。

快速开始

一键安装(推荐)

git clone https://github.com/ibb-net/easy_memory_mcp.git
cd easy_memory_mcp
bash install.sh

交互式安装程序处理:包安装、Claude Code MCP注册、systemd服务设置和嵌入模型下载。

非交互式:

bash install.sh --install          # full install
bash install.sh --download-model   # download embedding model
bash install.sh --status           # show status

手动安装

pip install easy-memory-mcp

或来源:

git clone https://github.com/ibb-net/easy_memory_mcp.git
cd easy_memory_mcp
pip install -e ".[dev]"

跑

# stdio transport (default, for Claude Code / Cursor)
python -m easy_memory_mcp

# SSE transport (persistent service, recommended)
python -m easy_memory_mcp --transport sse --port 8135

# Streamable HTTP transport (newest, recommended for remote)
python -m easy_memory_mcp --transport streamable-http --port 8135

SSE/HTTP传输在启动时预加载嵌入模型,因此第一个工具调用会立即响应。

在MCP客户端中注册

克劳德代码 (苏格兰和南方能源公司,建议通过 claude CLI):

claude mcp add memory -s user --transport sse http://localhost:8135/sse

克劳德代码 (stdio--通过配置文件 ~/.claude.json 或 .mcp.json):

{
  "mcpServers": {
    "memory": {
      "command": "python",
      "args": ["-m", "easy_memory_mcp"],
      "env": {
        "MEMORY_MCP_PATH": "/home/you/memory-mcp"
      }
    }
  }
}

光标/风帆 (.cursor/mcp.json):

{
  "mcpServers": {
    "memory": {
      "url": "http://localhost:8135/sse"
    }
  }
}

远程访问 (通过HTTPS与反向代理):

{
  "mcpServers": {
    "memory": {
      "url": "https://your-domain.com/sse"
    }
  }
}

健康检查

curl http://localhost:8135/health
# {"status":"ok","uptime_seconds":123.4,"namespace":"default","storage_path":"/home/you/memory-mcp"}

代理提示模板

为了获得最佳结果,请配置AI代理的系统提示/规则,使其自动检索和存储内存。现成的模板位于 prompts/ 文件夹:

克劳德代码

从以下位置复制内容 prompts/claude-code-memory.md 进入你的项目 CLAUDE.md (或 ~/.claude/CLAUDE.md 全球效应)。

光标

光标使用 规则 --注入到每个对话中的项目级提示文件。

复制 .mdc 将文件归档到项目的 .cursor/rules/ 目录:

文件 描述
cursor-memory-light.mdc 轻量级——回答前搜索,有价值时保存
cursor-memory-strict.mdc 严格SOP——强制搜索,明确保存条件
cursor-memory-light-cn.mdc 轻量版(中文)
cursor-memory-strict-cn.mdc 严格版(中文)
# Example: install the light version
mkdir -p .cursor/rules
cp prompts/cursor-memory-light.mdc .cursor/rules/memory-workflow.mdc

这 alwaysApply: true frontmatter确保规则在每次对话中都是有效的。

其他代理商

对于支持系统提示的任何代理,关键说明如下:

  1. 在回答之前 --呼叫 memory_search(query=<user request>, top_k=5)
  2. 保存时 --呼叫 memory_save(content=..., type=..., tags=[...], importance=...)
  3. 从不保存 凭证、一次性信息或未经证实的假设

MCP工具

工具 说明
memory_save 通过自动嵌入和数据消除检查存储新内存
memory_search 使用可选类型/标签/命名空间过滤器进行语义相似性搜索
memory_get 按ID检索内存
memory_update 更新内容或标签(自动重新嵌入)
memory_delete 按ID删除内存
memory_list 按类型、标签或命名空间筛选列出内存
memory_consolidate 合并相似的内存以减少冗余

示例用法(来自代理)

# Save a memory
memory_save(content="User prefers concise responses without emoji", type="feedback", tags=["style"], namespace="default")

# Search memories
memory_search(query="user communication preferences", top_k=5)

# List all feedback memories
memory_list(type="feedback", limit=20)

数据模型

每条内存记录包含:

字段 类型 描述
id string UUID,自动生成
content string 内存文本
type 字符串 user / feedback / project / reference / conversation
tags list[string] 可搜索标签
namespace string 项目或代理范围(默认值: "default")
source string 哪个代理创建了它(例如。 "claude-code")
importance float 0–1分,用于排名和衰减
access_count int 跟踪检索此内存的频率
created_at 日期时间 创建时间戳
updated_at 日期时间 上次修改时间戳
last_accessed_at 日期时间 上次检索时间戳

配置

所有配置都是通过环境变量进行的:

变量 默认值 描述
MEMORY_MCP_PATH ~/memory-mcp LanceDB数据文件目录
MEMORY_MCP_EMBEDDING_MODEL BAAI/bge-m3 句子变压器型号名称
MEMORY_MCP_EMBEDDING_DIM 1024 嵌入向量维度
MEMORY_MCP_DEDUP_THRESHOLD 0.95 去重的相似性阈值(0-1)
MEMORY_MCP_NAMESPACE default 内存的默认命名空间
MEMORY_MCP_EMBEDDING_BACKEND local local 或 openai
OPENAI_API_KEY (未设置) 设置为使用OpenAI嵌入而不是本地模型
MEMORY_MCP_OPENAI_MODEL text-embedding-3-small OpenAI嵌入模型(如果使用API)
HF_HUB_OFFLINE (未设置) 设置为 1 防止HuggingFace在线检查(建议维修)

技术栈

与备选方案的比较

功能 易记忆MCP 官方MCP内存 MCP内存服务 Mem0
矢量语义搜索 是 否(仅关键字) 是 是
零外部deps 是(嵌入式DB) 是(JSON文件) 否(ChromaDB) 否
中国支持 是(BGE-M3) 不适用 否 否
命名空间隔离 是 否 否 弱
内存整合 是 否 是 是
本地优先 是 是 有 可选

路线图

  • [x] 第一阶段——核心:LanceDB商店、嵌入引擎、7个MCP工具、测试
  • [x] 第2阶段--增强:命名空间隔离、数据消除、整合、运行状况端点
  • []第3阶段——生态系统:身份验证和多用户、Web UI、导入/导出、重要性衰减

演示

一个独立的演示脚本显示了API的核心操作-保存、搜索、重复数据消除、更新、删除:

pip install -e ".[dev]"
python examples/demo.py

看 examples/demo.py 完整的来源。

贡献

欢迎投稿!看 贡献.md 用于:

  • 开发设置和代码风格
  • 如何添加新的MCP工具或嵌入后端
  • 提交消息约定和公关指南
  • 问题报告指南

许可证

麻省理工学院