# 系统架构概览

## 设计原则

ByClaw 架构遵循以下设计原则：

1. **微服务化** - 各模块独立部署、独立扩展
2. **前后端分离** - 清晰的 API 边界，支持多端接入
3. **可扩展性** - 插件化设计，易于添加新功能
4. **高可用** - 无状态服务设计，支持水平扩展
5. **云原生** - 容器化部署，支持 Kubernetes

## 系统分层

### 1. 用户界面层 (Presentation Layer)

负责与用户交互，提供多种接入方式：

- **Web 应用** - 主要入口，基于 React
- **移动端** - 响应式设计适配移动浏览器
- **管理后台** - 系统配置和运营管理

### 2. 网关层 (Gateway Layer)

统一的流量入口：

- **Nginx** - 反向代理、静态资源服务、负载均衡
- **API Gateway** - 路由、限流、认证（规划中）

### 3. 业务服务层 (Business Layer)

核心业务能力：

| 服务 | 说明 |
|------|------|
| 对话服务 | AI 对话管理、多轮会话、流式响应 |
| 知识服务 | 知识库管理、文档检索、RAG |
| 数字员工 | AI Agent 配置、编排、执行 |
| 文件服务 | 文件上传、存储、预览 |
| 用户服务 | 用户管理、权限控制 |

### 4. 核心服务层 (Core Layer)

提供基础设施能力：

- **认证授权** - JWT、RBAC 权限模型
- **配置管理** - 动态配置、环境管理
- **日志审计** - 操作日志、安全审计
- **监控告警** - 指标采集、健康检查

### 5. 数据存储层 (Data Layer)

| 存储 | 用途 |
|------|------|
| OpenGauss | 关系型数据（用户、配置、会话） |
| Redis | 缓存、会话、消息队列 |
| MinIO | 对象存储（文件、图片） |
| Elasticsearch | 全文检索（规划中） |

## 通信机制

### 同步通信

- **REST API** - 主要的同步调用方式
- **WebSocket** - 实时对话流式响应
- **gRPC** - 内部服务间高效通信（规划中）

### 异步通信

- **Redis Pub/Sub** - 轻量级消息通知（如数字员工变更事件）
- **Kafka** - 可靠的消息队列

## 安全设计

1. **认证** - JWT Token + Refresh Token
2. **授权** - RBAC 细粒度权限控制
3. **传输安全** - HTTPS/TLS
4. **数据安全** - 敏感字段加密存储
5. **审计** - 完整的操作日志

## 扩展点

系统提供以下扩展机制：

- **插件系统** - byclaw-exe 支持自定义工具
- **模型适配** - 支持接入多种 LLM 提供商
- **主题定制** - 前端支持自定义主题
- **工作流** - 数字员工支持自定义编排

## 部署模式

### 开发环境

```
开发者机器
├── Docker (Redis, OpenGauss, MinIO)
├── byclaw-be (本地启动)
└── byclaw-fe (本地启动)
```

### 生产环境（拆分模式）

```
K8s Cluster / Docker Compose
├── middleware (Redis, OpenGauss, MinIO)
├── byclaw-fe (Nginx + 静态资源)
├── byclaw-be (Spring Boot)
├── byclaw-data (Python)
└── byclaw-qa (Java/Python)
```
