# factmesh
**Repository Path**: XimoKB/factmesh
## Basic Information
- **Project Name**: factmesh
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-12-22
- **Last Updated**: 2025-12-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
FactMesh V1.0
FactMesh
## 平台简介
FactMesh(Fact + Mesh)是一个基于现代微服务架构的智能决策支持系统,集成了多智能体协作、数据可视化、量化分析和系统管理等功能。
**核心理念**:
- **Fact (事实/数据/真理)**:强调系统的输出是基于事实的(Fact-based),而非大模型的幻觉。在科研领域讲究数据治理的“实事求是”,在政务领域(类似 RegTech)讲究风控和审计的“数据确权”。
- **Mesh (网格/多智能体网络)**:体现了 Agent 之间的分布式协作。
- **定位**:最适合科研、政务和金融的“可信流”系统。
系统采用前后端分离架构,支持高并发、高可用的企业级应用场景。
## **项目架构背景:**
FactMesh 采用微服务架构,包含以下核心组件:
- **backend**:主后端服务(端口9100,基于FastAPI)
- 核心业务逻辑处理
- 系统管理(用户、角色、权限等)
- 数据可视化和量化分析模块
- **agent 模块**:集成智能体服务(基于 Eigent Multi-Agent System / CrewAI)
- 提供多智能体协作能力
- 支持任务分解与动态规划
- 实现智能体间的协调与通信
- **fronted**:前端服务(端口5174,基于Vue3 + Element Plus)
- 现代化响应式用户界面
- 丰富的数据可视化组件
- 智能体交互界面
- **数据存储**:
- Redis(端口6380):缓存和会话管理
- PostgreSQL(端口5433):主数据库
**架构原则**:智能体相关的定义已集成在 backend 模块中管理,提供统一的业务逻辑支持。
## 内置功能
### 系统管理模块
1. **用户管理**:用户是系统操作者,该功能主要完成系统用户配置。
2. **角色管理**:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
3. **菜单管理**:配置系统菜单,操作权限,按钮权限标识等。
4. **部门管理**:配置系统组织机构(公司、部门、小组)。
5. **岗位管理**:配置系统用户所属担任职务。
6. **字典管理**:对系统中经常使用的一些较为固定的数据进行维护。
7. **参数管理**:对系统动态配置常用参数。
8. **通知公告**:系统通知公告信息发布维护。
### 系统监控模块
9. **操作日志**:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
10. **登录日志**:系统登录日志记录查询包含登录异常。
11. **在线用户**:当前系统中活跃用户状态监控。
12. **定时任务**:在线(添加、修改、删除)任务调度包含执行结果日志。
13. **服务监控**:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
14. **缓存监控**:对系统的缓存信息查询,命令统计等。
### 开发工具模块
15. **在线构建器**:拖动表单元素生成相应的HTML代码。
16. **系统接口**:根据业务代码自动生成相关的api接口文档。
17. **代码生成**:配置数据库表信息一键生成前后端代码(python、sql、vue、js),支持下载。
### 智能体模块
18. **CrewAI 多智能体协作**:
- 支持 Sequential、Parallel、Hierarchical 三种编排模式
- 基于 CrewAI 框架的成熟协作机制
- 完整的任务生命周期追踪和事件驱动架构
- 实时执行轨迹展示和状态同步
19. **会话隔离机制**:
- 三层防护机制(Scope Token + 对象ID + 字符串ID)
- 支持多会话并发执行,互不干扰
- WebSocket 独立连接管理
- 经过严格测试验证的隔离能力
20. **用户级数据隔离**:
- 用户切换自动清理任务数据
- localStorage 按用户ID隔离存储
- 防止跨用户数据泄漏
21. **统一任务状态管理**:
- 单一数据源 TaskStore
- 支持运行时任务和历史任务管理
- 完整的任务统计和消息记录
- WebSocket 连接生命周期管理
22. **工具集成**:提供丰富的工具集,包括搜索、文档处理、代码执行等
23. **实时通信**:支持智能体间的实时通信和状态同步
### 数据分析模块
21. **数据可视化**:提供丰富的图表和可视化组件
22. **文档解析**:支持PDF、Word等多种文档格式的解析和处理
23. **量化分析**:提供量化策略和分析工具
## 最新功能迭代 (2025-11)
### ✅ Phase 1: 前端状态管理重构(已完成)
**目标**:解决多会话任务状态管理问题,实现会话级别隔离
**已完成功能**:
- ✅ **TaskStore 统一管理**:合并两个独立的 taskStore 实现,实现单一数据源
- ✅ **会话隔离机制**:三层防护确保多会话并发执行互不干扰
- ✅ **用户隔离机制**:用户切换自动清理数据,防止跨用户数据泄漏
- ✅ **P0 级别性能优化**:修复内存泄漏和竞态条件问题
- ✅ **完整测试验证**:通过双会话并发执行测试,隔离机制工作正常
**技术亮点**:
- 基于 CrewAI 的事件驱动架构
- Scope Token + 对象 ID + 字符串 ID 三层防护
- WebSocket 独立连接管理
- 向后兼容的无缝迁移设计
**测试结果**:
- 会话隔离:✅ 通过
- 任务隔离:✅ 通过
- 用户隔离:✅ 通过
- 并发支持:✅ 通过
**相关文档**:
- `WORK_PROGRESS.md` - 详细工作进程记录
- `CLAUDE.md` - 项目开发指南
### 🚧 Phase 2: 后端任务统一化与持久化(计划中)
**目标**:实现任务持久化,支持浏览器刷新后恢复任务状态
**计划功能**:
- [ ] Redis/Database 任务状态持久化
- [ ] Celery 异步任务队列系统
- [ ] WebSocket 自动重连机制
- [ ] 任务恢复 API
- [ ] 任务历史查询和管理
### 🔮 Phase 3: 企业级功能扩展(规划中)
**计划功能**:
- [ ] 工具集成架构重构(MCP + Traditional Tools)
- [ ] 微服务架构优化
- [ ] 多租户支持
- [ ] 监控告警系统
- [ ] 分布式追踪(OpenTelemetry)
## 系统架构图
```mermaid
graph TB
subgraph "前端层"
A[fronted
Vue3 + Element Plus
端口:5174]
end
subgraph "API网关层"
B[Nginx
端口:80]
end
subgraph "业务服务层"
C[backend
FastAPI + Agent Module
端口:9100]
end
subgraph "数据存储层"
E[(PostgreSQL
端口:5433)]
F[(Redis
端口:6380)]
end
A --> B
B --> C
C --> E
C --> F
```
## 智能体架构图
```mermaid
graph LR
subgraph "Agent Module (in backend)"
A[用户请求] --> B[协调器]
B --> C[规划器]
C --> D[任务分解]
D --> E[智能体调度]
E --> F[智能体1]
E --> G[智能体2]
E --> H[智能体N]
F --> I[结果汇总]
G --> I
H --> I
I --> J[响应返回]
end
subgraph "工具集"
K[搜索工具]
L[文档处理]
M[代码执行]
N[数据分析]
end
F --> K
F --> L
G --> M
H --> N
```
## 在线体验
## 项目开发及发布相关
### 开发
#### 前端开发
```bash
# 进入前端目录
cd fronted
# 安装依赖
npm install --registry=https://registry.npmmirror.com
# 启动开发服务器
npm run dev
```
#### 后端开发
```bash
# 进入后端目录
cd backend
# 安装项目依赖环境
pip3 install -r requirements-pg.txt
# 配置环境变量
cp .env.example .env.dev
# 编辑 .env.dev 文件,配置数据库和Redis连接信息
# 初始化数据库
1. 创建数据库(默认名称:kddis-fastapi)
2. 运行sql文件夹下的kddis-fastapi-pg.sql初始化数据库结构
# 启动后端服务
python3 app.py --env=dev
```
#### 访问系统
```bash
# 默认账号密码
账号:admin
密码:admin123
# 浏览器访问
地址:http://localhost:5174 # 直接访问前端 (开发模式)
或 http://localhost:80 # 通过Nginx访问 (生产模式)
# API文档
后端API: http://localhost:9100/docs
```
### 部署指南
#### 前端部署
```bash
# 构建生产环境
npm run build
# 使用Docker部署
cd fronted
docker build -t fronted .
docker run -d -p 80:80 fronted
```
#### 后端部署
```bash
# 配置生产环境
cp .env.example .env.prod
# 编辑 .env.prod 文件,配置生产环境的数据库和Redis
# 使用Docker部署
cd backend
docker build -t backend .
docker run -d -p 9100:9100 backend
# 或直接运行
python3 app.py --env=prod
```
#### Docker Compose部署
```bash
# 使用Docker Compose一键部署所有服务
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f
```
## 交流与赞助
如果有对本项目及FastAPI感兴趣的朋友,欢迎加入知识星球一起交流学习,让我们一起变得更强。如果你觉得这个项目帮助到了你,你可以请作者喝杯咖啡表示鼓励☕。扫描下面微信二维码添加微信备注VF-Admin即可进群。