61 lines
2.6 KiB
Markdown
61 lines
2.6 KiB
Markdown
```
|
|
---
|
|
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
|
|
```
|