MCP知识图
通过局部知识图为AI模型提供持久内存。
使用实体、关系和观察在对话中存储和检索信息。适用于克劳德代码/桌面和任何兼容MCP的AI平台。
为什么使用“.aim”和“aim_”前缀?
AIM代表 AI内存 -该系统的核心概念。AIM的三个要素提供了清晰的组织和安全性:
.aim目录:保持AI内存文件的有序性和易识别性aim_工具前缀:在多工具设置中将相关内存功能组合在一起_aim安全标志:每个内存文件都以开头{"type":"_aim","source":"mcp-knowledge-graph"}防止意外覆盖无关的JSONL文件
这种一致的AIM命名使哪些目录、工具和文件属于AI存储系统变得显而易见。
关键:理解 .aim dir vs _aim 文件标记
两个名字相似的东西:
.aim= 项目本地目录名称 (必须准确命名.aim项目检测工作)_aim= 文件安全标记 (出现在JSONL文件中:{"type":"_aim","source":"mcp-knowledge-graph"})
对于项目本地存储:
- 目录必须命名
.aim在项目根目录中 - 例子:
my-project/.aim/memory.jsonl - 系统专门寻找这个确切的名称
对于全局存储(–内存路径):
- 可以是您想要的任何目录
- 示例:
~/yourusername/.aim/,~/memories/,~/Dropbox/ai-memory/,~/Documents/ai-data/ - 完全灵活-选择适合您的任何位置
存储逻辑
文件位置优先级:
- 项目与
.aim-用途.aim/memory.jsonl(项目本地) - 无项目/无目标 -使用配置的全局目录
- 语境 -添加后缀:
memory-work.jsonl,memory-personal.jsonl
安全系统:
- 每个内存文件都以开头
{"type":"_aim","source":"mcp-knowledge-graph"} - 系统拒绝写入没有此标记的文件
- 防止意外覆盖无关的JSONL文件
主数据库概念
主数据库是您的主内存存储 -默认情况下,当没有请求特定数据库时使用。它总是被命名 default 在列表中并存储为 memory.jsonl.
- 默认行为:除非指定其他数据库,否则所有内存操作都使用主数据库
- 始终可用:存在于项目本地和全球位置
- 主存储:贯穿所有对话的主要知识图谱
- 命名数据库:可选的其他数据库(
work,personal,health)用于组织特定主题
主要特点
- 主数据库:默认情况下,所有操作都使用主内存存储
- 多个数据库:用于按主题组织记忆的可选命名数据库
- 项目检测:使用自动项目本地内存
.aim目录 - 位置覆盖:强制行动使用项目或全局存储
- 安全操作:内置保护,防止覆盖无关文件
- 数据库发现:列出这两个位置的所有可用数据库
快速开始
全局内存(推荐)
添加到您的 claude_desktop_config.json 或 .claude.json两种常见的方法:
选项1:默认 .aim 目录(简单)
JSON``` 1 2 3 4 5 6 7 8 9 10 11 12 13{ “mcpServers”: { “Aim-Memory-Bank”: { “command”: “npx”, “args”: [ “-y”, “mcp-knowledge-graph”, “—memory-path”, “/Users/yourusername/.aim” ] } } }
**选项2:Dropbox/云同步(便携式)**
要跨多台机器访问内存,请使用同步文件夹。这是此MCP服务器的作者保存自己记忆的方式:
JSON```
1
2
3
4
5
6
7
8
9
10
11
12
13{
"mcpServers": {
"Aim-Memory-Bank": {
"command": "npx",
"args": [
"-y",
"mcp-knowledge-graph",
"--memory-path",
"/Users/yourusername/Dropbox/ai-memory"
]
}
}
}
这将在您指定的目录中创建内存文件:
memory.jsonl- 主数据库 (所有操作的默认值)memory-work.jsonl-工作数据库memory-personal.jsonl-个人数据库- 等等
项目本地内存
在任何项目中,创建一个 .aim 目录:
BASH``` 1mkdir .aim
现在记忆工具自动使用 `.aim/memory.jsonl` (项目本地 **主数据库**)而不是从该项目运行时的全局存储。
## AI如何使用数据库
配置后,AI模型使用 **默认情况下为主数据库** 或者可以使用 `context` 参数。新数据库是自动创建的,无需设置:
JSON```
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35// Master Database (default - no context needed)
aim_memory_store({
entities: [{
name: "John_Doe",
entityType: "person",
observations: ["Met at conference"]
}]
})
// Work database
aim_memory_store({
context: "work",
entities: [{
name: "Q4_Project",
entityType: "project",
observations: ["Due December 2024"]
}]
})
// Personal database
aim_memory_store({
context: "personal",
entities: [{
name: "Mom",
entityType: "person",
observations: ["Birthday March 15th"]
}]
})
// Master database in specific location
aim_memory_store({
location: "global",
entities: [{
name: "Important_Info",
entityType: "reference",
observations: ["Stored in global master database"]
}]
})
文件组织
全局设置:
TREE``` 1 2 3 4 5/Users/yourusername/.aim/ ├── memory.jsonl # Master Database (default) ├── memory-work.jsonl # Work database ├── memory-personal.jsonl # Personal database └── memory-health.jsonl # Health database
**项目设置:**
TREE```
1
2
3
4
5my-project/
├── .aim/
│ ├── memory.jsonl # Project Master Database (default)
│ └── memory-work.jsonl # Project Work database
└── src/
可用工具
aim_memory_store-存储新的记忆(人、项目、概念)aim_memory_add_facts-将事实添加到现有记忆中aim_memory_link-将两段记忆联系在一起aim_memory_search-按关键字搜索记忆aim_memory_get-按确切名称检索特定记忆aim_memory_read_all-读取数据库中的所有内存aim_memory_list_stores-列出可用数据库aim_memory_forget-忘记记忆aim_memory_remove_facts-从记忆中删除特定事实aim_memory_unlink-删除记忆之间的链接
参数
context(可选)-指定命名数据库(work,personal等等)。默认为 主数据库location(可选)-强制project或global存储位置。默认为自动检测
数据库发现
使用 aim_memory_list_stores 查看所有可用数据库:
JSON``` 1 2 3 4 5 6 7 8 9 10 11 12 13{ “project_databases”: [ “default”, // Master Database (project-local) “project-work” // Named database ], “global_databases”: [ “default”, // Master Database (global) “work”, “personal”, “health” ], “current_location”: “project (.aim directory detected)” }
**要点:**
- **“默认”** =两个位置的主数据库
- **当前位置** 显示您是使用项目存储还是全局存储
- **主数据库无处不在** -这是你的主要记忆库
- **命名数据库** 是特定主题的可选添加
## 配置示例
**重要提示:** 始终指定 `--memory-path` 控制内存文件的存储位置。
**自动批准读取操作(推荐):**
JSON```
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19{
"mcpServers": {
"Aim-Memory-Bank": {
"command": "npx",
"args": [
"-y",
"mcp-knowledge-graph",
"--memory-path",
"/Users/yourusername/.aim"
],
"autoapprove": [
"aim_memory_search",
"aim_memory_get",
"aim_memory_read_all",
"aim_memory_list_stores"
]
}
}
}
故障排除
“文件不包含必需的_aim安全标记”错误:
- 该文件可能不属于此系统
- 需要手动JSONL文件
{"type":"_aim","source":"mcp-knowledge-graph"}作为第一行 - 如果是手动创建文件,请添加
_aim标记或删除,然后让系统重新创建它
记忆去了意想不到的地方:
- 检查您是否位于项目目录中
.aim文件夹(使用项目本地存储) - 否则使用配置的全局
--memory-path目录 - 使用
aim_memory_list_stores查看所有可用数据库和当前位置 - 使用
ls .aim/或ls /Users/yourusername/.aim/查看您的内存文件
类似数据库太多:
- 人工智能模型试图使用一致的名称,但可能会产生变化
- 如果需要,手动删除不需要的数据库文件
- 鼓励人工智能使用简单、一致的数据库名称
- 记住:主数据库始终可用,因为默认命名数据库是可选的
需求
- Node.js 18+
- MCP兼容AI平台
许可证
麻省理工学院