在使用Claude Code、Cursor或任何AI编程助手时,你是否发现每次启动新会话,它们都会从零开始,完全不记得之前发生的事情?这包括:
- 你是谁,你的偏好是什么
- 昨天做了哪些决策
- 你之前给过的修正意见
- 外部资源的位置
针对这一痛点,`memorybank`应运而生。
什么是memorybank?
`memorybank`是一个MCP(Microservice Communication Protocol)服务器,旨在为任何AI代理提供持久的、跨会话的记忆能力。它零依赖、基于文件存储,并且兼容Claude Code、Cursor、Windsurf以及任何MCP兼容工具。你可以通过`npx @ura-dev/memorybank --help`命令查看其用法。
8个MCP工具
| 工具 | 功能 |
|---|---|
memory_store | 保存记忆(用户、项目、反馈、参考、自定义) |
memory_recall | 为查询检索最相关的记忆 |
memory_list | 列出所有记忆,可按类型或标签过滤 |
memory_get | 通过ID获取特定记忆 |
memory_update | 更新现有记忆 |
memory_delete | 删除记忆 |
memory_search | 对所有记忆进行全文搜索 |
memory_stats | 统计记忆数量、类型和存储大小 |
工作原理
`memorybank`的工作流程非常直观:
- 你的AI代理遇到需要记忆的信息。
- 代理调用`memory_store`命令,附带记忆的类型、名称和内容。
- `memorybank`将其保存为带有YAML前端信息的Markdown文件。
- 下一次会话时,代理调用`memory_recall`来加载相关上下文。
- 这样,AI代理就能知道之前发生了什么。
所有记忆都本地存储在`~/.memorybank/`目录下,并按命名空间(每个项目一个)组织。这意味着,无需云服务、数据库或API密钥,数据完全由你掌控。
30秒快速设置
将`memorybank`添加到你的AI代理配置非常简单。例如,对于Claude Code(位于`~/.claude/settings.json`):
{
"mcpServers": {
"memorybank": {
"command": "npx",
"args": ["-y", "@ura-dev/memorybank", "memorybank-mcp"]
}
}
}或者对于Cursor(位于`.cursor/mcp.json`):
{
"mcpServers": {
"memorybank": {
"command": "npx",
"args": ["-y", "@ura-dev/memorybank", "memorybank-mcp"]
}
}
}
完成这些配置后,你的AI代理就拥有了持久记忆。
五种记忆类型
`memorybank`支持五种核心记忆类型,以满足不同场景的需求:
- 用户 (user) — 关于你的信息:角色、偏好、专业水平。
- 项目 (project) — 关于工作的信息:目标、架构决策、截止日期。
- 反馈 (feedback) — 你给出的修正:需要避免什么,什么有效。
- 参考 (reference) — 外部指针:URLs、文档位置、API端点。
- 自定义 (custom) — 任何其他需要记忆的信息。
为何不直接使用CLAUDE.md?
`CLAUDE.md`非常适合存储静态的项目指令。然而,`memorybank`专注于在工作过程中不断演进的动态知识:
- 需要持久化的用户修正。
- 项目中途做出的架构决策。
- 研究过程中发现的参考资料。
- 每日变化的项目状态。
`memorybank`与`CLAUDE.md`是互补的。前者用于规则,后者用于学习到的知识。
也支持CLI
`memorybank`也提供命令行接口。