架构概述
本文档介绍 OpenHuman 的整体系统架构。
系统架构图
┌─────────────────────────────────────────────────────────────┐
│ 客户端层 │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Web │ │ Mobile │ │ CLI │ │ API │ │
│ │ 客户端 │ │ 客户端 │ │ 工具 │ │ 集成 │ │
│ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │
└───────┼────────────┼────────────┼────────────┼──────────────┘
│ │ │ │
└────────────┴─────┬──────┴────────────┘
│
┌───────▼───────┐
│ API 网关 │
│ (负载均衡) │
└───────┬───────┘
│
┌───────────────────┼───────────────────┐
│ │ │
┌───────▼───────┐ ┌──────▼──────┐ ┌───────▼───────┐
│ Agent Engine │ │ Agent Engine │ │ Agent Engine │
│ 集群 1 │ │ 集群 2 │ │ 集群 N │
└───────┬───────┘ └──────┬──────┘ └───────┬───────┘
│ │ │
└───────────────────┴───────────────────┘
│
┌───────▼───────┐
│ 数据存储层 │
│ (向量数据库) │
└───────────────┘
核心组件
1. API 网关
API 网关是系统的入口,负责:
- 请求路由和负载均衡
- 身份认证和授权
- 限流和熔断
- 请求日志和监控
2. Agent Engine
Agent Engine 是核心执行引擎,负责:
- Agent 的创建和管理
- 任务调度和执行
- 工具调用管理
- 上下文管理
3. 数据存储层
数据存储层包括:
- 向量数据库:存储 Embeddings,支持语义搜索
- 关系数据库:存储结构化数据
- 缓存:提高响应速度
部署架构
单机部署
适用于开发和测试环境:
- 所有组件运行在单一服务器
- 使用 SQLite 作为数据库
- 适合小规模使用
集群部署
适用于生产环境:
- 多节点 Agent Engine 集群
- PostgreSQL + Redis 集群
- Kubernetes 编排
- 自动扩缩容
技术栈
| 组件 | 技术选型 |
|---|---|
| API 网关 | Nginx / Kong |
| Agent Engine | Node.js / Python |
| 向量数据库 | Milvus / Pinecone |
| 关系数据库 | PostgreSQL |
| 缓存 | Redis |
| 消息队列 | RabbitMQ / Kafka |