ESC
入门指南 简介

简介

robotmem 是一个面向机器人 AI 智能体的持久记忆系统。它让机器人能够记住技能、从失败中学习,并基于过往经验不断进化 — 跨会话、跨重启、跨生命周期。

为什么选择 robotmem?

机器人运行数千次实验,但每个回合都从零开始。robotmem 存储每一次经验 — 参数、轨迹、成功与失败 — 并检索最相关的经验来指导未来的决策。

核心能力

6 个 API 工具

工具 用途
learn 记录物理经验(参数、策略、教训)
recall 检索经验 — BM25 + 向量混合搜索,支持 context_filterspatial_sort
save_perception 存储感知/轨迹/力数据(视觉 / 触觉 / 本体感觉 / 听觉 / 程序性)
forget / update 删除或修正错误的记忆
start_session / end_session 回合生命周期(自动合并 + 主动回忆)

5 种感知类型

robotmem 理解 5 种机器人感知类型:

结构化经验检索

不只是向量搜索 — robotmem 理解机器人经验的结构:

# 仅检索成功的经验
recall(query="push to target", context_filter='{"task.success": true}')

# 查找最近的空间场景
recall(query="grasp object", spatial_sort='{"field": "spatial.object_position", "target": [1.3, 0.7, 0.42]}')

# 组合条件:成功 + 距离 < 0.05m
recall(
    query="push",
    context_filter='{"task.success": true, "params.final_distance.value": {"$lt": 0.05}}',
)

Context JSON — 4 个分区

每条记忆的 context 被结构化为 4 个语义分区:

{
    "params":  {"grip_force": {"value": 12.5, "unit": "N", "type": "scalar"}},
    "spatial": {"object_position": [1.3, 0.7, 0.42], "target_position": [1.25, 0.6, 0.42]},
    "robot":   {"id": "fetch-001", "type": "Fetch", "dof": 7},
    "task":    {"name": "push_to_target", "success": true, "steps": 38}
}

recall 自动将 params / spatial / robot / task 提取为每条返回记忆的顶层字段。

架构概览

SQLite + FTS5 + vec0
├── BM25 全文搜索(jieba 中文分词)
├── 向量搜索(FastEmbed ONNX,纯 CPU)
├── RRF 融合排序
├── 结构化过滤(context_filter)
└── 空间最近邻排序(spatial_sort)

对比

维度 MemoryVLA(学术) Mem0(产品) robotmem
目标用户 特定 VLA 模型 文本 AI 机器人 AI
记忆格式 向量(不可读) 文本 自然语言 + 感知 + 参数
结构化过滤 不支持 不支持 支持(context_filter)
空间检索 不支持 不支持 支持(spatial_sort)
物理参数 不支持 不支持 支持(params 分区)
安装方式 论文代码编译 pip install pip install
数据库 嵌入式 云服务 本地 SQLite

下一步