News

AI代码助手老是失忆?memorybank让它拥有持久记忆

AI代码助手老是失忆?memorybank让它拥有持久记忆

在使用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`的工作流程非常直观:

  1. 你的AI代理遇到需要记忆的信息。
  2. 代理调用`memory_store`命令,附带记忆的类型、名称和内容。
  3. `memorybank`将其保存为带有YAML前端信息的Markdown文件。
  4. 下一次会话时,代理调用`memory_recall`来加载相关上下文。
  5. 这样,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`也提供命令行接口。

↗ 阅读原文