|
|
|
@ -139,33 +139,62 @@ |
|
|
|
|
|
|
|
|
|
|
|
## 🔧 共享基础设施 |
|
|
|
## 🔧 共享基础设施 |
|
|
|
|
|
|
|
|
|
|
|
### 1. 记忆系统 (Memory System) |
|
|
|
### 1. 记忆系统 (Memory System) - 单库融合架构 |
|
|
|
|
|
|
|
|
|
|
|
``` |
|
|
|
``` |
|
|
|
┌──────────────────────────────────────────────────────┐ |
|
|
|
┌──────────────────────────────────────────────────────────────┐ |
|
|
|
│ 记忆系统架构 │ |
|
|
|
│ 记忆系统架构 (单库融合) │ |
|
|
|
├──────────────────────────────────────────────────────┤ |
|
|
|
├──────────────────────────────────────────────────────────────┤ |
|
|
|
│ ┌─────────────┐ ┌─────────────┐ │ |
|
|
|
│ │ |
|
|
|
│ │ Mem0 Core │────▶│ Qdrant │ │ |
|
|
|
│ ┌─────────────┐ ┌─────────────────────────┐ │ |
|
|
|
│ │ (Python) │ │ (Vector DB)│ │ |
|
|
|
│ │ Mem0 Core │────▶│ Qdrant │ │ |
|
|
|
│ └──────┬──────┘ └──────┬──────┘ │ |
|
|
|
│ │ (Python) │ │ mem0_global_v4 │ │ |
|
|
|
│ │ │ │ |
|
|
|
│ └──────┬──────┘ │ (唯一全局 Collection) │ │ |
|
|
|
│ │ Embedding │ 1024 维度 │ |
|
|
|
│ │ │ │ │ |
|
|
|
│ │ (DashScope) │ localhost:6333 │ |
|
|
|
│ │ Embedding │ ┌──────────────────┐ │ │ |
|
|
|
│ ▼ ▼ │ |
|
|
|
│ │ v4 (1024) │ │ Payload Metadata │ │ │ |
|
|
|
│ ┌─────────────────────────────────────┐ │ |
|
|
|
│ ▼ │ │ ┌──────────────┐ │ │ │ |
|
|
|
│ │ MEMORY.md + memory/*.md │ │ |
|
|
|
│ ┌─────────────┐ │ │ │ agent_id │ │ │ │ |
|
|
|
│ │ (文本记忆 · Git 版本控制) │ │ |
|
|
|
│ │ DashScope │ │ │ │ - "main" │ │ │ │ |
|
|
|
│ └─────────────────────────────────────┘ │ |
|
|
|
│ │ Gemini Pro │ │ │ │ - "life" │ │ │ │ |
|
|
|
└──────────────────────────────────────────────────────┘ |
|
|
|
│ │ text-embed- │ │ │ │ user_id │ │ │ │ |
|
|
|
|
|
|
|
│ │ ding-v4 │ │ │ │ - "wang_..." │ │ │ │ |
|
|
|
|
|
|
|
│ └─────────────┘ │ │ └──────────────┘ │ │ │ |
|
|
|
|
|
|
|
│ │ └──────────────────┘ │ │ |
|
|
|
|
|
|
|
│ └─────────────────────────┘ │ |
|
|
|
|
|
|
|
└──────────────────────────────────────────────────────────────┘ |
|
|
|
``` |
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
**配置:** |
|
|
|
**核心架构:** |
|
|
|
- **Qdrant:** `localhost:6333` |
|
|
|
- **Qdrant:** `localhost:6333` |
|
|
|
- **Embedding:** DashScope `text-embedding-v3` (1024 维度) |
|
|
|
- **Embedding:** Gemini Pro `text-embedding-v4` (1024 维度) |
|
|
|
- **Collection:** `mem0_v4_main`, `mem0_v4_life` (隔离) |
|
|
|
- **Collection:** `mem0_global_v4` (**唯一全局 Collection**) |
|
|
|
|
|
|
|
- **隔离方式:** 元数据标签软隔离 (`metadata.agent_id`) |
|
|
|
- **更新频率:** 每 5 分钟自动同步 |
|
|
|
- **更新频率:** 每 5 分钟自动同步 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**隔离机制:** |
|
|
|
|
|
|
|
```python |
|
|
|
|
|
|
|
# 写入时注入 agent_id |
|
|
|
|
|
|
|
metadata = { |
|
|
|
|
|
|
|
"agent_id": "main", # 或 "life" |
|
|
|
|
|
|
|
"user_id": "wang_yuanzhang", |
|
|
|
|
|
|
|
"source": "openclaw" |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 检索时使用 metadata 过滤 |
|
|
|
|
|
|
|
memories = memory.search( |
|
|
|
|
|
|
|
query, |
|
|
|
|
|
|
|
user_id="wang_yuanzhang", |
|
|
|
|
|
|
|
filters={"agent_id": "main"} # 软隔离关键 |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**架构优势:** |
|
|
|
|
|
|
|
- ✅ **维度统一** - 避免多 Collection 维度不一致导致的崩溃风险 |
|
|
|
|
|
|
|
- ✅ **运维简化** - 单一 Collection,降低管理复杂度 |
|
|
|
|
|
|
|
- ✅ **记忆共享** - 支持跨 Agent 记忆查询(可选) |
|
|
|
|
|
|
|
- ✅ **最佳实践** - 符合 Mem0 官方推荐的元数据隔离模式 |
|
|
|
|
|
|
|
|
|
|
|
--- |
|
|
|
--- |
|
|
|
|
|
|
|
|
|
|
|
### 2. 系统服务 (Systemd Services) |
|
|
|
### 2. 系统服务 (Systemd Services) |
|
|
|
@ -231,9 +260,21 @@ |
|
|
|
▼ ▼ ▼ |
|
|
|
▼ ▼ ▼ |
|
|
|
┌──────────┐ ┌──────────┐ ┌──────────┐ |
|
|
|
┌──────────┐ ┌──────────┐ ┌──────────┐ |
|
|
|
│ Session │ │ Session │ │ Session │ |
|
|
|
│ Session │ │ Session │ │ Session │ |
|
|
|
│ (main) │ │ (life) │ │ (new) │ |
|
|
|
│ (main) │ │ (life) │ │ Session │ |
|
|
|
│ Eason │ │ 张大师 │ │ 未来 │ |
|
|
|
│ Eason │ │ 张大师 │ │ (new) │ |
|
|
|
└──────────┘ └──────────┘ └──────────┘ |
|
|
|
│agent_id= │ │agent_id= │ │ 未来 │ |
|
|
|
|
|
|
|
│ "main" │ │ "life" │ │ │ |
|
|
|
|
|
|
|
└────┬─────┘ └────┬─────┘ └──────────┘ |
|
|
|
|
|
|
|
│ │ |
|
|
|
|
|
|
|
└──────┬───────┘ |
|
|
|
|
|
|
|
│ |
|
|
|
|
|
|
|
▼ |
|
|
|
|
|
|
|
┌──────────────────────┐ |
|
|
|
|
|
|
|
│ mem0_global_v4 │ |
|
|
|
|
|
|
|
│ (唯一 Collection) │ |
|
|
|
|
|
|
|
│ metadata.agent_id │ |
|
|
|
|
|
|
|
│ 软隔离 │ |
|
|
|
|
|
|
|
└──────────────────────┘ |
|
|
|
``` |
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
**关键特性:** |
|
|
|
**关键特性:** |
|
|
|
@ -242,6 +283,7 @@ |
|
|
|
3. **共享技能** - skills/ 目录下的技能所有 Agent 可用 |
|
|
|
3. **共享技能** - skills/ 目录下的技能所有 Agent 可用 |
|
|
|
4. **独立配置** - 每个 Agent 有自己的 workspace 和配置 |
|
|
|
4. **独立配置** - 每个 Agent 有自己的 workspace 和配置 |
|
|
|
5. **统一管理** - Eason 负责所有 Agent 的部署和优化 |
|
|
|
5. **统一管理** - Eason 负责所有 Agent 的部署和优化 |
|
|
|
|
|
|
|
6. **单库融合** - 所有记忆写入唯一 Collection,通过 `metadata.agent_id` 隔离 |
|
|
|
|
|
|
|
|
|
|
|
--- |
|
|
|
--- |
|
|
|
|
|
|
|
|
|
|
|
|