独立于具体 Agent 的持久化记忆层 (MCP Server),可被 Claude Code / Qoder / Cursor 复用
Project description
AI Memory MCP Server
Agent-agnostic persistent memory as an MCP Server — local-first: memories travel with your project in
.ai-memory/, shared across Claude Code / Qoder / Cursor.
独立于具体 Agent 的持久化记忆层,以 MCP Server 形式提供。可被 Claude Code / Qoder / Cursor 等任何 MCP 客户端复用。
架构
- SQLite:结构化主源(CRUD + FTS5 关键词检索)
- Chroma 嵌入式:向量检索(持久化到
.ai-memory/chroma/) - Embedding:任意 OpenAI 兼容服务(火山方舟 / 硅基流动 / OpenAI / 其他),默认火山
doubao-embedding-vision;见下文配置 - Markdown 镜像:每条记忆同步写
.ai-memory/memories/<category>/<id>.md,人工可读可编辑
三层用 id 关联。记忆存于各项目的 .ai-memory/ 目录,跟项目走;不同 Agent 连同一项目时共享同一记忆库,source_agent 戳区分写入者。
记忆分类
| category | 用途 |
|---|---|
user |
用户偏好(技术背景/开发习惯/回答偏好) |
project |
项目知识(架构/选型/目录/设计决策) |
process |
工作过程(已解决/Bug/排查/经验) |
agent |
Agent 协作(谁做过什么/接手须知) |
安装
cd <clone 目录>\ai_memory_mcp
python -m pip install -r requirements.txt
配置 Embedding(任意 OpenAI 兼容服务)
ai-memory 的 embedding 层是通用 OpenAI 兼容客户端,火山方舟 / 硅基流动 / OpenAI / 任何兼容服务都能用。首次运行会在 .ai-memory/config.yml 生成默认配置,按需修改即可。
配置字段(.ai-memory/config.yml 的 embedding 段)
| 字段 | 说明 |
|---|---|
provider |
标识(仅记录用,不影响逻辑) |
model |
embedding 模型名 |
base_url |
OpenAI 兼容端点 |
api_key_env |
读哪个环境变量拿 key |
dim |
向量维度(须与模型一致) |
在项目根 .env 配对应 key,再改 config.yml 的 embedding 段。
示例
火山方舟 doubao-embedding-vision(默认;Agent/Coding Plan 须走 Plan 端点 /api/plan/v3,标准 /api/v3 会 401)
embedding:
provider: volcengine
model: doubao-embedding-vision
base_url: https://ark.cn-beijing.volces.com/api/plan/v3
api_key_env: VOLCENGINE_API_KEY
dim: 2048
.env:VOLCENGINE_API_KEY=...
硅基流动 bge-large-zh(中文文本专精)
embedding:
provider: siliconflow
model: BAAI/bge-large-zh-v1.5
base_url: https://api.siliconflow.cn/v1
api_key_env: SILICONFLOW_API_KEY
dim: 1024
.env:SILICONFLOW_API_KEY=...
OpenAI
embedding:
provider: openai
model: text-embedding-3-small
base_url: https://api.openai.com/v1
api_key_env: OPENAI_API_KEY
dim: 1536
.env:OPENAI_API_KEY=...
任何其他 OpenAI 兼容服务:填对应 base_url / model / api_key_env / dim 即可。
切换 embedding 模型后,旧向量维度可能不匹配;清空
.ai-memory/chroma/重新remember,或跑python tests/rebuild_vectors.py。
检索机制
recall 用三路融合检索,提升命中率:
- 向量检索(权重 0.6):Chroma cosine;embedding 内容为
title + tags + content拼接,标题/标签信息进入向量 - 关键词检索(权重 0.25):SQLite FTS5 trigram
- 标题/标签匹配(权重 0.15):查询词出现在标题(+0.15)或标签(+0.075)时加分
候选扩大到 top_k*3,三路融合后取 top_k。
接入 Claude Code(user scope,所有项目共用代码、各自项目数据)
claude mcp add ai-memory -s user -e PYTHONPATH=<clone 目录>\ai_memory_mcp -- python -m ai_memory --agent claude-code --project-from-cwd
<clone 目录> 换成你 clone 的实际路径。Qoder / Cursor 同理,改 --agent 即可。
MCP 工具
remember(title, content, category, tags?, scope?)- 存记忆(三处同步,自动 embed)recall(query, category?, top_k=5)- 混合检索(向量 + 关键词 + 标题匹配)get_memory(id)- 取单条search_memories(category?, tag?, agent?)- 结构化过滤update_memory(id, ...)- 更新(重算 embed + 刷新 md)forget(id)- 删除(三处同步)list_memories(category?)- 列出who_am_i()- 当前 agent + 项目上下文
管理 CLI(后续阶段)
python -m ai_memory.cli init|export|sync|check
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ai_agent_memory_mcp-0.1.0.tar.gz.
File metadata
- Download URL: ai_agent_memory_mcp-0.1.0.tar.gz
- Upload date:
- Size: 19.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30c607a4eec77a2297a7bb34e48906a86a3f26f4381ff1885c3fe5715d461e64
|
|
| MD5 |
57f1ce064192c597758f401c3d95cc0f
|
|
| BLAKE2b-256 |
c6199b40f3127027908b499f6beb93497b8f3517a376749e9206006599ea986b
|
File details
Details for the file ai_agent_memory_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ai_agent_memory_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 22.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62ce7870a1b865605fb5d9b04e01021d857893bc232c00fb0062f2b293664350
|
|
| MD5 |
69a9c2ce83601a8a612b43f964609686
|
|
| BLAKE2b-256 |
670aec2f82134f33096c1cb4fa636cae1ee5440592b014c36451d3fe20d583a9
|