# Phase R.0：RAG 现状与目标

日期：2026-04-03
状态：已完成
借鉴来源：VCPToolBox TagMemo V6 架构

---

## 1. 本阶段目的

本文件用于统一背景认知，明确：

- Jarvis 当前 RAG 架构处于什么水平
- 主要短板是什么
- 为什么要升级
- 升级后的目标形态是什么
- VCPToolBox 给我们什么启发

---

## 2. 当前 Jarvis RAG 架构

### 2.1 核心流程

```
用户上传文档 → DocumentService (解析/分块) → ChromaDB (向量存储) → KnowledgeService (检索)
```

### 2.2 核心文件

| 文件 | 职责 |
|------|------|
| `backend/app/services/document_service.py` | 文档上传/解析/分块 |
| `backend/app/services/knowledge_service.py` | ChromaDB 向量检索/混合检索 |
| `backend/app/models/document.py` | Document/DocumentChunk 数据模型 |

---

## 3. 当前能力矩阵

| 能力 | 状态 | 说明 |
|------|------|------|
| 多格式文档解析 | ✅ | PDF/MD/TXT/DOCX/CSV/XLSX |
| 结构化分块 | ✅ | 基于标题层级、表格、段落 |
| 向量检索 | ✅ | ChromaDB 语义相似度 |
| 关键词检索 | ✅ | SQL LIKE |
| 混合检索 | ✅ | 向量 + 关键词加权 |
| Rerank | ✅ | 语义分×0.7 + 关键词×0.2 + 标题×0.1 |
| 上下文丰富 | ✅ | 自动获取前/后 chunk |

---

## 4. 当前短板

| 短板 | 严重程度 | 影响 |
|------|----------|------|
| 无重叠分块 | 🟡 中 | 跨块边界信息丢失 |
| 单索引架构 | 🟡 中 | 无法按知识类型/重要性分层 |
| 无动态权重 | 🟡 中 | 检索策略静态，不适配查询类型 |
| 无 Tag/标签系统 | 🟡 中 | 无法利用语义标签增强检索 |
| 无懒加载机制 | 🟢 低 | 大量文档时内存占用高 |
| 无遗忘机制 | 🟢 低 | 存储无限增长 |

---

## 5. VCPToolBox TagMemo V6 核心借鉴

### 5.1 核心架构

```
日记文件变化 → TextChunker(Token感知分块85%+10%重叠) 
            → EmbeddingUtils(并发批量向量化) 
            → SQLite(元数据) + VexusIndex(Rust HNSW向量索引)
```

### 5.2 TagMemo V6 检索流程

```
Query → EPA分析(逻辑深度L/共振R) → 残差金字塔 → TagBoost(β动态权重) 
      → LIF脉冲扩散(2跳) → 向量融合 → VexusIndex搜索
```

### 5.3 核心模块

| 模块 | 功能 |
|------|------|
| TextChunker | Token 感知分块，85% 安全边界 + 10% 重叠 |
| EPA | 语义空间投影分析，识别逻辑深度和跨域共振 |
| Residual Pyramid | 残差金字塔，多级剥离捕获微弱信号 |
| TagBoost | 动态权重增强，根据查询特性调整 |
| LIF Spike | 脉冲扩散，2跳拓扑联想 |
| VexusIndex | Rust HNSW 向量索引，高性能检索 |

### 5.4 关键设计理念

1. **TagMemo 不是搜索引擎，是记忆联想引擎** - 模拟人类大脑的感知→编码→巩固→检索→重构
2. **动态适配** - 根据查询意图动态调整检索策略
3. **拓扑涌现** - 基于共现矩阵的脉冲扩散，产生非直观联想

---

## 6. 目标架构

```
┌─────────────────────────────────────────────────────────────┐
│                      User Query                              │
└─────────────────────────┬───────────────────────────────────┘
                          │
              ┌───────────┴───────────┐
              │   Query Analyzer       │  ← R.3 新增
              │  (查询特性分析)        │
              └───────────┬───────────┘
                          │
         ┌────────────────┼────────────────┐
         ▼                ▼                ▼
    ┌─────────┐    ┌───────────┐   ┌──────────────┐
    │ Default  │    │ Important  │   │ Code/Meeting │
    │ Collection│    │ Collection │   │ Collections  │
    └────┬─────┘    └─────┬─────┘   └──────┬───────┘
         │                  │                 │
         └──────────────────┼─────────────────┘
                            ▼
              ┌───────────────────────────┐
              │    Dynamic Reranker      │  ← R.3 新增
              │  (Core Tag Boost + 动态权重)│
              └───────────────────────────┘
                            │
                            ▼
                    ┌───────────────┐
                    │  Search Result │
                    └───────────────┘
```

---

## 7. 借鉴点映射

| VCPToolBox 借鉴点 | Jarvis 实现位置 | 优先级 |
|-------------------|---------------|--------|
| Token 感知分块（85%+10% 重叠） | `services/chunker.py` | 🟢 高 |
| 多索引架构 | `services/multi_index.py` | 🟡 中 |
| 懒加载 + LRU TTL | `services/multi_index.py` | 🟡 中 |
| TagBoost 动态权重 | `services/dynamic_reranker.py` | 🟡 中 |
| 核心标签系统（1.33x 加权） | `services/core_tag_search.py` | 🟡 中 |
| 语义去重 | `services/deduplicator.py` | 🔴 低 |
| 语义分桶 | `services/semantic_bucket.py` | 🔴 低 |
| EPA 分析 | - | 🔴 探索 |
| LIF 脉冲扩散 | - | 🔴 探索 |

---

## 8. 本阶段产出要求

- [x] 团队对 Jarvis 当前 RAG 问题和目标方向达成一致
- [x] VCPToolBox 借鉴点已映射到具体 Phase
- [x] 后续 phase 文档能够在这个认知基础上展开
