News

Claude.md不够用?开发者自建本地优先记忆系统提升AI编程效率

Claude.md不够用?开发者自建本地优先记忆系统提升AI编程效率

在使用Claude Code进行开发时,许多开发者都曾遇到一个痛点:每次开启新的会话,都需要重复解释项目的背景信息。无论是模块的遗留特性、曾导致性能问题的查询、特定测试失败的原因、架构决策背后的逻辑,还是版本发布说明中的规范,这些上下文信息往往需要在不同会话中反复阐述,令人倍感困扰。

一部分这类信息可以放入CLAUDE.md文件。但并非所有信息都适合。CLAUDE.md非常适合存放稳定的项目说明,例如:项目运行方式、测试运行指南、编码规范、架构准则、Agent应了解的命令以及特定仓库的工作流程。这类上下文通常稳定且广泛适用。

然而,当CLAUDE.md开始承载所有项目中的坑点、调试笔记、警告、解决方案、决策和偏好时,问题就出现了。此时,它不再是简洁的项目入门指南,而变成了一个庞大的上下文“垃圾场”。这会带来两个主要问题:首先,每次新的会话,即使任务只需要一个微小的细节,Agent也需要为整个CLAUDE.md文件支付Token费用;其次,上下文越多,Agent就越容易忽略其中真正重要的信息。过多的上下文并不总是更好的上下文,有时它只是一个更大的“干草堆”,里面藏着同一根“针”。

为此,一位开发者提出了一种更合理的上下文分离方式:将项目上下文分为两类——CLAUDE.md用于稳定的入门说明,而“工作记忆”则用于检索项目特定的笔记。CLAUDE.md应解释项目如何运作,而“工作记忆”则应记住项目开发过程中发生的事情,包括决策、事实、模式、陷阱、架构笔记、项目偏好和会话摘要等。关键区别在于,“工作记忆”不应被一股脑地全部注入到每个提示中,而是应该在需要时进行搜索、排序并仅注入相关的部分。

基于这一理念,该开发者构建了Memento MCP(Memory Context Provider)。Memento MCP是一个本地优先的MCP服务器,它为Claude Code及其他stdio-MCP客户端提供了持久化的项目记忆功能。其核心思想简单:将有用的项目知识以类型化记忆的形式存储起来;根据当前任务搜索并排序这些记忆;然后只将最相关的记忆注入到AI Agent中。这有效避免了在每个新会话中重复粘贴大量上下文信息。

Memento MCP的默认配置包括使用本地SQLite数据库和FTS5全文搜索,无需强制的云账户或托管的向量数据库。它还支持可选的嵌入(embeddings)、通过Git进行团队记忆同步、Obsidian笔记库索引、精细的隐私控制以及本地网页检查器等功能。

↗ 阅读原文