mcp服务器内存
这是一个 主控程序 服务器与内存文本文件交互,以帮助Claude处理内部聊天上下文。
每一行都是一段记忆。
这些工具允许Claude(和其他MCP客户端)在聊天过程中管理内存:
memory_add(memory: string)-追加内存memory_search(query: string)-返回匹配的内存(子字符串完全匹配)-稍后,可能允许glob/regexmemory_delete(query: string)-删除匹配的内存(子字符串完全匹配)memory_list()-返回所有记忆- 供参考
memory_update==memory_delete+memory_add
例如,
- 我提到我的名字=>“和韦斯说话”
- metion女儿的年龄=>“韦斯的女儿8岁了”
- 比如说正在做一个打字项目=>“正在做打字项目”
- 而且,这是至关重要的,可以基于克劳德(助理/LLM)所说或所做的事情。..
- 值得注意的是,工具的使用(即。 run_command)...假设第一次尝试使用该工具时失败(即 python 命令不存在),然后后续工具使用成功(即使用 python3 而不是 python)=>克劳德可以记录“使用python3,python不存在”。..
- 我让克劳德删除关于X=>memory_delete的记忆(查询:X)
- 我更正了我的名字=>memory_search(“oldname”)+memory_delete(每个匹配的记录,或一个公共子集查询)+memoray_add(“newname”)
然后,当新的聊天开始时,Claude将自动获取最近的记忆(一部分或全部) 或 可以要求回忆(一些/更多/全部)。然后可以使用这些来影响反应/工具等。
设计
一个简单的内存文本文件,为什么:
- ChatGPT的内存 运行良好,本质上是一个文本文件
- 也许它是在幕后构建的,但是如果你回顾一下你的记忆,它会以文本文件的形式呈现。
- 我测试了类似的提醒功能
mcp-server-commands工作得很好(当克劳德有它们的时候)。 - 非结构化文本简化了工具和参数,基本上可以管理字符串列表。
提示机制:
- 让模型知道何时存储记忆也很重要。这有点不清楚如何最好地做到这一点,但是。.
- 训练:OpenAI承认对模型进行了一些训练,以知道何时存储记忆。就像模型是为工具使用而训练的一样。
- 提示:系统提示组件可能包含触发存储记忆的提醒。
- 仅使用工具:在我对Claude的测试中,仅使用工具规范,甚至在工具响应中使用提示/建议,我都无法让Claude存储记忆。因此,仅凭这一点是不够的。似乎克劳德对工具的培训是只在追求提示/请求时使用它们,因此我认为在提示组件中添加提醒/提示会很好。
所有/想法
我不知道这些是否值得花时间,只是在这里列出未来的想法。也许部分原因是为了阻止自己去做这些事情:)
- 近因因素:一种基于近因重新排列记忆的方法?
- 然后,顺序与模糊的内存查询相关(即,在typescript项目和python项目上工作,然后我要求启动一个新项目,可以建议最近使用的项目吗?)
- 淡化旧记忆?
