学习与记忆
记忆系统是 Alice Mod 的”长期大脑”。通过 10 个工具,AI 可以存储和检索经验知识、对话记忆、地图路径以及任务目标。
设计理念
记忆系统基于 SQLite + 向量数据库实现,核心思路是让 AI 越用越聪明。所有记忆通过语义检索实现智能匹配,而非简单的关键字搜索。
记忆分类
| 类别 | 工具数量 | 存储内容 | 说明 |
|---|---|---|---|
| knowledge | 1 | 领域知识 | 合成配方、生物特性、生存技巧等预设知识 |
| memory | 3 | 经验记忆 | 与用户的对话记录、学到的游戏信息 |
| maps | 2 | 地图路径点 | 探索过的位置、路径、地标 |
| aim | 4 | 目标任务 | 进行中的主线/支线任务和进度 |
工具列表
knowledge — 知识库查询
| 工具 | 功能 | 参数 | 返回值 |
|---|---|---|---|
knowledge_query | 查询领域知识 | query, limit(可选) | 匹配的知识条目 |
查询 Minecraft 游戏知识(合成配方、生物特性、方块属性等),数据为预设内容,AI 不可修改。
{
"tool": "knowledge_query",
"params": { "query": "如何合成钻石剑", "limit": 5 }
}memory — 经验记忆
| 工具 | 功能 | 参数 | 返回值 |
|---|---|---|---|
memory_list | 列出记忆 | type(可选), tags(可选), page(可选), pageSize(可选) | 记忆列表 |
memory_query | 语义搜索记忆 | query, type(可选), limit(可选) | 匹配的记忆条目 |
memory_edit | 编辑记忆 | action, id(可选), content(可选), tags(可选) | 编辑结果 |
列出所有记忆:
{
"tool": "memory_list",
"params": { "type": "experience", "pageSize": 20 }
}语义搜索记忆:
{
"tool": "memory_query",
"params": { "query": "末地传送门的搭建方式", "limit": 5 }
}编辑记忆(create / update / delete 三合一):
{
"tool": "memory_edit",
"params": { "action": "create", "content": "玩家 Steve 的家在坐标 -100, 64, 200" }
}maps — 地图路径点
| 工具 | 功能 | 参数 | 返回值 |
|---|---|---|---|
maps_query | 搜索地图路径点 | query, limit(可选) | 匹配的路径点列表 |
maps_edit | 编辑路径点 | action, id(可选), name(可选), x(可选), y(可选), z(可选) | 编辑结果 |
搜索路径点:
{
"tool": "maps_query",
"params": { "query": "家" }
}创建/更新/删除路径点:
{
"tool": "maps_edit",
"params": { "action": "create", "name": "铁矿矿洞", "x": 100, "y": 64, "z": 200 }
}aim — 目标任务
| 工具 | 功能 | 参数 | 返回值 |
|---|---|---|---|
aim_list | 列出目标任务 | type(可选), status(可选) | 任务列表 |
aim_query | 查看任务详情 | id | 任务详情 |
aim_update | 更新任务进度 | id, progress(可选), status(可选) | 更新结果 |
列出所有主线任务:
{
"tool": "aim_list",
"params": { "type": "main", "status": "active" }
}查看任务详情:
{
"tool": "aim_query",
"params": { "id": "aim_001" }
}更新任务进度:
{
"tool": "aim_update",
"params": { "id": "aim_001", "progress": 50, "status": "active" }
}典型场景
AI 自动利用记忆:
1. 玩家: "帮我建一个刷铁机"
2. AI 思考: 我记得之前在知识库中查过村民繁殖机制
→ knowledge_query("村民繁殖机制")
→ 获取到相关领域知识
3. AI 继续: 见过一张地图上有标注的村庄
→ maps_query("村庄")
→ 找到最近的村庄坐标
4. 前往村庄 → 开始搭建AI 学到的经验:
1. 玩家: "去我家里拿一些工具"
2. AI 回想: 玩家说过家在 (-100, 64, 200)
→ memory_query("玩家的家")
→ 返回记忆条目
3. move_to(-100, 64, 200)
4. 发现箱子中的工具错误处理
| 场景 | 错误码 | 说明 |
|---|---|---|
| 查询结果为空 | — | 返回空列表,不报错 |
| 无效的操作类型 | INVALID_PARAMS | action 参数不支持 |
| 指定的 ID 不存在 | NOT_FOUND | 记忆/路径/任务 ID 无效 |