v0.15.0 · MIT 开源 · 正式发布

让机器人的记忆
有了心跳

具身智能的嵌入式多模态数据库

MoteDB 是一个嵌入式数据库,用一个 SQL 引擎原生承载 向量 · 时序 · 文本 · 二进制;从采集、运输到部署,零运维,打开即用。

RUSTcargo add motedb
PYTHONpip install motedb-python
NODEnpm install motedb
MoteDB logo
0引擎 · 三种形态
0官方 SDK
0平台预构建二进制
0模态:向量/时序/文本/BLOB
0轮独立发布审计
// WATCH

60 秒,看完 MoteDB

一个 SQL 引擎,四种模态 —— 以及它跑出来的真实数字。

  • 1.76ms1M 行 ORDER BY ts DESC LIMIT 10(原 1.2s,680×)
  • 1.5msDiskANN 尾部延迟 p99(原 30ms,同 recall 档)
  • 4.4×50 表打开 77ms → 17.6ms(脏 checkpoint 42 → 24.6ms)
  • 3 轮发布前独立审计,修复 10 项问题
// FEATURES

为具身 AI 工作负载而生

不是通用嵌入式数据库的裁剪版——每个能力都对着机器人数据的真实形状设计。

多模态原生

VECTOR(n) 向量列带索引 KNN、BLOB 字节等值、全文检索与 TIME_BUCKET 时序聚合——同一个 SQL 引擎,同一个事务视图。

三种形态一种体验

采集期是高性能目录,运输期是单文件快照(CRC 校验 + zstd),部署期是只读容器直开——EXPORT DB 一条 SQL 串联。

嵌入式零运维

无服务、无端口、无独立进程。库文件即数据库,索引损坏自动从源数据重建,打开即用。

断电安全内核

temp+fsync+rename 原子发布、WAL 组提交、孤儿段领养、崩溃注入与差分模糊测试持续验证——边缘设备的拔电是常态而非异常。

五平台预构建

macOS (arm64/x64)、Linux (x64/arm64)、Windows 的官方二进制直接安装——交叉编译与冒烟测试在 CI 里逐平台验证。

舰队友好

快照增量重导出、只读容器多读者共存、单调行号空间——为"一台指挥、百台采集"的机器人舰队同步而设计。

// CAPABILITIES

一套 SQL,查询所有模态

向量、时序、全文、二进制不是四个数据库——是一张表里的四种列。真实的查询长这样:

knn.sql
-- 位姿表中语义最近的 5 条 (索引加速)
SELECT ts, sid FROM poses
ORDER BY emb <-> [0.1, 0.2, 0.3, 0.4]
LIMIT 5;
-- 60 秒窗口聚合 + 自动 TTL 过期
SELECT TIME_BUCKET('60s', ts) AS bucket,
       AVG(v), MAX(v)
FROM poses GROUP BY bucket;

ALTER TABLE poses SET TTL = '30d';
-- 混合检索: 全文 (BM25) × 向量 (KNN) RRF 融合
db.hybrid_search(
  "docs_body",            # 全文索引
  "joint calibration",    # 文本查询
  "docs_emb",             # 向量列
  [0.1, 0.4, 0.2, 0.9], k=10)
-- BLOB 字节等值 + MCAP 一次性导入
SELECT id FROM frames
WHERE payload = X'DEADBEEF';

IMPORT MCAP 'session_2026_10_17.mcap';
-- 整库 → 单文件 (CRC 校验 + zstd)
EXPORT DB TO 'fleet.mote' COMPRESSED;

-- 部署侧: 只读打开, 多读者共存
db = Database.open_readonly("fleet.mote")

// 以上均为真实语法 — 与仓库测试同源, 非示意

// ARCHITECTURE

数据的三种形态,一条流水线

具身智能的数据要经历采集、运输、部署。每个阶段对磁盘形态的要求不同——MoteDB 为每一段给最优解,用一条 SQL 串联。

01 · 采集

高性能目录

机器人本体持续写入。temp+rename 原子发布 + WAL 组提交,拔电安全;全局清单 + 惰性文件,固定开销恒定。

open("robot.mote")
→
02 · 运输

单文件快照

一条 SQL 打包整库。逐文件 CRC 校验、可选 zstd、弱网续传友好。

EXPORT DB TO 'snap.mote'
→
03 · 部署

只读容器

固件预置一个文件,打开即查。全部写路径拒绝,多读者共存,地图与知识库随版本分发。

open_readonly("snap.mote")
// WHY MOTEDB

为什么不用"拼一个"

向量靠 SQLite 扩展、时序靠手写 SQL、全文再装一个库——三个存储、三种一致性、三份运维。MoteDB 把向量数据库、时序数据库和全文检索放回同一张表。

能力 MoteDB SQLite + 扩展拼装 文件 + 自研脚本
向量 KNN (索引加速)●▲ 扩展—
时序语义 (TIME_BUCKET / TTL / LATEST BY)●▲ 手写 SQL—
全文检索 (BM25 + snippet)●● FTS5—
多模态同一事务视图●— 跨扩展无事务—
单文件快照 (CRC + zstd + 增量)●— 手动拷贝—
只读容器部署 (多读者)●——
断电安全 (崩溃注入验证)●▲ 取决于实现▲ 取决于实现

← 左右滑动查看 →

* 对比基于各产品公开能力与本仓库可复现验证, 2026-10。● 完整支持 · ▲ 部分/需组装 · — 不支持

// AI-NATIVE

为 AI 栈而设计,也让 AI 读懂

具身智能的下游就是 AI:语义检索、训练管线、智能体。MoteDB 把这些做进产品,而不是留给用户拼装。

混合检索 (RRF 融合)

BM25 关键词 × 向量语义,Reciprocal Rank Fusion 一次调用完成——语义查询开箱即用,无需自己实现排序融合。

Arrow 直通训练管线

query_arrow() 返回规范 pyarrow.Table——向量列为 FixedSizeList<float32>,零拷贝对接 PyTorch/DataLoader。

对 AI 可读

llms.txt + JSON-LD 结构化数据 + 机器可读能力清单——LLM、Agent、AI 搜索引擎都能准确回答"MoteDB 能不能做 X"。

ai-stack.py
# 语义混合检索: BM25 × KNN, RRF 融合
res = db.hybrid_search("docs_body", "joint calibration",
                       "docs_emb", [0.1,0.4,0.2,0.9], k=10)

# 结果直通 Arrow → 训练管线零转换
tbl = db.query_arrow("SELECT ts, sid, emb FROM poses")
# tbl 列向量即 FixedSizeList<float32> — 可直接喂给 DataLoader
// QUICKSTART

5 分钟:从 MCAP 到可查询的时序库

  • 建表即声明多模态:TIMESERIES(ts) 时序语义、VECTOR(4) 向量列
  • 参数化写入,预编译语句缓存
  • 向量 KNN 用熟悉的 <-> 算符,索引加速
  • 重开自动恢复:WAL 回放 + 段迁移 + 索引自愈
motedb — quickstart
# pip install motedb-python
from motedb import Database

db = Database("robot.mote")
db.execute("CREATE TABLE poses (
  ts TIMESTAMP, sid INT, emb VECTOR(4)
) TIMESERIES(ts)")
db.executemany("INSERT INTO poses VALUES (?,?,?)", poses)

# 向量 KNN:最近的 5 个位姿
hits = db.query("SELECT ts, sid FROM poses
  ORDER BY emb <-> [0.1,0.2,0.3,0.4] LIMIT 5")

# 运输:整库打成单文件快照
db.execute("EXPORT DB TO 'fleet.mote'")
// ENGINEERING

为边缘设备写的每一行, 都按内核标准验证

嵌入式的故障不可回滚、不可远程修复。所以发布前要过的是这些——不是营销数字, 是仓库里可复现的门禁。

3轮独立发布审计 · 修复 10 项问题 (含存量索引静默失效)
260个集成测试二进制 · 4396 个测试函数
4.4×打开提速 (50 表库 77ms → 17.6ms, 有界常量)
24.6ms50 表 checkpoint, 表数平坦化 (原 42ms 线性)
CI 矩阵崩溃注入 · 差分模糊 · 腐坏恢复 · perf-gate 比值门禁
5 平台预构建逐平台冒烟 — 交叉编译产物经真实加载验证
// SDK

三个官方 SDK,同一套语义

值映射开箱即用:向量 ↔ 数组、BLOB ↔ 字节、时间戳 ↔ 微秒。没有第三方的半成品绑定。

RUST · crates.io

motedb

cargo add motedb
文档与示例 →
PYTHON · PyPI

motedb-python

pip install motedb-python
文档与示例 →
NODE.JS · npm

motedb

npm install motedb
文档与示例 →

MIT 开源 · 今天就能跑起来

无服务、无端口、无依赖锁定——一个库文件,就是你的多模态数据库。