这是一个使用本地知识图谱实现持久内存的基本实现。这使得Claude能够在聊天之间记住用户的信息,并通过一个教训系统从过去的错误中学习。
<a href="https://glama.ai/mcp/servers/eoinvr1bz0"><img width="380" height="200" src="https://gips3.baidu.com/it/u=32484050,939047788&fm=3081&app=3081&f=PNG?w=760&h=400" alt="知识图谱内存服务器 MCP 服务器" /></a>
实体是知识图谱中的主要节点。每个实体都有:
示例:
{
"name": "John_Smith",
"entityType": "person",
"observations": ["说流利的西班牙语"]
}
关系定义了实体之间的有向连接。它们总是以主动语态存储,并描述实体如何相互作用或关联。
示例:
{
"from": "John_Smith",
"to": "Anthropic",
"relationType": "works_at"
}
观察是对实体的离散信息片段。它们:
示例:
{
"entityName": "John_Smith",
"observations": [
"说流利的西班牙语",
"于2019年毕业",
"喜欢早晨会议"
]
}
教训是捕获关于错误及其解决方案的知识的特殊实体。每个教训都有:
示例:
{
"name": "NPM_VERSION_MISMATCH_01",
"entityType": "lesson",
"observations": [
"当使用不兼容的包版本时会发生错误",
"特别影响Windows环境",
"解决需要版本锁定"
],
"errorPattern": {
"type": "dependency",
"message": "无法找到包 @shadcn/ui",
"context": "包安装"
},
"metadata": {
"severity": "high",
"environment": {
"os": "windows",
"nodeVersion": "18.x"
},
"createdAt": "2025-02-13T13:21:58.523Z",
"updatedAt": "2025-02-13T13:22:21.336Z",
"frequency": 1,
"successRate": 1.0
},
"verificationSteps": [
{
"command": "pnpm add shadcn@latest",
"expectedOutput": "成功安装shadcn",
"successIndicators": ["added shadcn"]
}
]
}
create_entities
entities(对象数组)
name(字符串):实体标识符entityType(字符串):类型分类observations(字符串数组):相关观察create_relations
relations(对象数组)
from(字符串):源实体名称to(字符串):目标实体名称relationType(字符串):主动语态的关系类型add_observations
observations(对象数组)
entityName(字符串):目标实体contents(字符串数组):要添加的新观察delete_entities
entityNames(字符串数组)delete_observations
deletions(对象数组)
entityName(字符串):目标实体observations(字符串数组):要删除的观察delete_relations
relations(对象数组)
from(字符串):源实体名称to(字符串):目标实体名称relationType(字符串):关系类型read_graph
search_nodes
query(字符串)open_nodes
names(字符串数组)create_lesson
lesson(对象)
name(字符串):唯一标识符entityType(字符串):必须是“lesson”observations(字符串数组):关于错误和解决方案的笔记errorPattern(对象):错误详情
type(字符串):错误类别message(字符串):错误消息context(字符串):错误发生的位置stackTrace(字符串,可选):堆栈跟踪metadata(对象):附加信息
severity(“低”|“中”|“高”|“关键”)environment(对象):系统详情frequency(数字):遇到次数successRate(数字):解决方案成功率verificationSteps(数组):解决方案验证
command(字符串):要采取的动作expectedOutput(字符串):预期结果successIndicators(字符串数组):成功标志find_similar_errors
errorPattern(对象)
type(字符串):错误类别message(字符串):错误消息context(字符串):错误上下文update_lesson_success
lessonName(字符串):要更新的教训success(布尔值):解决方案是否有效get_lesson_recommendations
context(字符串)服务器现在处理两种类型的文件:
memory.json:存储基本实体和关系lesson.json:存储带有错误模式的教案实体如果文件超过1000行,则会自动拆分以维持性能。
要将此内存服务器与Cursor MCP客户端集成,请按照以下步骤操作:
git clone [repository-url]
cd [repository-name]
pnpm install
pnpm build
/path/to/the/dist/index.jsnode /path/to/the/dist/index.jsCtrl+Shift+P内存服务器应已与您的Cursor MCP客户端集成并准备好使用。
在您的claude_desktop_config.json中添加以下内容:
{
"mcpServers": {
"memory": {
"command": "docker",
"args": ["run", "-i", "-v", "claude-memory:/app/dist", "--rm", "mcp/memory"]
}
}
}
{
"mcpServers": {
"memory": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-memory"
]
}
}
}
服务器可以通过以下环境变量进行配置:
{
"mcpServers": {
"memory": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-memory"
],
"env": {
"MEMORY_FILE_PATH": "/path/to/custom/memory.json"
}
}
}
}
MEMORY_FILE_PATH:内存存储JSON文件的路径(默认:服务器目录中的memory.json)利用记忆的提示取决于用例。更改提示有助于模型确定创建记忆的频率和类型。
这是一个用于聊天个性化提示的例子。您可以在Claude.ai 项目的“自定义指令”字段中使用此提示。
遵循以下步骤进行每次交互:
1. 用户识别:
- 您应该假设自己正在与default_user互动
- 如果尚未识别default_user,请积极尝试识别。
2. 记忆检索:
- 总是在开始聊天时仅说“回忆中...”并从您的知识图谱中检索所有相关信息
- 总是将您的知识图谱称为您的“记忆”
3. 记忆
- 在与用户交谈时,注意任何新的信息,这些信息可以归类为:
a) 基本身份(年龄、性别、位置、职位、教育水平等)
b) 行为(兴趣、习惯等)
c) 偏好(沟通风格、首选语言等)
d) 目标(目标、目标、抱负等)
e) 关系(个人和职业关系,最多三度分离)
4. 记忆更新:
- 如果在交互过程中收集了任何新信息,请按以下方式更新您的记忆:
a) 为反复出现的组织、人员和重要事件创建实体
b) 使用关系将它们连接到当前实体
c) 将有关它们的事实存储为观察
Docker:
docker build -t mcp/memory -f src/memory/Dockerfile .
此MCP服务器根据MIT许可发布。这意味着您可以自由地使用、修改和分发软件,但需遵守MIT许可条款和条件。更多详情,请参阅项目仓库中的LICENSE文件。
create_lesson
lesson(对象)
find_similar_errors
errorPattern(对象)
update_lesson_success
lessonName(字符串):要更新的教训success(布尔值):解决方案是否有效get_lesson_recommendations
context(字符串)大大的感谢! https://github.com/modelcontextprotocol/servers jerome3o-anthropic https://github.com/modelcontextprotocol/servers/tree/main/src/memory