本项目旨在测试和演示Claude AI的编码能力,同时展示良好的AI工作流和提示设计。这是一个基于Python的内存优化MCP服务器(官方版本推测使用Java编写),并采用SQLite作为后端数据库。
本项目是一个基本的知识图谱持久记忆实现,可让Claude记住用户在聊天中的信息。
实现了知识图谱的持久记忆功能,涵盖实体、关系和观察等核心概念,具体如下:
{
"name": "John_Smith",
"entityType": "person",
"observations": ["Speaks fluent Spanish"]
}
{
"from": "John_Smith",
"to": "Jane_Doe",
"relation": "colleague"
}
{
"entity": "user_123",
"observation": "prefers coffee in the morning"
}
调用以下接口可创建新实体: API 调用:
create_entity(name, entity_type)
输入参数:
name:实体的唯一标识符(字符串)entity_type:实体的类型(字符串)
输出:新创建的实体对象调用以下接口可创建两个现有实体之间的关系: API 调用:
create_relation(from_entity, to_entity, relation)
输入参数:
from_entity:源实体标识符(字符串)to_entity:目标实体标识符(字符串)relation:关系类型(字符串)
输出:新创建的关系对象调用以下接口可添加关于现有实体的观察: API 调用:
add_observation(entity, observation)
输入参数:
entity:实体标识符(字符串)observation:观察内容(字符串)
输出:更新后的实体对象调用以下接口可查询与给定实体相关的所有信息: API 调用:
query_entity(entity)
输入参数:
entity:实体标识符(字符串)
输出:包含实体及其关系和观察的详细信息若要在Claude Desktop上使用此MCP服务器,请在项目的config.json中添加以下内容:
{
"memory_server": {
"type": "custom",
"path": "mcp-memory-server"
}
}
为使模型利用记忆功能,需根据具体用例调整提示语。例如,在聊天个性化中可使用以下提示:
遵循以下步骤进行每次交互:
1. 用户识别:
- 您应假设与default_user进行交互
- 如果尚未识别default_user,请主动尝试。
2. 记忆检索:
- 总是从“Remembering...”开始,仅从知识图谱中检索相关信息
- 将知识图谱称为您的“记忆”
3. 记忆创建:
- 在与用户交流时,请注意收集以下信息:
a) 基本人格(年龄、性别、位置、职位、教育水平等)
b) 行为(兴趣、习惯等)
c) 偏好(沟通风格、首选语言等)
d) 目标(目标、目标、抱负等)
e) 关系(个人和专业关系,直至3度分隔)
4. 更新记忆:
- 如果在交互中收集了任何新信息,请按照以下方式更新记忆:
a) 为反复出现的组织、人员和重要事件创建实体
b) 使用关系将它们与当前实体连接
c) 将其事实存储为观察
docker build -t mcp/memory -f src/memory/Dockerfile .
此MCP服务器根据MIT许可证发布。这意味着您可以自由使用、修改和分发软件,但需遵守MIT许可证的条款和条件。有关详细信息,请参阅项目存储库中的LICENSE文件。