记忆网格
MemoryMesh 是一款专为 AI 模型设计的知识图谱服务器,专注于基于文本的角色扮演游戏 (RPG) 和交互式故事叙述。它帮助 AI 在对话过程中保持一致的结构化记忆,从而实现更丰富、更动态的交互。
该项目基于 MCP 服务器存储库中的知识图谱内存服务器,并保留了其核心功能。
重要的
从v0.2.7
开始,schema 的默认位置更改为dist/data/schemas
。此位置预计未来不会更改,但如果您要从旧版本更新,请确保将 schema 文件移动到新位置。
快速链接
概述
MemoryMesh 是一个本地知识图谱服务器,可帮助您构建和管理 AI 模型的结构化信息。它尤其适用于基于文本的角色扮演游戏 (RPG),但其灵活的设计使其适用于各种应用,包括社交网络模拟、组织规划或任何涉及结构化数据的场景。
主要特点
- **基于动态模式的工具:**使用模式定义数据结构,MemoryMesh 会自动生成用于添加、更新和删除数据的工具。
- **直观的模式设计:**使用必填字段、枚举类型和关系定义创建指导 AI 生成和连接节点的模式。
- **用于 AI 指导的元数据:**使用元数据提供上下文和结构,帮助 AI 理解数据中的含义和关系。
- **关系处理:**在您的模式中定义关系以鼓励 AI 在相关数据点(节点)之间创建连接(边)。
- **信息反馈:**向人工智能提供错误反馈,使其能够从错误中学习并改善其与知识图谱的交互。
- **事件支持:**事件系统跟踪操作,提供有关知识图如何被修改的见解。
节点
节点表示知识图谱中的实体或概念。每个节点具有:
name
:唯一标识符。nodeType
:节点的类型(例如,npc
、artifact
、location
),由您的模式定义。metadata
:提供有关节点描述性详细信息的字符串数组。weight
:(可选)0 到 1 之间的数值,表示关系的强度,默认为 1。
示例节点:
边缘
边表示节点之间的关系。每条边具有:
from
:源节点的名称。to
:目标节点的名称。edgeType
:关系的类型(例如,owns
、located_in
)。
模式
Schema 是 MemoryMesh 的核心。它定义了数据的结构并驱动工具的自动生成。
架构文件位置
将你的 schema 文件 ( .schema.json
) 放在你构建的 MemoryMesh 项目的dist/data/schemas
目录中。MemoryMesh 会在启动时自动检测并处理这些文件。
模式结构
文件名: [name].schema.json
。例如,对于定义 'npc' 的架构,文件名将是add_npc.schema.json
。
name
- 内存中模式和节点类型的标识符。重要提示:模式名称必须以add_
开头才能被识别。description
- 用于add_<name>
工具的描述,为 AI 提供上下文。 (delete
和update
工具有通用描述)properties
——每个属性包括其类型、描述和附加约束。property
type
- 支持的值是string
或array
。description
- 帮助指导 AI 实现实体的目的。required
- 布尔值。如果为true
,则AI 在创建节点时必须提供此属性。enum
- 字符串数组。如果存在, AI 必须从给定的选项中选择一个。relationship
- 定义与另一个节点的连接。如果某个属性是必需的且具有关系,则AI 将始终创建该节点及其对应的边。edgeType
- 要创建的关系类型。description
——帮助引导 AI 了解关系的目的。
additionalProperties
- 布尔值。如果为true
,则允许 AI 添加除必需或可选属性之外的额外属性。
示例架构(add_npc.schema.json):
基于此模式,MemoryMesh 自动创建:
- add_npc:添加新的NPC节点。
- update_npc:修改现有的NPC节点。
- delete_npc:删除NPC节点。
MemoryMesh 包含 11 个专为基于文本的 RPG 设计的预建模式,为游戏开发提供了可立即使用的基础。
SchemaManager工具
MemoryMesh 包含一个SchemaManager 工具,用于简化模式的创建和编辑。它提供了一个可视化界面,让您可以轻松定义数据结构,而无需直接编写 JSON。
动态工具
MemoryMesh 通过动态工具简化了与知识图谱的交互。这些工具无需手动编码,而是直接从您的模式定义中自动生成。这意味着,当您使用模式定义数据结构时,MemoryMesh 会智能地创建一组专门用于处理该特定数据结构的工具。
**可以这样想:**您提供一个蓝图(模式),MemoryMesh 会根据该蓝图自动构建必要的工具来构建、修改和删除元素。
幕后是如何运作的?
MemoryMesh 拥有一个智能系统,可以读取您的架构定义。它会分析您定义的结构,包括实体的属性及其关系。基于此分析,它会为每种实体类型自动创建一组工具:
- **
add_<entity>
:**用于创建实体新实例的工具。 - **
update_<entity>
:**用于修改现有实体的工具。 - **
delete_<entity>
:**用于删除实体的工具。
然后,这些工具通过 MemoryMesh 内的中央枢纽提供,确保任何连接的客户端或 AI 都可以轻松访问和使用它们。
本质上,MemoryMesh 的动态工具系统提供了一种强大而有效的方法来管理您的知识图谱,让您可以专注于应用程序的内容和逻辑,而不是数据操作的底层机制。
内存文件
默认情况下,数据存储在dist/data/memory.json
中的 JSON 文件中。
内存查看器
Memory Viewer 是一个独立的工具,旨在帮助您可视化和检查由 MemoryMesh 管理的知识图谱的内容。它提供了一个用户友好的界面,用于探索节点、边及其属性。
主要特点:
- 图形可视化:将知识图谱视为交互式节点链接图。
- 节点检查:选择节点以查看其节点类型、元数据和连接边。
- 边缘探索:检查节点之间的关系,包括边缘类型和方向。
- 搜索和过滤:快速查找特定节点或按类型过滤它们。
- 表格视图:允许您轻松查找和检查特定节点和边,或一次查找和检查所有节点和边。
- 原始 JSON 视图:允许您查看来自内存文件的原始 JSON 数据。
- 统计面板:提供有关知识图谱的关键指标和信息:节点总数、边总数、节点类型和边类型。
- 搜索和过滤:允许您按节点类型或边类型进行过滤,并过滤是否显示节点、边或两者。
访问内存查看器
内存查看器是一个独立的 Web 应用程序。内存查看器讨论
使用内存查看器
- 选择内存文件:在内存查看器中,单击“选择内存文件”按钮。
- 选择文件:导航到您的 MemoryMesh 项目目录并选择
memory.json
文件(默认位于dist/data/memory.json
)。 - 探索:内存查看器将加载并显示您的知识图谱的内容。
记忆流
迅速的
为了获得最佳效果,请结合使用 Claude 的“项目”功能和自定义指令。以下是您可以参考的提示示例:
您还可以在聊天中直接指示 AI 执行特定操作。
尝试不同的提示来找到最适合您的用例的提示!
例子
- 带有自定义指令的简单示例。
- 为了举例说明,并带有可视化功能(不属于功能的一部分)
添加几个城市、一些 NPC、城市周围几个可供探索的地点,在某处隐藏一两件文物
安装
通过 Smithery 安装
要通过Smithery自动为 Claude Desktop 安装 MemoryMesh:
先决条件
- **Node.js:**版本 18 或更高版本。您可以从nodejs.org下载。
- **npm:**通常包含在 Node.js 中。
- **桌面版 Claude:**确保您已从claude.ai/download安装了最新版本。
安装步骤
- 克隆存储库:
- 安装依赖项:
- 构建项目:此命令将 TypeScript 代码编译为
dist
目录中的 JavaScript,并将示例模式和数据文件复制到其中。 - 验证文件副本(可选):
- 构建过程应自动将
data
文件夹复制到dist
。 - 检查
dist/data
是否存在且包含.json
文件。同时,验证dist/data/schemas
是否存在且包含.schema.json
文件。
- 构建过程应自动将
- 配置Claude桌面:打开您的 Claude Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- 在
mcpServers
部分添加一个用于memorymesh
的条目。您可以选择以下配置选项之一:
- 将
/ABSOLUTE/PATH/TO/YOUR/PROJECT/
替换为您的memorymesh
项目目录的实际绝对路径。 - 示例(macOS):
- 示例(Windows):
- macOS:
- **重新启动 Claude Desktop:**完全重新启动 Claude Desktop 以使更改生效。
验证安装
- 启动 Claude Desktop。
- 打开新的聊天。
- 在右上角找到 MCP 插件图标。如果找到,则说明您的配置很可能正确。
- 点击图标。你应该会在已连接的服务器列表中看到“memorymesh”。
- 点击图标。如果你看到列出的工具(例如
add_npc
、update_npc
等),则表示你的服务器正常运行,并且工具已正确公开。
更新
更新之前,请确保备份dist/data
目录以避免丢失内存数据。
故障排除
- 服务器未出现在 Claude 中:
- 仔细检查
claude_desktop_config.json
中的路径。确保它们是绝对路径并且正确无误。 - 验证
dist
目录是否存在并包含已编译的 JavaScript 文件,包括index.js
。 - 检查 Claude Desktop 日志中是否存在错误:
- macOS:
~/Library/Logs/Claude/mcp-server-memorymesh.log
(和mcp.log
) - **Windows:(**可能位于
%AppData%\Claude
下的Logs
文件夹中)
- macOS:
- 仔细检查
- 工具未显示:
- 确保您的
npm run build
命令顺利完成。 - 验证您的模式文件是否正确放置在
dist/data/schemas
中并遵循正确的命名约定(add_[entity].schema.json
)。 - 检查服务器的控制台输出或日志,查看初始化期间是否存在任何错误。
- 确保您的
高级配置
除了基本设置之外,MemoryMesh 还提供了几种自定义其行为的方法:
变量
您可以使用/config/config.ts
覆盖默认设置
- MEMORY_FILE:指定用于存储知识图谱数据的 JSON 文件的路径。(默认值:
dist/data/memory.json
) - SCHEMAS_DIR:架构文件目录的路径。(默认值:
dist/data/schemas/memory.json
)
限制
- 节点删除: AI 可能不愿意从知识图谱中删除节点。如果需要,可以通过提示来鼓励它。
贡献
欢迎贡献、反馈和想法!本项目是个人探索如何将结构化数据与 AI 推理能力相结合。欢迎贡献、反馈和想法,以推动项目进一步发展或启发新的项目。
local-only server
The server can only run on the client's local machine because it depends on local resources.
Tools
该项目基于 MCP 服务器存储库中的知识图谱内存服务器,并保留了其核心功能。
Related MCP Servers
- AsecurityAlicenseAqualityMCP for working with GraphQL servers.Last updated -2469232TypeScriptMIT License
- AsecurityAlicenseAqualityA customized MCP memory server that enables creation and management of a knowledge graph with features like custom memory paths and timestamping for capturing interactions via language models.Last updated -114JavaScriptMIT License
- -securityAlicense-qualityEnhances the MCP memory server by implementing PouchDB for robust document storage and enabling the creation and management of a knowledge graph that captures interactions via language models.Last updated -4JavaScriptMIT License
- AsecurityFlicenseAqualityAn MCP server that helps teams create, manage, and access structured project documentation through six core document types, leveraging AI to generate comprehensive project knowledge management.Last updated -54668TypeScript