forked from xiaohei/taiji-AI-PAD
test: 添加 MCP Server 单元测试
新增内容: - tests/test_function_registry.py: 函数注册表单元测试 - tests/test_sandbox_executor.py: 沙箱执行器单元测试 - tests/test_mcp_function_tool.py: MCP函数工具调用测试 - tests/conftest.py: pytest 配置 - tests/README.md: 测试文档 - pytest.ini: pytest 配置文件 - run_tests.sh: 测试运行脚本 测试覆盖: - 16个内置函数的完整测试 - 函数注册和查询功能 - 沙箱执行器(超时、异常处理) - MCP协议函数工具调用集成测试 版本: v1.2.1
This commit is contained in:
@@ -0,0 +1,487 @@
|
||||
# taiji-AI-PAD 系统运作流程图
|
||||
|
||||
**版本**: v1.2.1
|
||||
**最后更新**: 2025年12月22日
|
||||
|
||||
## 🔄 整体系统架构流程
|
||||
|
||||
### 核心数据流架构
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph "用户层"
|
||||
U1[开发者/企业用户]
|
||||
U2[IDE: Cursor/VS Code]
|
||||
U3[AI客户端: Claude Desktop]
|
||||
U4[框架: LangChain/CrewAI/AutoGen]
|
||||
end
|
||||
|
||||
subgraph "第四平面:本地编排层"
|
||||
L1[MCP Client]
|
||||
L2[Framework Adapters]
|
||||
L3[Local Orchestrator]
|
||||
end
|
||||
|
||||
subgraph "第三平面:Agent协议层"
|
||||
A1[MCP Server]
|
||||
A2[A2A Communication]
|
||||
A3[Agent Registry]
|
||||
A4[Agent Card System]
|
||||
end
|
||||
|
||||
subgraph "第二平面:模型治理层"
|
||||
M1[LiteLLM Gateway]
|
||||
M2[Model Router]
|
||||
M3[Context Manager]
|
||||
M4[Cost Monitor]
|
||||
end
|
||||
|
||||
subgraph "第一平面:数据接入层"
|
||||
D1[RapidAPI Hub]
|
||||
D2[APILLAMA Processor]
|
||||
D3[Tool Generator]
|
||||
D4[Private API Adapter]
|
||||
end
|
||||
|
||||
subgraph "第五平面:计费治理层"
|
||||
B1[EU Billing Engine]
|
||||
B2[Security Isolation]
|
||||
B3[Multi-tenant Manager]
|
||||
B4[Audit System]
|
||||
end
|
||||
|
||||
subgraph "外部资源"
|
||||
E1[RapidAPI 16000+ APIs]
|
||||
E2[OpenAI/Anthropic/等]
|
||||
E3[Private APIs]
|
||||
E4[Database/Storage]
|
||||
end
|
||||
|
||||
%% 数据流连接
|
||||
U1 --> L3
|
||||
U2 --> L1
|
||||
U3 --> L1
|
||||
U4 --> L2
|
||||
|
||||
L1 --> A1
|
||||
L2 --> A1
|
||||
L3 --> A2
|
||||
|
||||
A1 --> M1
|
||||
A2 --> A3
|
||||
A3 --> M1
|
||||
|
||||
M1 --> M2
|
||||
M2 --> E2
|
||||
M3 --> M4
|
||||
|
||||
M1 --> D3
|
||||
D1 --> D2
|
||||
D2 --> D3
|
||||
D4 --> D3
|
||||
E1 --> D1
|
||||
E3 --> D4
|
||||
|
||||
A1 --> B1
|
||||
B1 --> B2
|
||||
B2 --> B3
|
||||
B3 --> B4
|
||||
B4 --> E4
|
||||
```
|
||||
|
||||
## 🚀 Agent完整生命周期流程
|
||||
|
||||
### 从创建到执行的端到端流程
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant Dev as 开发者
|
||||
participant Reg as Agent注册中心
|
||||
participant MCP as MCP Server
|
||||
participant Gateway as LiteLLM网关
|
||||
participant Tool as 工具层
|
||||
participant EU as EU计费引擎
|
||||
participant Sec as 安全隔离
|
||||
|
||||
%% Agent创建阶段
|
||||
Dev->>Reg: 1. 提交Agent定义(Role+Goal+Tools)
|
||||
Reg->>Reg: 2. 验证Agent配置
|
||||
Reg->>MCP: 3. 生成MCP Server实例
|
||||
MCP->>Tool: 4. 绑定授权工具集
|
||||
Reg->>EU: 5. 创建计费账户
|
||||
|
||||
%% Agent部署阶段
|
||||
MCP->>Sec: 6. 申请安全容器
|
||||
Sec->>Sec: 7. 创建Firecracker VM
|
||||
Sec->>MCP: 8. 返回容器端点
|
||||
MCP->>Reg: 9. 注册Agent服务地址
|
||||
|
||||
%% Agent发现与调用阶段
|
||||
Dev->>Reg: 10. 查询可用Agent
|
||||
Reg->>Dev: 11. 返回Agent Card列表
|
||||
Dev->>MCP: 12. 通过MCP协议调用Agent
|
||||
|
||||
%% 执行阶段
|
||||
MCP->>EU: 13. 启动计费计时器
|
||||
MCP->>Gateway: 14. 请求模型推理
|
||||
Gateway->>Gateway: 15. 路由到最佳模型
|
||||
Gateway->>MCP: 16. 返回推理结果
|
||||
MCP->>Tool: 17. 调用外部API工具
|
||||
Tool->>Tool: 18. 执行API调用
|
||||
Tool->>MCP: 19. 返回工具执行结果
|
||||
MCP->>EU: 20. 停止计费,计算EU消耗
|
||||
MCP->>Dev: 21. 返回最终结果
|
||||
```
|
||||
|
||||
## 💡 用户使用流程详解
|
||||
|
||||
### 三种典型使用场景
|
||||
|
||||
#### 场景1: IDE集成开发流程
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[开发者打开Cursor] --> B[配置MCP服务器端点]
|
||||
B --> C[Cursor自动发现可用Agent]
|
||||
C --> D[在代码中@调用Agent]
|
||||
D --> E[Agent执行任务]
|
||||
E --> F[返回结果到IDE]
|
||||
F --> G[开发者继续编码]
|
||||
|
||||
subgraph "后台处理"
|
||||
H[MCP协议通信]
|
||||
I[模型推理]
|
||||
J[工具调用]
|
||||
K[EU计费]
|
||||
end
|
||||
|
||||
E --> H
|
||||
H --> I
|
||||
I --> J
|
||||
J --> K
|
||||
```
|
||||
|
||||
#### 场景2: 企业级Agent编排流程
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[业务需求分析] --> B[设计Multi-Agent架构]
|
||||
B --> C[选择平台Agent]
|
||||
C --> D[配置A2A通信]
|
||||
D --> E[部署到生产环境]
|
||||
E --> F[监控执行状态]
|
||||
F --> G[成本分析优化]
|
||||
|
||||
subgraph "技术实现"
|
||||
H[Agent Card发现]
|
||||
I[任务分发]
|
||||
J[结果聚合]
|
||||
K[异常处理]
|
||||
end
|
||||
|
||||
C --> H
|
||||
D --> I
|
||||
E --> J
|
||||
F --> K
|
||||
```
|
||||
|
||||
#### 场景3: 框架集成开发流程
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[选择框架: LangChain/CrewAI] --> B[安装MCP适配器]
|
||||
B --> C[配置平台Agent端点]
|
||||
C --> D[编写业务逻辑]
|
||||
D --> E[本地测试调试]
|
||||
E --> F[部署到生产环境]
|
||||
|
||||
subgraph "适配层处理"
|
||||
G[MultiServerMCPClient]
|
||||
H[自动工具注入]
|
||||
I[状态管理]
|
||||
J[错误处理]
|
||||
end
|
||||
|
||||
B --> G
|
||||
C --> H
|
||||
D --> I
|
||||
E --> J
|
||||
```
|
||||
|
||||
## 🔧 数据接入与工具化流程
|
||||
|
||||
### API到Agent工具的转换过程
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[外部API] --> B{API类型判断}
|
||||
B -->|RapidAPI| C[统一Key代理]
|
||||
B -->|OpenAPI/Swagger| D[FastMCP解析]
|
||||
B -->|私有API| E[自定义适配器]
|
||||
|
||||
C --> F[APILLAMA处理]
|
||||
D --> F
|
||||
E --> F
|
||||
|
||||
F --> G[结构化提取]
|
||||
G --> H[Pydantic Schema生成]
|
||||
H --> I[语义增强]
|
||||
I --> J[MCP Tool注册]
|
||||
J --> K[Agent可用工具]
|
||||
|
||||
subgraph "质量保障"
|
||||
L[参数验证]
|
||||
M[错误处理]
|
||||
N[性能监控]
|
||||
O[成本跟踪]
|
||||
end
|
||||
|
||||
J --> L
|
||||
L --> M
|
||||
M --> N
|
||||
N --> O
|
||||
```
|
||||
|
||||
## 💰 EU计费系统运作流程
|
||||
|
||||
### 执行单元计费的完整链路
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant User as 用户
|
||||
participant Agent as Agent实例
|
||||
participant Monitor as 资源监控
|
||||
participant NATS as NATS消息队列
|
||||
participant Billing as 计费引擎
|
||||
participant Account as 账户系统
|
||||
participant Dashboard as 实时仪表盘
|
||||
|
||||
User->>Agent: 1. 提交任务
|
||||
Agent->>Monitor: 2. 申请资源配额
|
||||
Monitor->>Account: 3. 检查账户余额
|
||||
Account->>Agent: 4. 确认可用额度
|
||||
|
||||
Agent->>NATS: 5. 发送任务开始事件
|
||||
NATS->>Billing: 6. 触发计费开始
|
||||
Billing->>Monitor: 7. 开始资源监控
|
||||
|
||||
loop 任务执行期间
|
||||
Monitor->>Monitor: 8. 记录CPU/内存/网络使用
|
||||
Monitor->>NATS: 9. 周期性发送使用数据
|
||||
NATS->>Billing: 10. 更新实时成本
|
||||
Billing->>Dashboard: 11. 更新仪表盘显示
|
||||
end
|
||||
|
||||
Agent->>NATS: 12. 发送任务完成事件
|
||||
NATS->>Billing: 13. 停止计费计时
|
||||
Billing->>Billing: 14. 计算最终EU消耗
|
||||
Billing->>Account: 15. 扣除费用
|
||||
Account->>Dashboard: 16. 更新账户余额
|
||||
Dashboard->>User: 17. 显示任务成本明细
|
||||
```
|
||||
|
||||
## 🛡️ 安全隔离与多租户流程
|
||||
|
||||
### 租户隔离的三层防护
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[租户请求] --> B[身份验证]
|
||||
B --> C{Pomerium网关}
|
||||
C -->|认证失败| D[拒绝访问]
|
||||
C -->|认证成功| E[权限检查]
|
||||
|
||||
E --> F{RBAC/ABAC}
|
||||
F -->|无权限| D
|
||||
F -->|有权限| G[计算资源分配]
|
||||
|
||||
G --> H[Firecracker VM创建]
|
||||
H --> I[网络VPC隔离]
|
||||
I --> J[数据RLS过滤]
|
||||
J --> K[执行环境准备]
|
||||
|
||||
K --> L[Agent任务执行]
|
||||
L --> M[Sidecar监控]
|
||||
M --> N[审计日志记录]
|
||||
N --> O[资源清理]
|
||||
|
||||
subgraph "三层隔离"
|
||||
P[计算隔离: MicroVM]
|
||||
Q[网络隔离: VPC]
|
||||
R[数据隔离: RLS+加密]
|
||||
end
|
||||
|
||||
H --> P
|
||||
I --> Q
|
||||
J --> R
|
||||
```
|
||||
|
||||
## 🔄 故障恢复与高可用流程
|
||||
|
||||
### 系统自愈机制
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[系统运行] --> B[健康检查]
|
||||
B --> C{状态正常?}
|
||||
C -->|是| A
|
||||
C -->|否| D[故障检测]
|
||||
|
||||
D --> E{故障类型}
|
||||
E -->|模型服务| F[模型切换]
|
||||
E -->|Agent异常| G[容器重启]
|
||||
E -->|API失效| H[降级服务]
|
||||
E -->|网络异常| I[重试机制]
|
||||
|
||||
F --> J[LiteLLM路由切换]
|
||||
G --> K[保存执行状态]
|
||||
H --> L[启用备用API]
|
||||
I --> M[指数退避重试]
|
||||
|
||||
J --> N[服务恢复]
|
||||
K --> N
|
||||
L --> N
|
||||
M --> N
|
||||
|
||||
N --> O[通知运维]
|
||||
O --> P[更新监控]
|
||||
P --> A
|
||||
```
|
||||
|
||||
## 📊 监控与可观测性流程
|
||||
|
||||
### 全链路追踪与性能监控
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
A[用户请求] --> B[Trace开始]
|
||||
B --> C[Agent执行]
|
||||
C --> D[模型调用]
|
||||
D --> E[工具执行]
|
||||
E --> F[结果返回]
|
||||
|
||||
subgraph "监控采集"
|
||||
G[Datadog Agent]
|
||||
H[Prometheus Metrics]
|
||||
I[LangSmith Tracing]
|
||||
J[自定义Events]
|
||||
end
|
||||
|
||||
subgraph "数据处理"
|
||||
K[指标聚合]
|
||||
L[异常检测]
|
||||
M[性能分析]
|
||||
N[成本归因]
|
||||
end
|
||||
|
||||
subgraph "可视化展示"
|
||||
O[Grafana Dashboard]
|
||||
P[告警系统]
|
||||
Q[成本报告]
|
||||
R[性能优化建议]
|
||||
end
|
||||
|
||||
C --> G
|
||||
D --> H
|
||||
E --> I
|
||||
F --> J
|
||||
|
||||
G --> K
|
||||
H --> L
|
||||
I --> M
|
||||
J --> N
|
||||
|
||||
K --> O
|
||||
L --> P
|
||||
M --> Q
|
||||
N --> R
|
||||
```
|
||||
|
||||
## 🚀 扩展性与未来演进
|
||||
|
||||
### 平台演进路径
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[当前版本: 基础平台] --> B[v2.0: 智能调度]
|
||||
B --> C[v3.0: 自治优化]
|
||||
C --> D[v4.0: 生态繁荣]
|
||||
|
||||
subgraph "v2.0 特性"
|
||||
E[元调度器]
|
||||
F[成本优化AI]
|
||||
G[性能预测]
|
||||
end
|
||||
|
||||
subgraph "v3.0 特性"
|
||||
H[Agent信誉系统]
|
||||
I[自动化运维]
|
||||
J[跨云调度]
|
||||
end
|
||||
|
||||
subgraph "v4.0 特性"
|
||||
K[Agent市场]
|
||||
L[开发者生态]
|
||||
M[行业标准制定]
|
||||
end
|
||||
|
||||
B --> E
|
||||
E --> F
|
||||
F --> G
|
||||
|
||||
C --> H
|
||||
H --> I
|
||||
I --> J
|
||||
|
||||
D --> K
|
||||
K --> L
|
||||
L --> M
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎯 关键流程说明
|
||||
|
||||
### 1. 冷启动优化流程
|
||||
- **Agent预热**: 常用Agent保持热启动状态
|
||||
- **资源池管理**: 预分配计算资源,减少启动时间
|
||||
- **缓存策略**: 模型响应和工具结果智能缓存
|
||||
|
||||
### 2. 成本控制流程
|
||||
- **预算管理**: 设置租户级别的支出上限
|
||||
- **实时熔断**: 超出预算自动暂停服务
|
||||
- **成本优化建议**: AI驱动的资源配置优化
|
||||
|
||||
### 3. 安全审计流程
|
||||
- **行为基线**: 建立正常行为模式
|
||||
- **异常检测**: 实时监控异常访问模式
|
||||
- **自动响应**: 可疑行为自动隔离和告警
|
||||
|
||||
### 4. 开发者体验优化
|
||||
- **一键部署**: 简化Agent上线流程
|
||||
- **可视化调试**: 提供Agent执行轨迹可视化
|
||||
- **性能分析**: 详细的执行性能报告
|
||||
|
||||
---
|
||||
|
||||
**创建时间**: 2025年12月20日
|
||||
**版本**: v1.2.1
|
||||
**最后更新**: 2025年12月22日
|
||||
**说明**: 本流程图展示了taiji-AI-PAD平台的核心运作机制,包含完整的数据流、控制流和业务流程。
|
||||
|
||||
## 📊 当前系统状态
|
||||
|
||||
### 已实现的功能模块
|
||||
|
||||
- ✅ **数据接入层**: RapidAPI集成、OpenAPI解析、APILLAMA处理
|
||||
- ✅ **模型治理层**: LiteLLM Gateway、多模型支持
|
||||
- ✅ **Agent协议层**: MCP Server、函数工具调用、Agent注册
|
||||
- ✅ **监控层**: Prometheus Metrics、健康检查
|
||||
- ✅ **工具层**: 工具生成、工具管理、工具执行
|
||||
|
||||
### 最新更新 (v1.2.1)
|
||||
|
||||
- ✅ MCP Server 函数工具调用功能已实现
|
||||
- ✅ 16个内置安全函数(数学、字符串、JSON、哈希等)
|
||||
- ✅ 沙箱执行器(超时控制、参数验证、资源限制)
|
||||
- ✅ 完整的错误处理机制
|
||||
Reference in New Issue
Block a user