You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
11 KiB
11 KiB
mem0 记忆系统架构文档
版本信息
- 文档版本: 1.0.0
- 创建日期: 2026-02-22
- 最后更新: 2026-02-22
- 部署环境: Ubuntu 24.04 LTS, Docker 29.2.1
1. 系统架构
1.1 整体架构图
┌─────────────────────────────────────────────────────────────────┐
│ Tailscale 虚拟内网 │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 中心节点 (vps-vaym) │ │
│ │ Tailscale IP: 100.115.94.1 │ │
│ │ 节点名称:mem0-general-center │ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────────┐ │ │
│ │ │ Docker Compose Stack │ │ │
│ │ │ ┌──────────────┐ ┌──────────────┐ │ │ │
│ │ │ │ Qdrant │ │ Dozzle │ │ │ │
│ │ │ │ Master │ │ (日志) │ │ │ │
│ │ │ │ :6333 │ │ :9999 │ │ │ │
│ │ │ └──────────────┘ └──────────────┘ │ │ │
│ │ └──────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────────┐ │ │
│ │ │ OpenClaw + mem0 Integration │ │ │
│ │ │ Gateway: 18789 │ │ │
│ │ │ Skill: mem0-integration │ │ │
│ │ └──────────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ 未来扩展: │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Agent-1 │ │ Agent-2 │ │ Agent-N │ │
│ │ (crypto) │ │ (advert) │ │ (life) │ │
│ │ 100.64.x.x │ │ 100.64.x.x │ │ 100.64.x.x │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────────┘
1.2 技术栈
| 组件 | 技术 | 版本 | 用途 |
|---|---|---|---|
| 组网 | Tailscale | 1.94.2 | 虚拟内网,安全通信 |
| 向量数据库 | Qdrant | 1.15.3 | 记忆存储和检索 |
| 记忆系统 | mem0 | 1.0.4 | 记忆管理层 |
| LLM | DashScope (Qwen) | - | 记忆处理和 embedding |
| 容器 | Docker | 29.2.1 | 服务隔离 |
| 日志 | Dozzle | latest | 实时日志查看 |
1.3 数据流
用户 → OpenClaw → mem0 Client → Qdrant Local → (异步同步) → Qdrant Master
↓
DashScope API (Embedding + LLM)
2. 部署清单
2.1 中心节点 (vps-vaym)
已安装服务:
- ✅ Tailscale (系统级)
- ✅ Qdrant Master (Docker)
- ✅ Dozzle (Docker)
- ✅ mem0 Integration (OpenClaw Skill)
目录结构:
/opt/mem0-center/
├── docker-compose.yml # Docker 配置
├── .env # 环境变量
├── qdrant_storage/ # Qdrant 数据
├── snapshots/ # Qdrant 快照
├── tailscale/ # Tailscale 状态
├── logs/ # 日志
└── backup/ # 备份
/root/.openclaw/workspace/
├── scripts/ # 部署脚本
│ ├── 01-system-check.sh
│ ├── 02-install-tailscale.sh
│ ├── 03-create-directories.sh
│ ├── 05-start-center.sh
│ ├── 06-create-mem0-skill.sh
│ ├── 07-install-dependencies.sh
│ ├── 10-create-backup.sh
│ └── 12-monitoring.sh
├── skills/mem0-integration/
│ ├── SKILL.md
│ ├── skill.json
│ ├── config.yaml
│ ├── mem0_client.py
│ ├── commands.py
│ └── openclaw_commands.py
├── docs/
│ └── MEM0_DEPLOYMENT.md
└── backup/ # 备份文件
2.2 网络配置
Tailscale:
- 网络名称:mem0-general-center
- 业务类型:general
- 节点角色:center
- IP 地址:100.115.94.1
端口映射:
| 服务 | 容器端口 | 主机端口 | 访问范围 |
|---|---|---|---|
| Qdrant | 6333 | 127.0.0.1:6333 | 仅本地 + Tailscale |
| Dozzle | 8080 | 127.0.0.1:9999 | 仅本地 + Tailscale |
| OpenClaw | 18789 | 18789 | 本地 |
3. 配置详情
3.1 Docker Compose 配置
文件:/opt/mem0-center/docker-compose.yml
version: '3.8'
services:
qdrant-master:
image: qdrant/qdrant:v1.15.3
ports:
- "127.0.0.1:6333:6333"
volumes:
- ./qdrant_storage:/qdrant/storage
- ./snapshots:/qdrant/snapshots
environment:
- QDRANT__SERVICE__HTTP_PORT=6333
- QDRANT__LOG_LEVEL=INFO
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:6333/"]
interval: 30s
timeout: 10s
retries: 3
deploy:
resources:
limits:
memory: 2G
cpus: '1.0'
dozzle:
image: amir20/dozzle:latest
ports:
- "127.0.0.1:9999:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped
3.2 mem0 配置
文件:/root/.openclaw/workspace/skills/mem0-integration/config.yaml
local:
vector_store:
provider: qdrant
config:
host: localhost
port: 6333
collection_name: mem0_local
llm:
provider: openai
config:
model: qwen-plus
api_base: https://dashscope.aliyuncs.com/compatible-mode/v1
embedder:
provider: openai
config:
model: text-embedding-v3
api_base: https://dashscope.aliyuncs.com/compatible-mode/v1
master:
vector_store:
provider: qdrant
config:
host: 100.115.94.1 # Tailscale IP
port: 6333
collection_name: mem0_shared
3.3 环境变量
文件:/opt/mem0-center/.env
TS_AUTHKEY=tskey-auth-xxx
QDRANT_PORT=6333
MEM0_DASHSCOPE_API_KEY=sk-xxx
MEM0_LLM_MODEL=qwen-plus
BUSINESS_TYPE=general
NODE_ROLE=center
NODE_NAME=mem0-general-center
4. 使用指南
4.1 部署流程
步骤 1:系统检查
./scripts/01-system-check.sh
步骤 2:安装 Tailscale
./scripts/02-install-tailscale.sh
# 访问 https://login.tailscale.com/admin/machines 确认上线
步骤 3:创建目录
./scripts/03-create-directories.sh
步骤 4:启动服务
./scripts/05-start-center.sh
# 验证:curl http://localhost:6333/
步骤 5:安装 mem0 Skill
./scripts/06-create-mem0-skill.sh
./scripts/07-install-dependencies.sh
步骤 6:测试
python3 /root/.openclaw/workspace/skills/mem0-integration/mem0_client.py
4.2 日常管理
查看服务状态:
cd /opt/mem0-center && docker compose ps
查看日志:
# Dozzle Web UI
http://100.115.94.1:9999
# 命令行
cd /opt/mem0-center && docker compose logs -f
监控系统:
./scripts/12-monitoring.sh
创建备份:
./scripts/10-create-backup.sh
4.3 OpenClaw 命令
通过 Telegram 使用:
/memory add <内容> # 添加记忆
/memory search <关键词> # 搜索记忆
/memory list # 列出所有记忆
/memory delete <ID> # 删除记忆
/memory status # 查看状态
5. 故障排除
5.1 Qdrant 无法启动
症状:docker compose ps 显示 qdrant-master 为 unhealthy
解决:
# 查看日志
docker compose logs qdrant-master
# 检查端口占用
netstat -tlnp | grep 6333
# 重启服务
docker compose restart qdrant-master
5.2 mem0 初始化失败
症状:mem0_client.py 报错
解决:
# 检查环境变量
export OPENAI_API_KEY="sk-xxx"
export OPENAI_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"
# 测试导入
python3 -c "from mem0 import Memory; print('OK')"
# 检查 Qdrant 连接
curl http://localhost:6333/
5.3 Tailscale 断开
症状:tailscale status 显示 offline
解决:
# 重新认证
tailscale up --authkey=tskey-auth-xxx
# 检查服务状态
systemctl status tailscaled
6. 扩展部署
6.1 部署新 Agent 节点
在新节点执行:
- 安装 Tailscale
curl -fsSL https://tailscale.com/install.sh | sh
tailscale up --authkey=tskey-auth-xxx --hostname=mem0-general-agent-01
- 部署 Agent(文档待补充)
6.2 业务类型扩展
命名规范:
mem0-general-center- 通用业务(当前)mem0-crypto-center- 加密货币业务mem0-advert-center- 广告业务mem0-life-center- 生活业务
7. 安全配置
7.1 访问控制
- Tailscale 内网:所有服务仅通过 Tailscale IP 访问
- 端口绑定:仅绑定 127.0.0.1,不暴露公网
- API Key 管理:存储在 .env 文件,权限 600
7.2 数据加密
- Tailscale:端到端加密
- Qdrant:支持 TLS(可选配置)
- 备份:建议加密存储
8. 性能优化
8.1 资源限制
# Docker Compose
deploy:
resources:
limits:
memory: 2G
cpus: '1.0'
8.2 缓存配置
# mem0 config
cache:
enabled: true
ttl: 300 # 5 分钟
max_size: 1000
9. 变更日志
v1.0.0 (2026-02-22)
- ✅ 初始部署
- ✅ 中心节点搭建完成
- ✅ mem0 Integration 完成
- ✅ 文档创建
10. 联系方式
- Tailscale 管理:https://login.tailscale.com/admin
- mem0 文档:https://docs.mem0.ai
- Qdrant 文档:https://qdrant.tech/documentation
- OpenClaw 文档:/root/.openclaw/workspace/docs