内容
# 🧠 Memoria
> 独立的AI智能体记忆中心。采用Rust构建,兼容MCP协议,零外部依赖。
AI智能体不应每次重启都忘记你。Memoria是一个独立的记忆服务——对话、决策、偏好——在所有AI工具中统一。
**不受任何软件绑定。仅为你服务。**
**[中文文档](README_CN.md)** | **[更新日志](EVOLUTION.md)**
---
## 为什么选择Memoria?
每个AI产品都有自己的记忆孤岛。当你从Claude切换到DeepSeek时,你的上下文就丢失了。从ChatGPT切换到本地模型?一切都要从头开始。
Memoria通过成为**记忆层**解决了这个问题,而不是任何特定AI客户端的功能。任何兼容MCP的智能体都可以接入并共享相同的记忆。
```
智能体 (Claude Desktop / Jan / OpenClaw / ...)
│
▼ MCP协议 (JSON-RPC over HTTP)
┌─────────────────────────────────────┐
│ Memoria (:9003) │
│ ┌─────────┐ ┌──────┐ ┌──────────┐ │
│ │ SQLite │ │ FTS5 │ │ HNSW │ │
│ │(结构化)│(全文搜索)│(向量搜索)│ │
│ └─────────┘ └──────┘ └──────────┘ │
│ ┌─────────────────────────────────┐│
│ │ 5-信号混合搜索 (RRF) ││
│ │ 关键词+语义+时间 ││
│ │ +重要性+分类 ││
│ └─────────────────────────────────┘│
│ ┌─────────────────────────────────┐│
│ │ 身份验证 + 审计 + 命名空间 ││
│ └─────────────────────────────────┘│
└─────────────────────────────────────┘
```
## 功能
### 🔍 5-信号混合搜索
- **关键词** — FTS5全文搜索 (jieba-rs中文分词)
- **语义** — HNSW向量搜索 (hnsw_rs)
- **时间** — 时间衰减权重
- **重要性** — 记忆优先级评分 (1-5)
- **分类** — 意图分类过滤
- **RRF融合** — 5个信号的互惠排名融合
### 🔐 身份验证与审计
- **命名空间隔离** — 多租户数据分离
- **徽章令牌身份验证** — SHA-256令牌身份验证
- **每周分区审计日志** — 自动轮换,90天保留
- **独立审计数据库** — 与主数据库无锁竞争
### 🤝 智能体间通信
- 智能体间消息路由
- 审批工作流和任务协调
- 跨智能体知识共享
### 🌐 网页仪表盘
- 搜索,时间线浏览,图谱可视化
- CRUD API:创建,读取,更新,删除,导入,导出,备份
## 性能
| 指标 | Python (原始) | Rust | 改进 |
|--------|:-:|:-:|:-:|
| 平均搜索延迟 | 410毫秒 | 112毫秒 | **3.7倍** |
| P50搜索延迟 | 182毫秒 | 99毫秒 | **1.8倍** |
| 无结果率 | 32.2% | 0% | **—** |
## 快速入门
### 构建与运行
```bash
git clone https://github.com/memoria-ai/memoria.git
cd memoria
cargo build --release
./target/release/memoria-server
```
服务器启动于 `http://0.0.0.0:9003`。网页仪表盘位于 `http://0.0.0.0:9003/app`。
### 环境变量
| 变量 | 默认值 | 描述 |
|----------|---------|-------------|
| `MEMORIA_DB_PATH` | `data/memoria.db` | 主数据库路径 |
| `MEMORIA_PORT` | `9003` | 服务器端口 |
| `MEMORIA_HOST` | `0.0.0.0` | 绑定地址 |
| `MEMORIA_ADMIN_KEY` | 自动生成 | 管理员令牌 |
| `MEMORIA_AUTH_DB_PATH` | `<data>/audit.db` | 审计数据库路径 |
### MCP客户端配置
将Memoria添加到任何兼容MCP的客户端:
```json
{
"mcpServers": {
"memoria": {
"url": "http://127.0.0.1:9003/mcp",
"transport": "http"
}
}
}
```
### MCP工具
| 工具 | 描述 |
|------|-------------|
| `memory_search` | 关键词 + 语义混合搜索 |
| `memory_search_v2` | 5-信号RRF融合搜索 |
| `memory_remember` | 存储记忆 (SHA-256去重) |
| `memory_observe` | 存储低优先级观察 |
| `register_agent` | 注册智能体身份 (管理员令牌) |
| `agent_list` | 列出已注册智能体 |
| `agent_revoke` | 撤销智能体令牌 |
| `audit_query` | 查询审计日志 |
| `db_stats` | 数据库统计 |
| `a2a_send` / `a2a_recv` | 智能体间消息传递 |
| `skill_market_*` | 技能市场 (5个工具) |
## 技术栈
| 组件 | 技术 |
|-----------|-----------|
| 语言 | Rust (2021版) |
| Web框架 | axum + tower-http |
| 结构化存储 | SQLite + r2d2连接池 |
| 全文搜索 | FTS5 + jieba-rs |
| 向量搜索 | hnsw_rs (HNSW) |
| 混合排名 | RRF 5-信号融合 |
| 协议 | MCP (JSON-RPC over HTTP) |
| 二进制大小 | ~8 MB (发布,精简) |
## 系统需求
- **操作系统**:Windows 10+ / Linux / macOS
- **内存**:≥ 64 MB 空闲,≥ 256 MB 负载下
- **磁盘**:≥ 100 MB (不包括数据库)
- **Rust工具链**:仅在构建时需要
## 项目结构
```
memoria/
├── src/
│ ├── main.rs # 二进制入口点
│ ├── lib.rs # 库 (可选PyO3绑定)
│ ├── mcp_server.rs # MCP JSON-RPC处理器
│ ├── auth.rs # 身份验证 + 审计 + 每周分区
│ ├── web_api.rs # HTTP API + 静态文件服务
│ ├── session_watcher.rs # 会话生命周期跟踪
│ ├── search/
│ │ ├── rrf.rs # 5-信号RRF融合 + 图谱扩展
│ │ ├── keyword.rs # FTS5关键词搜索
│ │ ├── semantic.rs # HNSW语义搜索
│ │ ├── temporal.rs # 时间衰减
│ │ ├── importance.rs # 重要性评分
│ │ └── hybrid.rs # 搜索编排
│ ├── storage/
│ │ ├── sqlite.rs # 连接池 + 模式初始化
│ │ ├── fts5.rs # jieba-rs分词器
│ │ └── models.rs # 数据模型
│ ├── vector/
│ │ ├── hnsw.rs # HNSW索引包装器
│ │ └── embedding.rs # 嵌入客户端 + LRU缓存
│ └── tools/
│ ├── remember.rs # 记忆存储
│ ├── observe.rs # 观察存储
│ ├── prefs.rs # 用户偏好
│ ├── decay.rs # 记忆衰减
│ └── graph.rs # 关系图谱
├── web/ # 网页仪表盘 (静态HTML/CSS/JS)
├── Cargo.toml
├── Cargo.lock
└── README.md
```
## 参考资料
### 论文
- **MAGMA** (ACL 2026) — 多图谱记忆架构,RRF融合
- **互惠排名融合** (Cormack等,SIGIR 2009) — 排名融合
- **HNSW** (Malkov & Yashunin, 2016) — 近似最近邻搜索
### 项目
- [hnsw-rs](https://github.com/marco-apostoli/hnsw-rs) — Rust HNSW实现
- [jieba-rs](https://github.com/messense/jieba-rs) — 中文分词
- [rusqlite](https://github.com/rusqlite/rusqlite) — SQLite绑定
- [axum](https://github.com/tokio-rs/axum) — Rust Web框架
### 比较
| 系统 | vs Memoria |
|--------|-----------|
| Mem0 | 内存层,需要外部向量数据库;Memoria自带HNSW + SQLite |
| MemGPT | 虚拟上下文管理,用于LLM窗口;Memoria专注于持久记忆 |
| LangChain Memory | 框架锁定;Memoria是协议级独立服务 |
## 许可证
MIT