Files
aiagent/docs/architecture.md
renjianbo ab1589921a fix: 修复35个安全与功能缺陷,补全知识进化/数字孪生/行为采集模块
## 安全修复 (12项)
- Webhook接口添加全局Token认证,过滤敏感请求头
- 修复JWT Base64 padding公式,防止签名验证绕过
- 数据库密码/飞书Token从源码移除,改为环境变量
- 工作流引擎添加路径遍历防护 (_resolve_safe_path)
- eval()添加模板长度上限检查
- 审批API添加认证依赖
- 前端v-html增强XSS转义,console.log仅开发模式输出
- 500错误不再暴露内部异常详情

## Agent运行时修复 (7项)
- 删除_inject_knowledge_context中未定义db变量的finally块
- 工具执行添加try/except保护,异常不崩溃Agent
- LLM重试计入budget计数器
- self_review异常时passed=False
- max_iterations截断标记success=False
- 工具参数JSON解析失败时记录警告日志
- run()开始时重置_llm_invocations计数器

## 配置与基础设施
- DEBUG默认False,SQL_ECHO独立配置项
- init_db()补全13个缺失模型导入
- 新增WEBHOOK_AUTH_TOKEN/SQL_ECHO配置项
- 新增.env.example模板文件

## 前端修复 (12项)
- 登录改用URLSearchParams替代FormData
- 401拦截器通过Pinia store统一清理状态
- SSE流超时从60s延长至300s
- final/error事件时清除streamTimeout
- localStorage聊天记录添加24h TTL
- safeParseArgCount替代模板中裸JSON.parse
- fetchUser 401时同时清除user对象

## 新增模块
- 知识进化: knowledge_extractor/retriever/tasks
- 数字孪生: shadow_executor/comparison模型
- 行为采集: behavior_middleware/collector/fingerprint_engine
- 代码审查: code_review_agent/document_review_agent
- 反馈学习: feedback_learner
- 瓶颈检测/优化引擎/成本估算/需求估算
- 速率限制器 (rate_limiter)
- Alembic迁移 015-020

## 文档
- 商业化落地计划
- 8篇docs文档 (架构/API/部署/开发/贡献等)
- Docker Compose生产配置

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-10 19:50:20 +08:00

162 lines
8.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🏛️ 架构设计文档
> **Architecture Design Document**
---
## 一、系统概述
天工智能体平台是一个企业级 AI 智能体Agent平台提供智能对话、知识库管理、智能体编排等核心能力采用**前后端分离** + **异步任务队列** 的架构设计。
---
## 二、技术选型
| 层级 | 技术 | 版本 | 选型理由 |
|:----|:-----|:-----|:---------|
| **前端框架** | Vue 3 (Composition API) | 3.4+ | 轻量、响应式、TypeScript 友好 |
| **前端构建** | Vite | 5+ | 极速 HMR开发体验优异 |
| **状态管理** | Pinia | 2+ | Vue 3 官方推荐TypeScript 支持完善 |
| **路由** | Vue Router | 4+ | SPA 路由,支持导航守卫 |
| **HTTP 客户端** | Axios | 1+ | 请求/响应拦截,统一错误处理 |
| **后端框架** | FastAPI | 0.110+ | 高性能异步框架,自动生成 OpenAPI 文档 |
| **ORM** | SQLAlchemy | 2.0+ | 成熟的 Python ORM异步支持 |
| **数据验证** | Pydantic | 2+ | 类型安全,与 FastAPI 深度集成 |
| **数据库迁移** | Alembic | 1.13+ | 版本化管理数据库变更 |
| **数据库** | MySQL (腾讯云) | 8.0+ | 稳定可靠的关系型数据库 |
| **缓存** | Redis | 7+ | 高性能缓存 + 消息队列 |
| **任务队列** | Celery | 5.3+ | 分布式异步任务处理 |
| **认证** | JWT | — | 无状态认证,支持 Token 刷新 |
| **容器化** | Docker + Docker Compose | 最新 | 简化部署,环境一致 |
---
## 三、架构分层
```
┌─────────────────────────────────────────────────────────────┐
│ 客户端层 (Client Layer) │
│ 浏览器 (Chrome/Edge) │ 移动端 │ 第三方 API 调用 │
└───────────────────────┬─────────────────────────────────────┘
│ HTTPS
┌───────────────────────▼─────────────────────────────────────┐
│ 接入层 (Gateway Layer) │
│ Nginx 反向代理 │ SSL 终止 │ 静态资源服务 │ 端口 8038/8037 │
└───────────────────────┬─────────────────────────────────────┘
┌───────────────────────▼─────────────────────────────────────┐
│ 前端应用层 (Frontend Layer) │
│ Vue 3 SPA │ Pinia Store │ Vue Router │ Axios Client │
│ ┌─────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
│ │ Views │ │Components│ │ Stores │ │ Utils │ │
│ │ 页面组件 │ │ 公共组件 │ │ 状态管理 │ │ 工具/请求封装│ │
│ └─────────┘ └──────────┘ └──────────┘ └──────────────┘ │
└───────────────────────┬─────────────────────────────────────┘
│ HTTP/JSON
┌───────────────────────▼─────────────────────────────────────┐
│ 后端服务层 (Backend Layer) │
│ FastAPI │ 中间件 │ 路由 │ 依赖注入 │
│ ┌──────────────┐ ┌──────────────────┐ │
│ │ API 路由层 │ │ 认证/授权中间件 │ │
│ │ (api/v1/*) │ │ (JWT、CORS) │ │
│ ├──────────────┤ ├──────────────────┤ │
│ │ Service 层 │ │ 任务调度 │ │
│ │ (业务逻辑) │ │ (Celery 任务) │ │
│ ├──────────────┤ ├──────────────────┤ │
│ │ Models 层 │ │ Schemas 层 │ │
│ │ (ORM 定义) │ │ (数据验证) │ │
│ └──────────────┘ └──────────────────┘ │
└──────┬────────────────────────────┬─────────────────────────┘
│ │
▼ ▼
┌──────────────┐ ┌──────────────────┐
│ MySQL 8.0 │ │ Redis 7 │
│ (腾讯云) │ │ 缓存 / 任务队列 │
│ 持久化存储 │ │ 会话 / 锁 │
└──────────────┘ └──────────────────┘
┌──────────────────┐
│ Celery Worker │
│ 异步任务处理 │
│ 文件处理 / 通知 │
└──────────────────┘
```
---
## 四、核心业务模块
### 1. 用户模块
- **注册/登录**:邮箱 + 密码JWT Token 发放
- **Token 刷新**Access Token (短期) + Refresh Token (长期)
- **个人中心**:信息查看与修改
### 2. 智能体模块
- 智能体的创建、配置、发布、下架
- 支持配置 LLM 参数、提示词、工具调用
- 知识库关联
### 3. 知识库模块
- 文档上传与解析PDF、TXT、Markdown
- 向量化存储(对接嵌入模型)
- 语义检索
### 4. 对话模块
- 用户与智能体的实时对话
- 上下文管理
- 流式输出SSE
---
## 五、数据流示例(对话请求)
```
1. 用户输入消息
2. Axios POST /api/v1/conversations/{id}/messages
3. Nginx 代理到后端 8037
4. FastAPI 接收请求
├── JWT 中间件验证 Token
├── 路由分发到对应 Handler
├── Service 层处理业务逻辑
│ ├── 查询对话历史 (MySQL)
│ ├── 检索相关知识 (知识库)
│ └── 调用 LLM API (异步)
5. Celery 异步执行 LLM 调用
├── 进度通过 Redis Pub/Sub 推送
└── SSE 推送给前端
6. 前端流式渲染响应内容
```
---
## 六、安全设计
| 安全措施 | 说明 |
|:---------|:-----|
| JWT 认证 | Access Token 有效期短Refresh Token 轮换 |
| 密码加密 | bcrypt 哈希存储 |
| CORS 配置 | 仅允许指定域名跨域访问 |
| 输入验证 | Pydantic 严格校验所有输入 |
| SQL 注入防护 | SQLAlchemy ORM 参数化查询 |
| HTTPS | Nginx 侧终止 SSL生产环境 |
---
## 七、扩展性 & 可维护性
- **水平扩展**FastAPI 为无状态应用,可多实例部署 + Nginx 负载均衡
- **异步任务**Celery Worker 可独立扩展,处理大量异步任务
- **模块化**:后端按业务拆分为 `modules/`,新增功能不影响现有模块
- **数据库迁移**Alembic 管理 Schema 变更,支持回滚
- **前端组件化**Vue 组件按功能拆解,提升复用性
---
> 📎 **相关文档**[项目结构概览](./project-structure.md) | [开发指南](./development-guide.md)