article
README
🚀 使用 Redis 图数据库的 MCP 内存系统
该项目实现了一个用于大语言模型(LLM)对话的记忆存储系统,借助 Redis Graph 进行长期记忆存储,能有效管理对话中的关键信息,为复杂查询和分析提供支持。
🚀 快速开始
本项目需要 Docker、Docker Compose 和 Node.js(v16 或更高版本),请确保你的环境已正确安装这些依赖。
✨ 主要特性
- 存储记忆:将对话中的关键信息持久化到 Redis 图数据库。
- 检索能力:支持根据 ID、类型和内容快速查找记忆。
- 关联关系:允许建立记忆之间的关联,便于复杂查询和分析。
- 支持多种记忆类型:涵盖普通记忆、Finance 类型、技术问题等。
📦 安装指南
先决条件
- Docker 和 Docker Compose
- Node.js(v16 或更高版本)
启动 Redis 与 RedisGraph 模块
- 使用 Docker Compose 启动 Redis 容器并加载 RedisGraph 模块:
docker-compose up -d
- 验证 Redis 是否正常运行且 RedisGraph 模块已加载:
docker exec -it mcp-memory-redis-1 redis-cli
进入 Redis CLI 后,可以通过以下命令查看模块信息:
MODULE LIST
💻 使用示例
基础用法
// 创建一个新的 Finance 类型的记忆
await memoryService.createMemory({
type: 'Finance',
title: '信用卡政策更新',
content: '新信用卡政策将在下月生效。',
tags: ['信用卡', '金融政策']
});
// 根据 ID 检索记忆
const financeMemory = await memoryService.getMemory('12345');
// 搜索与“debit card”相关的所有 Finance 类型的记忆
const debitCardMemories = await memoryService.searchMemories({
type: 'Finance',
contentContains: 'debit card'
});
记忆管理工具
- 创建记忆:使用
createMemory方法将新的记忆存储到数据库。 - 检索记忆:通过
getMemory方法根据 ID 获取特定记忆。 - 搜索记忆:利用
searchMemories方法基于关键词或条件查找相关记忆。
📚 详细文档
支持的记忆类型
- 普通记忆:通用类型,适用于各种场景。
- Finance 类型:专门用于金融相关领域,如政策、交易记录等。
- 技术问题:处理与编程或系统相关的讨论内容。
系统架构
数据存储结构
- 节点(Nodes):每个记忆对应一个图数据库节点,包含类型、标题、内容和标签等属性。
- 关系(Relationships):用于描述不同记忆之间的关联,例如“相关”、“引用”或“影响”。
示例查询命令
# 列出所有图数据库
GRAPH.LIST
# 统计节点总数
GRAPH.QUERY memory "MATCH (n) RETURN count(n)"
# 查询 Finance 类型的记忆
GRAPH.QUERY memory "MATCH (n:Finance) RETURN n.id, n.title, n.content"
# 搜索特定内容
GRAPH.QUERY memory "MATCH (n) WHERE n.content CONTAINS 'debit card' RETURN n.id, n.type, n.content"
# 显示节点关联关系
GRAPH.QUERY memory "MATCH (a)-[r]->(b) RETURN a.id, type(r), b.id"
Docker 运行指南
构建镜像并运行
# 本地构建镜像
docker build -t mcp/memory .
# 启动容器(假设 Redis 已在同一网络中运行)
docker run --rm -i --network=mcp-memory_default -e REDIS_URL=redis://redis:6379 mcp/memory
测试指南
执行测试脚本
# 测试 Redis 连接
npm run test:redis
# 测试基本记忆操作
npm run test:memory
# 测试完整服务功能
npm run test:service
通过以上内容,您可以全面了解 MCP 内存系统的功能、安装方法和使用场景。如需进一步了解详细技术细节或进行实际部署,请参考相关文档和技术支持资源。
扫码联系在线客服