在扩展MCP的时候就遇到了上下文不够用的问题,目前最佳还是用RAG,这种方式抓取关键信息,节省字段。期待一手专家强化的表现
Expert RAG System 架构设计
版本: v2.0 日期: 2025-12-12
一、系统全景图
scss
┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ │
│ 🧠 Expert RAG Workflow System │
│ │
├──────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ User Layer (用户层) │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ Cursor │ │ CLI │ │ Web │ │ MCP │ │ │
│ │ │ IDE │ │ Tools │ │ Dashboard │ │ Client │ │ │
│ │ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │ │
│ │ │ │ │ │ │ │
│ └───────────┼──────────────────┼──────────────────┼──────────────────┼────────────────────────┘ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ MCP Layer (MCP 服务层) │ │
│ │ │ │
│ │ ┌───────────────────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ cursor-workflow MCP Server │ │ │
│ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │
│ │ │ │ Workflow │ │ Expert │ │ RAG │ │ Status │ │ │ │
│ │ │ │ Commands │ │ Commands │ │ Commands │ │ Commands │ │ │ │
│ │ │ │ /start │ │ /activate │ │ rag_query │ │ rag_status │ │ │ │
│ │ │ │ /iterate │ │ /reinforce │ │ rag_index │ │ rag_inspect │ │ │ │
│ │ │ │ /confirm │ │ /iterate │ │ │ │ │ │ │ │
│ │ │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │
│ │ └───────────────────────────────────────────────────────────────────────────────────┘ │ │
│ │ │ │ │
│ └──────────────────────────────────────────────┼───────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ Core Layer (核心层) │ │
│ │ │ │
│ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │
│ │ │ Expert Manager │ │ RAG Engine │ │ Session Manager │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ • 专家注册 │ │ • 文档分块 │ │ • 上下文缓存 │ │ │
│ │ │ • 专家激活 │ │ • 向量化 │ │ • Session 管理 │ │ │
│ │ │ • 强化记录 │ │ • 语义检索 │ │ • TTL 控制 │ │ │
│ │ │ • 迭代升级 │ │ • 结果排序 │ │ • 缓存释放 │ │ │
│ │ └────────┬────────┘ └────────┬────────┘ └────────┬────────┘ │ │
│ │ │ │ │ │ │
│ │ ▼ ▼ ▼ │ │
│ │ ┌─────────────────────────────────────────────────────────────────┐ │ │
│ │ │ Retrieval Chain (检索链) │ │ │
│ │ │ │ │ │
│ │ │ RAG 检索 ───► 关键词匹配 ───► 文件加载 ───► 空响应 │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ ▼ ▼ ▼ ▼ │ │ │
│ │ │ [成功返回] [成功返回] [成功返回] [无知识提示] │ │ │
│ │ └─────────────────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ Storage Layer (存储层) │ │
│ │ │ │
│ │ ┌─────────────────────────────┐ ┌─────────────────────────────┐ │ │
│ │ │ Global Storage │ │ Project Storage │ │ │
│ │ │ ~/.cursor-workflow/ │ │ {project}/.cursor/ │ │ │
│ │ │ │ │ │ │ │
│ │ │ ├─ models/ │ │ ├─ skills/ │ │ │
│ │ │ │ └─ all-MiniLM-L6-v2/ │ │ │ ├─ vue3-expert/ │ │ │
│ │ │ │ │ │ │ │ ├─ SKILL.md │ │ │
│ │ │ ├─ skills/ │ │ │ │ ├─ LOCAL.md │ │ │
│ │ │ │ └─ (模板库) │ │ │ │ └─ reinforcements/ │ │ │
│ │ │ │ │ │ │ └─ react-expert/ │ │ │
│ │ │ ├─ vectors/ │ │ │ │ │ │
│ │ │ │ └─ global-index.json │◄────────│ ├─ vectors/ │ │ │
│ │ │ │ │ 引用 │ │ ├─ index.json │ │ │
│ │ │ └─ registry.json │ │ │ └─ metadata.json │ │ │
│ │ │ │ │ │ │ │ │
│ │ └─────────────────────────────┘ │ └─ workflow-state.json │ │ │
│ │ └─────────────────────────────┘ │ │
│ │ │ │
│ │ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ Embedding Layer │ │ │
│ │ │ │ │ │
│ │ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │ │
│ │ │ │ Transformers.js │ │ Orama │ │ JSON Storage │ │ │ │
│ │ │ │ (Embedding) │────────►│ (Vector DB) │────────►│ (Persistence) │ │ │ │
│ │ │ │ 384 维向量 │ │ 向量检索 │ │ 文件存储 │ │ │ │
│ │ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │
│ │ └─────────────────────────────────────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────┘
二、专家生命周期
bash
┌─────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Expert Lifecycle (专家生命周期) │
├─────────────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 1. 模板创建阶段 │ │
│ │ │ │
│ │ 开发者定义专家 │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ SKILL.md │ │ commands/ │ │ resources/ │ │ │
│ │ │ 核心技能 │ │ 命令定义 │ │ 模板资源 │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ │ │ │ │ │ │
│ │ └───────────────────────┼───────────────────────┘ │ │
│ │ ▼ │ │
│ │ ┌─────────────────────────────┐ │ │
│ │ │ 全局模板库 │ │ │
│ │ │ ~/.cursor-workflow/skills │ │ │
│ │ └─────────────────────────────┘ │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 2. 项目初始化阶段 │ │
│ │ │ │
│ │ $ cursor-workflow init --project=/path/to/project --experts=vue3,react,architecture │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌─────────────────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ │ │ │
│ │ │ 1. 复制专家模板到项目 │ │ │
│ │ │ ~/.cursor-workflow/skills/vue3-expert → .cursor/skills/vue3-expert │ │ │
│ │ │ │ │ │
│ │ │ 2. 创建本地化配置文件 │ │ │
│ │ │ .cursor/skills/vue3-expert/LOCAL.md (空模板) │ │ │
│ │ │ │ │ │
│ │ │ 3. 初始化向量索引 │ │ │
│ │ │ 引用全局索引 + 创建项目索引空间 │ │ │
│ │ │ │ │ │
│ │ │ 4. 创建工作流状态文件 │ │ │
│ │ │ .cursor/workflow-state.json │ │ │
│ │ │ │ │ │
│ │ └─────────────────────────────────────────────────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 3. 本地化阶段 │ │
│ │ │ │
│ │ 用户: "请根据这个 API 文档本地化 vue3 专家" │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌─────────────────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ workflow_localize(expertId, materials) │ │ │
│ │ │ │ │ │
│ │ │ 1. 读取物料文件 (API.md, 规范文档等) │ │ │
│ │ │ 2. AI 总结提取知识点 │ │ │
│ │ │ 3. 更新 LOCAL.md │ │ │
│ │ │ 4. 增量索引到向量库 │ │ │
│ │ │ │ │ │
│ │ └─────────────────────────────────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ 结果: │ │
│ │ ┌─────────────────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ LOCAL.md │ │ │
│ │ │ ───────────────────────────────────────────────────────────────── │ │ │
│ │ │ # vue3-expert 项目本地化配置 │ │ │
│ │ │ │ │ │
│ │ │ ## 项目 API 规范 │ │ │
│ │ │ - 使用 /api/v1 作为 API 前缀 │ │ │
│ │ │ - 响应格式: { code, data, message } │ │ │
│ │ │ │ │ │
│ │ │ ## 组件规范 │ │ │
│ │ │ - 强制使用 <script setup> 语法 │ │ │
│ │ │ - 样式使用 SCSS + BEM 命名 │ │ │
│ │ └─────────────────────────────────────────────────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 4. 使用阶段 │ │
│ │ │ │
│ │ 用户: "/vue3-expert 帮我创建一个用户管理组件" │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌─────────────────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ workflow_activate(vue3-expert) │ │ │
│ │ │ │ │ │
│ │ │ 1. 检查向量索引状态 │ │ │
│ │ │ 2. RAG 检索相关知识 │ │ │
│ │ │ - SKILL: 组件创建规范 │ │ │
│ │ │ - LOCAL: 项目组件规范 │ │ │
│ │ │ - REINFORCE: 历史踩坑经验 │ │ │
│ │ │ 3. 注入上下文,开始工作 │ │ │
│ │ │ │ │ │
│ │ └─────────────────────────────────────────────────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 5. 强化阶段 │ │
│ │ │ │
│ │ 方案评审 < 80 分,或者用户指出问题 │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌─────────────────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ expert_reinforce(expertId, problem, solution) │ │ │
│ │ │ │ │ │
│ │ │ 1. 记录问题和解决方案到 HISTORY.md │ │ │
│ │ │ 2. 增量索引强化内容 │ │ │
│ │ │ 3. 检查强化次数 │ │ │
│ │ │ - < 5: 继续累积 │ │ │
│ │ │ - >= 5: 触发专家迭代 │ │ │
│ │ │ │ │ │
│ │ └─────────────────────────────────────────────────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 6. 迭代阶段 │ │
│ │ │ │
│ │ 强化次数 >= 5 │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌─────────────────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ expert_iterate(expertId) │ │ │
│ │ │ │ │ │
│ │ │ 1. 读取所有强化记录 │ │ │
│ │ │ 2. AI 分析共性问题 │ │ │
│ │ │ 3. 更新 SKILL.md (融入强化经验) │ │ │
│ │ │ 4. 清空 HISTORY.md │ │ │
│ │ │ 5. 重建向量索引 │ │ │
│ │ │ 6. 版本号 +1 │ │ │
│ │ │ │ │ │
│ │ └─────────────────────────────────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ 结果: 专家从 v1.0.0 升级到 v1.1.0,融合了 5 次强化经验 │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘
三、工作流状态机
bash
┌─────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Workflow State Machine (工作流状态机) │
├─────────────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ /start <任务> │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ ┌────────┐ │ │
│ │ │ INIT │ │ │
│ │ └────┬───┘ │ │
│ │ │ │ │
│ │ 激活需求专家,开始分析需求 │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌───────────────────────────┐ │ │
│ │ │ REQUIREMENT │ │ │
│ │ │ │ │ │
│ │ │ ┌─────────────────────┐ │ │ │
│ │ │ │ 迭代 1: 理解核心需求 │ │ ◄─── /iterate │ │
│ │ │ └──────────┬──────────┘ │ │ │
│ │ │ │ │ │ │
│ │ │ ┌──────────▼──────────┐ │ │ │
│ │ │ │ 迭代 2: 补充边界条件 │ │ ◄─── /iterate │ │
│ │ │ └──────────┬──────────┘ │ │ │
│ │ │ │ │ │ │
│ │ │ ┌──────────▼──────────┐ │ │ │
│ │ │ │ 迭代 3: 最终审查 │ │ ◄─── /iterate │ │
│ │ │ └─────────────────────┘ │ │ │
│ │ │ │ │ │
│ │ └─────────────┬─────────────┘ │ │
│ │ │ │ │
│ │ /confirm │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌───────────────────────────┐ │ │
│ │ │ SOLUTION │ │ │
│ │ │ │ │ │
│ │ │ ┌─────────────────────┐ │ │ │
│ │ │ │ 并行生成方案 │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ ┌───────┐ ┌───────┐│ │ │ │
│ │ │ │ │Expert1│ │Expert2││ │ │ │
│ │ │ │ │方案 A │ │方案 B ││ │ │ │
│ │ │ │ └───────┘ └───────┘│ │ │ │
│ │ │ └─────────────────────┘ │ │ │
│ │ │ │ │ │
│ │ └─────────────┬─────────────┘ │ │
│ │ │ │ │
│ │ /review │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌───────────────────────────┐ │ │
│ │ │ REVIEW │ │ │
│ │ │ │ │ │
│ │ │ 专家互评打分 │ │ │
│ │ │ │ │ │
│ │ │ ┌─────────────────────┐ │ │ │
│ │ │ │ 评分维度 (各25分) │ │ │ │
│ │ │ │ • 完整性 │ │ │ │
│ │ │ │ • 可行性 │ │ │ │
│ │ │ │ • 可维护性 │ │ │ │
│ │ │ │ • 性能考虑 │ │ │ │
│ │ │ └─────────────────────┘ │ │ │
│ │ │ │ │ │
│ │ └─────────────┬─────────────┘ │ │
│ │ │ │ │
│ │ ┌─────────────────┼─────────────────┐ │ │
│ │ │ │ │ │ │
│ │ < 80 分 >= 80 分 最高分方案 │ │
│ │ │ │ │ │ │
│ │ ▼ │ │ │ │
│ │ ┌─────────────────────┐ │ │ │ │
│ │ │ 强化记录 │ │ │ │ │
│ │ │ 记录不足点 │ │ │ │ │
│ │ │ 重新生成方案 │ │ │ │ │
│ │ └──────────┬──────────┘ │ │ │ │
│ │ │ │ │ │ │
│ │ └────────────────────┼─────────────────┘ │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌───────────────────────────┐ │ │
│ │ │ EXECUTION │ │ │
│ │ │ │ │ │
│ │ │ ┌─────────────────────┐ │ │ │
│ │ │ │ Task 1: xxx │ │ ◄─── /next │ │
│ │ │ │ [✓] 完成 │ │ │ │
│ │ │ ├─────────────────────┤ │ │ │
│ │ │ │ Task 2: xxx │ │ ◄─── /next │ │
│ │ │ │ [✓] 完成 │ │ │ │
│ │ │ ├─────────────────────┤ │ │ │
│ │ │ │ Task 3: xxx │ │ ◄─── /next │ │
│ │ │ │ [ ] 进行中 │ │ │ │
│ │ │ └─────────────────────┘ │ │ │
│ │ │ │ │ │
│ │ └─────────────┬─────────────┘ │ │
│ │ │ │ │
│ │ /done │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌────────┐ │ │
│ │ │ DONE │ │ │
│ │ └────────┘ │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘
四、RAG 检索流程
python
┌─────────────────────────────────────────────────────────────────────────────────────────────────┐
│ RAG Retrieval Flow (RAG 检索流程) │
├─────────────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ 用户输入: "帮我创建一个带有表单验证的用户编辑组件" │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 1. Query Processing │ │
│ │ │ │
│ │ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐ │ │
│ │ │ Query Parser │────────►│ Transformers.js│────────►│ Query Vector │ │ │
│ │ │ 提取关键意图 │ │ 文本向量化 │ │ [0.12, 0.34...] │ │ │
│ │ └──────────────────┘ └──────────────────┘ └──────────────────┘ │ │
│ │ │ │ │
│ └───────────────────────────────────────────────────────────────────────┼──────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 2. Session Check │ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────────────────────────┐ │ │
│ │ │ Context Budget Manager │ │ │
│ │ │ │ │ │
│ │ │ ┌────────────────────┐ ┌────────────────────┐ │ │ │
│ │ │ │ 首次激活? │ │ 缓存命中? │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ 是 → 完整检索 │ │ 是 → 增量检索 │ │ │ │
│ │ │ │ 否 → 检查缓存 │ │ 否 → 完整检索 │ │ │ │
│ │ │ └────────────────────┘ └────────────────────┘ │ │ │
│ │ └──────────────────────────────────────────────────────────────────┘ │ │
│ │ │ │ │
│ └──────────────────────────────────────────────┼───────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 3. Retrieval Chain │ │
│ │ │ │
│ │ ┌─────────────────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ │ │ │
│ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌────────┐ │ │ │
│ │ │ │ RAG 检索 │─────►│ 关键词匹配 │─────►│ 文件加载 │─────►│ 空 │ │ │ │
│ │ │ │ (Orama) │ 失败 │ (BM25) │ 失败 │ (降级) │ 失败 │ 响应 │ │ │ │
│ │ │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ └────────┘ │ │ │
│ │ │ │ 成功 │ 成功 │ 成功 │ │ │
│ │ │ ▼ ▼ ▼ │ │ │
│ │ │ ┌──────────────────────────────────────────────────────┐ │ │ │
│ │ │ │ Results │ │ │ │
│ │ │ └──────────────────────────────────────────────────────┘ │ │ │
│ │ │ │ │ │
│ │ └─────────────────────────────────────────────────────────────────────────────────┘ │ │
│ │ │ │ │
│ └──────────────────────────────────────────────┼───────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 4. Priority & Merge │ │
│ │ │ │
│ │ ┌─────────────────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ 知识优先级排序 │ │ │
│ │ │ │ │ │
│ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │
│ │ │ │ LOCAL │ │ REINFORCE│ │ SKILL │ │ SHARED │ │ │ │
│ │ │ │ 优先级100│ │ 优先级80 │ │ 优先级60 │ │ 优先级40 │ │ │ │
│ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ └──────────────┼──────────────┼──────────────┘ │ │ │
│ │ │ │ │ │ │ │
│ │ │ ▼ ▼ │ │ │
│ │ │ ┌─────────────────────────────────┐ │ │ │
│ │ │ │ Conflict Resolver │ │ │ │
│ │ │ │ 相同主题取高优先级 │ │ │ │
│ │ │ └─────────────────────────────────┘ │ │ │
│ │ │ │ │ │
│ │ └─────────────────────────────────────────────────────────────────────────────────┘ │ │
│ │ │ │ │
│ └──────────────────────────────────────────────┼───────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 5. Context Injection │ │
│ │ │ │
│ │ ┌─────────────────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ │ │ │
│ │ │ ## 📚 相关知识 (置信度: 92%) │ │ │
│ │ │ │ │ │
│ │ │ ### 来源: 项目规范 (LOCAL) [优先级: 100] │ │ │
│ │ │ > 本项目使用 Element Plus 表单组件 │ │ │
│ │ │ > 表单验证使用 async-validator │ │ │
│ │ │ │ │ │
│ │ │ ### 来源: 强化经验 (REINFORCE) [优先级: 80] │ │ │
│ │ │ > 问题: 表单重置时验证状态未清除 │ │ │
│ │ │ > 解决: 调用 formRef.resetFields() 而非手动清空 │ │ │
│ │ │ │ │ │
│ │ │ ### 来源: 基础技能 (SKILL) [优先级: 60] │ │ │
│ │ │ > Vue3 表单组件应使用 v-model 双向绑定 │ │ │
│ │ │ > 验证规则定义在 rules 对象中 │ │ │
│ │ │ │ │ │
│ │ │ --- │ │ │
│ │ │ ℹ️ 已消耗 450 tokens,剩余预算 2550 tokens │ │ │
│ │ │ │ │ │
│ │ └─────────────────────────────────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘
五、可视化管理
sql
┌─────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Visualization & Management (可视化与管理) │
├─────────────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 1. CLI Tools (命令行工具) │ │
│ │ │ │
│ │ $ cursor-rag status # 查看全局状态 │ │
│ │ $ cursor-rag status --project=./ # 查看项目状态 │ │
│ │ $ cursor-rag inspect vue3-expert # 查看专家知识 │ │
│ │ $ cursor-rag search "组件创建" # 搜索知识库 │ │
│ │ $ cursor-rag index --rebuild # 重建索引 │ │
│ │ $ cursor-rag export vue3-expert # 导出专家 │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 2. MCP Tools (Cursor 内查询) │ │
│ │ │ │
│ │ 用户: "查看当前知识库状态" │ │
│ │ │ │
│ │ AI 调用: rag_status({ projectPath: "E:/vite7-vue-project" }) │ │
│ │ │ │
│ │ 返回: │ │
│ │ ┌─────────────────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ 📊 RAG 知识库状态 │ │ │
│ │ │ │ │ │
│ │ │ 项目: vite7-vue-project │ │ │
│ │ │ 专家: 9 个 | 知识块: 150 个 | 总 Tokens: 22.0K │ │ │
│ │ │ │ │ │
│ │ │ 专家详情: │ │ │
│ │ │ ├─ vue3-expert [25 块] SKILL:12 LOCAL:8 REINFORCE:5 │ │ │
│ │ │ ├─ react-expert [18 块] SKILL:10 LOCAL:6 REINFORCE:2 │ │ │
│ │ │ └─ arch-expert [28 块] SKILL:15 LOCAL:10 REINFORCE:3 │ │ │
│ │ │ │ │ │
│ │ │ Session: 活跃 (30分钟前激活 vue3-expert) │ │ │
│ │ │ 缓存: 命中率 80% | 节省 8000 tokens │ │ │
│ │ └─────────────────────────────────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 3. Web Dashboard (可视化界面) │ │
│ │ │ │
│ │ $ cursor-rag dashboard # 启动 Dashboard │ │
│ │ 🌐 Dashboard 启动于 http://localhost:3721 │ │
│ │ │ │
│ │ ┌─────────────────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ ┌───────────────────────────────────────────────────────────────────────────┐ │ │ │
│ │ │ │ 🧠 Expert RAG Dashboard [vite7-vue-project] │ │ │ │
│ │ │ ├───────────────────────────────────────────────────────────────────────────┤ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ │
│ │ │ │ │ Projects │ │ Experts │ │ Chunks │ │ Tokens │ │ │ │ │
│ │ │ │ │ 3 │ │ 17 │ │ 275 │ │ 40.7K │ │ │ │ │
│ │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ ┌────────────────────────────────────────────────────────────────────┐ │ │ │ │
│ │ │ │ │ 📈 知识分布 │ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ SKILL ████████████████░░░░░░ 48% │ │ │ │ │
│ │ │ │ │ LOCAL ████████████░░░░░░░░░░ 32% │ │ │ │ │
│ │ │ │ │ REINFORCE ████████░░░░░░░░░░░░░░ 20% │ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ └────────────────────────────────────────────────────────────────────┘ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ ┌────────────────────────────────────────────────────────────────────┐ │ │ │ │
│ │ │ │ │ 🔍 知识搜索 [ 搜索 ] │ │ │ │ │
│ │ │ │ │ ┌──────────────────────────────────────────────────────────────┐ │ │ │ │ │
│ │ │ │ │ │ 表单验证 │ │ │ │ │ │
│ │ │ │ │ └──────────────────────────────────────────────────────────────┘ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ Results: 5 matches │ │ │ │ │
│ │ │ │ │ ┌────────────────────────────────────────────────────────────┐ │ │ │ │ │
│ │ │ │ │ │ 1. [LOCAL] 项目表单规范 (0.95) │ │ │ │ │ │
│ │ │ │ │ │ 2. [REINFORCE] 表单重置问题 (0.88) │ │ │ │ │ │
│ │ │ │ │ │ 3. [SKILL] Vue3 表单组件 (0.82) │ │ │ │ │ │
│ │ │ │ │ └────────────────────────────────────────────────────────────┘ │ │ │ │ │
│ │ │ │ └────────────────────────────────────────────────────────────────────┘ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ └───────────────────────────────────────────────────────────────────────────┘ │ │ │
│ │ └─────────────────────────────────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘
六、数据流图
arduino
┌─────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Data Flow (数据流) │
├─────────────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ SKILL.md │ │ LOCAL.md │ │
│ │ 基础技能 │ │ 项目本地化 │ │
│ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │
│ │ ┌─────────────┐ │ │
│ │ │ HISTORY.md │ │ │
│ │ │ 强化记录 │ │ │
│ │ └──────┬──────┘ │ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ Document Chunker │ │
│ │ 文档分块器 │ │
│ │ │ │
│ │ 输入: Markdown 文件 │ │
│ │ 输出: 知识块 (chunk_size=500, overlap=50) │ │
│ │ │ │
│ └────────────────────────────────────────┬────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ Transformers.js Embedding │ │
│ │ 向量化引擎 │ │
│ │ │ │
│ │ 模型: all-MiniLM-L6-v2 │ │
│ │ 维度: 384 │ │
│ │ 输出: [0.12, -0.34, 0.56, ...] │ │
│ │ │ │
│ └────────────────────────────────────────┬────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ Orama Database │ │
│ │ 向量数据库 │ │
│ │ │ │
│ │ ┌─────────────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ index.json │ │ │
│ │ │ ───────────────────────────────────────────────────────────────── │ │ │
│ │ │ { │ │ │
│ │ │ "chunks": [ │ │ │
│ │ │ { │ │ │
│ │ │ "id": "vue3-expert:skill:001", │ │ │
│ │ │ "expertId": "vue3-expert", │ │ │
│ │ │ "docType": "skill", │ │ │
│ │ │ "priority": 60, │ │ │
│ │ │ "content": "Vue3 组件应使用 Composition API...", │ │ │
│ │ │ "embedding": [0.12, -0.34, 0.56, ...] │ │ │
│ │ │ }, │ │ │
│ │ │ ... │ │ │
│ │ │ ] │ │ │
│ │ │ } │ │ │
│ │ └─────────────────────────────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌─────────────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ metadata.json │ │ │
│ │ │ ───────────────────────────────────────────────────────────────── │ │ │
│ │ │ { │ │ │
│ │ │ "projectName": "vite7-vue-project", │ │ │
│ │ │ "experts": { │ │ │
│ │ │ "vue3-expert": { "chunks": 25, "tokens": 3500, ... } │ │ │
│ │ │ }, │ │ │
│ │ │ "stats": { "totalChunks": 150, "totalTokens": 22000 } │ │ │
│ │ │ } │ │ │
│ │ └─────────────────────────────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └────────────────────────────────────────┬────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ workflow-state.json │ │
│ │ 工作流状态 │ │
│ │ │ │
│ │ { │ │
│ │ "meta": { ... }, │ │
│ │ "state": { "current": "EXECUTION", ... }, │ │
│ │ "rag": { │ │
│ │ "session": { "id": "...", "lastActiveAt": "..." }, │ │
│ │ "activeExpert": { "id": "vue3-expert", "contextLoaded": true }, │ │
│ │ "contextCache": { ... }, │ │
│ │ "stats": { "cacheHits": 12, "tokensSaved": 8000 } │ │
│ │ } │ │
│ │ } │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘
七、实施计划(更新版)
ini
┌─────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Implementation Plan (实施计划) │
├─────────────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ Phase 1: 基础设施 (3天) │
│ ├─ 1.1 Orama 向量数据库集成 [2天] │
│ └─ 1.2 Transformers.js Embedding 集成 [1天] │
│ │
│ Phase 2: 核心功能 (4天) │
│ ├─ 2.1 Document Chunker 文档分块器 [1天] │
│ ├─ 2.2 Session Manager 会话管理器 [1天] │
│ ├─ 2.3 Retrieval Chain 检索链 [1天] │
│ └─ 2.4 Context Budget Manager 上下文预算 [1天] │
│ │
│ Phase 3: MCP 集成 (3天) │
│ ├─ 3.1 扩展 workflow_activate (内置 RAG) [1天] │
│ ├─ 3.2 新增 rag_status / rag_inspect 工具 [1天] │
│ └─ 3.3 扩展 expert_reinforce (自动索引) [1天] │
│ │
│ Phase 4: 初始化与索引 (2天) │
│ ├─ 4.1 冷启动处理 [1天] │
│ └─ 4.2 增量索引机制 [1天] │
│ │
│ Phase 5: 可视化 (3天) │
│ ├─ 5.1 metadata.json 自动生成 [0.5天] │
│ ├─ 5.2 CLI 工具 (cursor-rag status/inspect) [1天] │
│ └─ 5.3 Web Dashboard 基础版 [1.5天] │
│ │
│ Phase 6: 测试与优化 (2天) │
│ ├─ 6.1 集成测试 [1天] │
│ └─ 6.2 性能优化 [1天] │
│ │
│ ─────────────────────────────────────────────────────────────────────────── │
│ 总计: 17 个工作日 │
│ │
│ 里程碑: │
│ ├─ M1 (Phase 1-2): 核心 RAG 引擎可用 [7天] │
│ ├─ M2 (Phase 3-4): MCP 集成完成,可在 Cursor 中使用 [12天] │
│ └─ M3 (Phase 5-6): 可视化和优化完成 [17天] │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘
八、总结
本架构设计了一个完整的 Expert RAG Workflow System,包含:
| 模块 | 功能 | 技术选型 |
|---|---|---|
| 存储层 | 向量存储 + 持久化 | Orama + JSON |
| Embedding 层 | 文本向量化 | Transformers.js |
| 核心层 | 专家管理 + RAG 检索 + Session 管理 | TypeScript |
| MCP 层 | Cursor 集成 | MCP SDK |
| 可视化层 | CLI + Web Dashboard | Node.js + Vue3 |
核心特点:
- ✅ 零原生依赖 - 跨平台无编译问题
- ✅ 上下文最优 - Session 缓存 + 增量检索
- ✅ 知识优先级 - LOCAL > REINFORCE > SKILL
- ✅ Fallback 机制 - RAG → 关键词 → 文件 → 空
- ✅ 可视化管理 - CLI + Web Dashboard