关于 remem-mcp — Local-first MCP Memory + CodeGraph + Wiki
remem-mcp 为编码 Agent 提供基于本地 SQLite 的记忆、代码结构索引和 Wiki,记录错误与决策,并在后续会话中检索。数据无需云端或数据库服务器,也可通过 Git 与团队共享。
主要功能
- 01本地 SQLite 持久化记忆
- 02自动捕获错误并注入上下文
- 03基于 tree-sitter 的代码索引
- 04符号搜索与调用关系分析
- 05记忆检索、整理与衰减
- 06通过 Git 导出共享记忆
适用场景
- 01跨上下文压缩回忆过往决策
- 02在重试前检索曾遇到的错误
- 03查找符号调用者与影响范围
- 04通过 Git 向团队同步记忆
MCP 相关
作为 MCP 服务,remem-mcp 向客户端提供 recall、capture、CodeGraph、Wiki 和反馈工具,并配合钩子在会话中注入与保存记忆。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
48收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| mode | enum | 否 | 搜索模式。hybrid | keyword | vector |
| type | enum | 否 | 按记忆类型筛选结果。使用 'decision' 跳过检查点/任务,使用 'error' 筛选过去的失败等。conversation | decision | learning | task | error | atom |
| limit | integer | 否 | 结果的最大数量。 |
| query | string | 是 | 自然语言查询。工具会使用此文本执行 BM25 搜索和向量搜索。 |
| format | enum | 否 | 响应格式。结构化数据(例如基准测试数据)请使用 'json'。默认值为 'text'。text | json |
| offset | integer | 否 | 分页偏移量。使用此参数获取下一页结果。 |
| task_id | string | 否 | 任务 ID。使用此参数可按特定任务隔离记忆。将捕获内容关联到任务可实现更精细的隔离。 |
| team_id | string | 否 | 团队 ID。使用此参数可按团队隔离记忆。设置后,所有查询都会按此值筛选。 |
| user_id | string | 否 | 用户 ID。使用此项可在团队内按用户隔离记忆。与 team_id 一起设置时,查询会同时按两者筛选。 |
| agent_id | string | 否 | Agent ID。使用此参数可按团队内的 Agent 角色隔离记忆。默认值为检测到的 Agent。 |
| max_tokens | integer | 否 | 响应中的最大 token 数。如果结果超过此值,工具会截断文本。 |
| session_key | string | 否 | 会话密钥。默认值为 hash(cwd)。使用此参数可从其他项目回忆记忆。 |
详细介绍
remem-mcp
你的编码 Agent 不再重复犯同样的错误。
本地优先的记忆,可在上下文压缩后继续保留。它会从每次错误中学习,在下次尝试前注入修复方案,并同步到你的 git 仓库,让整个团队共享记忆。
无需 API 密钥。无需云服务。无需数据库服务器。只需一个 SQLite 文件。
安装
npx remem-mcp setup
自动检测 ZCode、Claude Code、Cursor、Devin、Codex。注册 MCP 服务和钩子。
快速开始
- 重启你的 Agent(退出并重新打开)
- 询问:“你记得什么?”
- 如果 Agent 能回忆起过去的上下文,说明记忆正在工作
在你的 Agent 中,你可以说:
- “为 src 中的代码建立索引” → CodeGraph 为符号建立索引
- “查找调用函数 X 的代码” → 调用方分析
- “你记得什么?” → 回忆过去的上下文
自动执行的操作
| 时机 | 操作 |
|---|---|
| 会话开始 | 将过去的错误、决策和角色设定注入 Agent 上下文 |
| 每次提示词 | 将匹配的记忆注入 Agent 上下文 |
| 命令失败 | 自动捕获为错误记忆 |
| 上下文压缩 | 压缩后重新注入记忆 |
| 会话结束 | Worker 自动提取事实、整合摘要、更新角色设定 |
你无需运行任何命令。Agent 会在回答前调用 recall(),并在工作后调用 capture()——技能会告诉它这样做。
工作原理
AI Agent (ZCode / Claude Code / Devin / Cursor / Codex)
│
├── MCP tools ──▶ recall, capture, codegraph_*, wiki_*, feedback
│
└── Hooks ──▶ SessionStart, UserPromptSubmit,
PostToolUse, PostCompaction, SessionEnd
│
▼
SQLite (memory.db)
L0 captures → L1 atoms → L2 scenarios → L3 persona
(raw) (facts) (summaries) (preferences)
CodeGraph: symbols + calls + imports (tree-sitter, 9 languages)
Memory links: Hebbian co-retrieval (frequently co-retrieved = stronger)
无需 LLM API 密钥——基于规则提取 + 关键词分组。
CodeGraph
通过 tree-sitter 对代码进行结构化索引。Agent 使用 codegraph_search 而不是 grep 来查找符号。
npx remem-mcp index --path src # index a directory
npx remem-mcp search-code --query "parseTar" # find symbols
npx remem-mcp callers <id> # who calls this?
npx remem-mcp impact <id> # blast radius
支持 9 种语言:TS/JS/Python/Go/Rust/Java/C/C++/C#。采用 6 种策略解析调用(import-map → same-module → unique-name → suffix → fuzzy)。过滤标准库调用。
| 仓库 | 文件 | 符号 | 调用 | 耗时 |
|---|---|---|---|---|
| remem-mcp | 79 | 301 | 6,456 | 3s |
| AZR Go | 455 | 3,417 | 41,603 | 111s |
| Orca TS | 3,000 | 7,632 | 78,981 | 705s |
有何不同
| remem-mcp | Mem0 | Claude MEMORY.md | Mneme | |
|---|---|---|---|---|
| 可在压缩后保留 | 是 | 是 — 云端 | 否 — 上限 200 行 | 是 |
| 从错误中学习 | 是 — 自动 | 否 | 否 | 否 |
| 搜索 | 混合 BM25 + 向量 + 实体 | 仅向量 | 否 | 向量 + 图 |
| 记忆关联 | Hebbian 协同检索 | 否 | 否 | 图 |
| 衰减/遗忘 | 是 | 否 | 否 | 否 |
| CodeGraph | 是 — 采用 6 种策略解析调用 | 否 | 否 | 否 |
| Token 卸载 | 是 — Mermaid 画布 | 否 | 否 | 否 |
| 设置 | 1 条命令 | API 密钥 + 云服务 | 内置 | 从源码构建 |
| 费用 | 免费 | $19–249/月 | 免费 | 免费 |
实用命令
npx remem-mcp status # health + hooks + DB + CodeGraph
npx remem-mcp viewer # web UI at localhost:7331
npx remem-mcp errors # error dashboard
npx remem-mcp recent [N] # recent captures
npx remem-mcp help all # full list of 40+ subcommands
配置
所有设置都有默认值。配置文件为可选项:~/.config/remem-mcp/config.json。
| 设置 | 环境变量 | 默认值 |
|---|---|---|
| DB 路径 | REMEM_DB_PATH | ~/.local/share/remem-mcp/memory.db |
| 跨项目记忆 | REMEM_GLOBAL_SESSION_KEY | (未设置) |
| 统一流程(F1+F2+F3) | REMEM_FLOW | (未设置,设为 full) |
| 禁用钩子反馈 | REMEM_QUIET | (未设置,设为 1) |
全局记忆策略——设置 REMEM_GLOBAL_SESSION_KEY,即可自动读取跨项目记忆。捕获内容仍保存在项目本地,除非用户明确要求全局保存;此时使用 session_key: "global"。不要将普通捕获内容自动归类为全局记忆。
团队共享——运行 npx remem-mcp sync-export 会写入 .remem-mcp/memory-export.jsonl。将其提交到 git。团队成员执行 git pull 后即可获得相同的记忆。
按仓库设置捕获排除项——在任意项目根目录中放置 .remem.toml:
[capture]
ignore_paths = ["node_modules", "dist", ".git", "*.min.js"]
基准测试
| 基准测试 | remem-mcp | Mem0 | 无记忆 |
|---|---|---|---|
| AMB(L1/L2/L3) | 100/100/100 | — | — |
| LoCoMo(长对话问答) | 95 | 92.5 | — |
| PersonaMem(个性化) | 100 | — | 48 |
| LongMemEval(ICLR 2025) | 96 | 94.4 | — |
bash scripts/bench-all.sh --quick # AMB only (~2 min)
架构
完整的系统图、架构和性能详情请参阅 ARCHITECTURE.md。
致谢
核心基于 TencentDB Agent Memory(MIT,Tencent 2026)。CodeGraph 调用解析改编自 Codebase-Memory(arXiv:2603.27277)。召回增强改编自 Akita On Rails 的 ai-memory。上下文检索来自 Anthropic(2024)。
许可证
MIT。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。