Files
notes/work/移动杭研/AI 项目/图纸-IBS 智能体-v2-项目架构 原生 MCP.md
T
Docker7530 cef89547a6 1773109225
2026-03-10 10:20:27 +08:00

2.6 KiB

---
config:
  layout: elk
---
flowchart TB
 subgraph Layer1["1. 用户侧"]
        UI["对话框"]
  end
 subgraph Layer2["2. 智能体编排层"]
        Router["意图识别与分发<br>(语义路由,小模型判断最好,要快)"]
        Planner["Agent 规划与调度 (ReAct)"]
        LLM["大模型 (LLM)"]
        RAGFlow["现有 RAGFlow<br>(知识库问答)"]
  end
 subgraph Layer3["3. 工具检索引擎 (Tool-RAG) ⭐️核心枢纽"]
        Embedding["Embedding 模型<br>(文本转向量)"]
        VectorDB[("向量数据库<br>存储插件语义<br>(按租户隔离)")]
        RelationalDB@{ label: "关系型数据库<br>1. 接口物理配置<br style=\"--tw-scale-x:\">2. 角色权限表" }
        SchemaBuilder["Schema 组装器<br>(仅组装 Top-K 工具)"]
  end
 subgraph Layer4["4. 拦截与执行层"]
        Interceptor["高危操作拦截<br>(前端卡片审批流)"]
        HttpExecutor["通用 HTTP 执行器<br>"]
        MCPClient["MCP 协议网关<br>(标准化接入)"]
        IBS["IBS / CDN / DNS 系统"]
        MCPServer["MCP Server<br>"]
  end
    UI -- "1. 用户输入" --> Router
    Router -- "2a. 查阅文档" --> RAGFlow
    Router -- "2b. 业务请求/查数据" --> Embedding
    Embedding -- "3. 提取语义向量" --> VectorDB
    VectorDB -- "4. 返回相似度 Top-3 的插件 ID" --> SchemaBuilder
    RelationalDB -. "5. 根据 ID 拉取详细配置URL等" .-> SchemaBuilder
    SchemaBuilder -- "6. 动态注入这 3 个工具说明" --> Planner
    Planner <-- "7. 带 3 个工具进行交互<br>提取并完善参数" --> LLM
    Planner -- "8. 决定调用某工具+参数" --> Interceptor
    Interceptor -- "9a. 放行/审批后走普通接口" --> HttpExecutor
    HttpExecutor -- "10a. 动态发起 REST 请求" --> IBS
    Interceptor -. "9b. 路由至原生 MCP" .-> MCPClient
    MCPClient -. "10b. MCP 协议通信" .-> MCPServer
    Register["admin 录入新插件"] -. "A. 存入运行配置" .-> RelationalDB
    Register -. "B. 向量化插件描述" .-> VectorDB

    Router@{ shape: rect}
    RelationalDB@{ shape: cylinder}
    Register@{ shape: rect}
     RAGFlow:::highlight
     Embedding:::vector
     VectorDB:::vector
     RelationalDB:::plugin
     SchemaBuilder:::vector
     MCPClient:::highlight
     MCPServer:::external
    classDef core fill:#e1f5fe,stroke:#01579b,stroke-width:2px
    classDef plugin fill:#fff3e0,stroke:#e65100,stroke-width:2px
    classDef vector fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px
    classDef highlight fill:#fff9c4,stroke:#fbc02d,stroke-width:2px
    classDef external fill:#f3e5f5,stroke:#8e24aa,stroke-width:1px,stroke-dasharray: 5 5