README
🚀 MCP 服务器内存
这是一个与记忆文本文件交互的 MCP 服务器,旨在助力 Claude 进行跨聊上下文管理。每一行文本都代表一段记忆。
这些工具允许 Claude(以及其他 MCP 客户端)在聊天过程中对记忆进行管理:
memory_add(memory: string):添加记忆memory_search(query: string):返回匹配的记忆(采用精确子字符串匹配,未来可能支持通配符/正则表达式)memory_delete(query: string):删除匹配的记忆(精确子字符串匹配)memory_list():返回所有记忆- 备注:
memory_update等同于memory_delete与memory_add的组合
示例说明
- 当提及自己的名字时,记忆内容为 "正在和 Wes 聊天"。
- 提到女儿的年龄时,记忆为 "Wes 的女儿 8 岁"。
- 表示正在进行一个 TypeScript 项目时,记忆是 "正在做 TypeScript 项目"。
- 此外,基于 Claude(助手/大语言模型)的言行也可记录重要信息。尤其是在工具使用方面(如
run_command),例如首次尝试使用工具失败(如python命令不存在),后续使用python3成功,Claude 可记录 "使用 python3,python 不在其中"。 - 若要求 Claude 删除关于 X 的记忆,可使用
memory_delete(query: X)。 - 若要更正名字,可先使用
memory_search("oldname"),删除每个匹配项或共同子集查询,再添加新名字。
当开启新的聊天时,Claude 会自动获取最近的记忆(子集或全部),也可请求获取部分、更多或全部记忆,并依据这些记忆对响应和工具使用等产生影响。
📚 详细文档
设计理念
采用简单的内存文本文件,主要基于以下原因:
- ChatGPT 的内存运行效果良好,本质上就是一个文本文件。尽管其背后可能存在结构化处理,但从用户视角看,呈现的就是文本文件形式。
- 在
mcp-server-commands类似提醒功能的测试中,效果理想(当 Claude 具备这些功能时)。 - 非结构化文本简化了工具和参数的管理,基本等同于管理字符串列表。
提示机制
- 关键在于设置提示,让模型知晓何时存储记忆,但目前尚不清楚最佳实现方式。
- 培训方面,OpenAI 承认在部分培训中会让模型了解存储记忆的时机,如同对模型进行工具使用培训一样。
- 提示设置上,系统提示部分可包含触发存储记忆的提醒。
- 就工具本身而言,在对 Claude 的测试中,仅依靠工具规格或工具响应中的提示/建议,无法让 Claude 存储记忆,因此仅依赖工具是不够的,在提示部分添加提示或许会有效果。
🔮 未来计划/想法
以下想法不确定是否值得投入时间,仅作为未来思路列出,或许可避免盲目实现:
- 新鲜度因素:考虑设计一种根据新鲜度重新排列记忆的方法。在这种情况下,记忆顺序变得重要,对于模糊的记忆查询(例如,同时参与 TypeScript 项目和 Python 项目,当开始新项目时,可建议最近使用的项目)。
- 旧记忆淡出机制:探讨是否可让旧记忆逐渐淡化。
Scan to contact