# X-Agents 企业级智能体平台,支持多 Agent 协作、工具调用、知识库管理、文档解析等能力。 ## 项目概述 X-Agents 是一个前后端分离的智能体平台,采用微服务架构设计,提供完整的 AI Agent 管理和执行能力。 ### 核心功能 - **智能体管理**:创建、配置和管理多个 AI Agent - **工具调用**:支持多种工具的注册、调用和沙盒执行 - **知识库管理**:支持文档上传、解析、向量化存储和检索 - **文档解析**:基于 gRPC 的高性能文档解析服务,支持多种格式 - **模型管理**:支持多种 LLM 模型的配置和切换 - **安全机制**:工具白名单、人工审批、审计日志等安全控制 - **数据库集成**:支持 MySQL、Neo4j 等数据库连接和查询 ## 技术栈 ### 前端 (web/) - Vue 3 - 渐进式 JavaScript 框架 - Vite - 下一代前端构建工具 - TypeScript - JavaScript 的超集 - Element Plus - Vue 3 组件库 - Tailwind CSS - 原子化 CSS 框架 - Pinia - Vue 状态管理 - Vue Router - 路由管理 - ECharts - 数据可视化 ### 后端 #### Go API Gateway (server/) - Gin - HTTP Web 框架 - GORM - ORM 库 - gRPC - 高性能 RPC 框架 - JWT - 身份认证 #### Python Agent Engine (agent/) - FastAPI - 高性能 Web 框架 - LangChain - LLM 应用开发框架 - OpenAI SDK - OpenAI API 客户端 - Anthropic SDK - Claude API 客户端 #### AI-Core 文档解析服务 (ai-core/) - gRPC - RPC 通信框架 - MarkItDown - 文档解析引擎 - Protocol Buffers - 数据序列化 ### 数据存储 - MySQL 8.0 - 关系型数据库 - Redis - 缓存和消息队列 - Neo4j - 图数据库(可选) ## 项目结构 ``` X-Agents/ ├── server/ # Go API Gateway │ ├── cmd/api/ # 程序入口 │ ├── internal/ │ │ ├── config/ # 配置管理 │ │ ├── handler/ # HTTP 处理器 │ │ ├── service/ # 业务逻辑层 │ │ ├── repository/ # 数据访问层 │ │ ├── middleware/ # 中间件 │ │ └── model/ # 数据模型 │ ├── config/ # 配置文件 │ ├── Dockerfile │ └── go.mod │ ├── agent/ # Python Agent Engine │ ├── app/ │ │ ├── agent/ │ │ │ ├── core/ # Agent 核心 │ │ │ ├── tools/ # 工具管理 │ │ │ └── memory/ # 记忆管理 │ │ ├── api/ # API 路由 │ │ ├── llm/ # LLM 适配器 │ │ └── security/ # 安全机制 │ ├── requirements.txt │ └── Dockerfile │ ├── ai-core/ # 文档解析服务 │ ├── parser/ # 文档解析器 │ ├── proto/ # gRPC 协议定义 │ ├── service/ # gRPC 服务实现 │ ├── requirements.txt │ └── config.yaml │ ├── web/ # 前端项目 │ ├── src/ │ │ ├── components/ # Vue 组件 │ │ ├── views/ # 页面视图 │ │ ├── router/ # 路由配置 │ │ └── utils/ # 工具函数 │ ├── package.json │ ├── vite.config.ts │ └── tailwind.config.js │ ├── docs/ # 文档 │ └── ARCHITECTURE.md # 架构设计文档 │ ├── docker-compose.yml # Docker 编排文件 ├── docker-compose.dev.yml # 开发环境配置 ├── .env.example # 环境变量模板 └── README.md # 项目说明 ``` ## 快速开始 ### 前置要求 - Docker 和 Docker Compose - Node.js 18+ - Go 1.25+ - Python 3.9+ ### 方式一:使用 Docker Compose(推荐) 1. **克隆项目** ```bash git clone cd X-Agents ``` 2. **配置环境变量** ```bash cp .env.example .env # 根据需要修改 .env 文件中的配置 ``` 3. **启动所有服务** ```bash docker-compose up -d ``` 服务将在以下端口启动: - Go API: http://localhost:8080 - Python Agent: http://localhost:8081 - 前端: http://localhost:5173 - AI-Core: localhost:50051 (gRPC) - MySQL: localhost:3306 - Redis: localhost:6379 ### 方式二:本地开发 #### 1. 启动基础服务(数据库) ```bash docker-compose -f docker-compose.yml up -d ``` #### 2. 启动 Go API 服务 ```bash cd server go run ./cmd/api ``` 服务将在 http://localhost:8082 启动 #### 3. 启动 Python Agent 服务 ```bash cd agent pip install -r requirements.txt python -m app.main ``` 服务将在 http://localhost:8081 启动 #### 4. 启动 AI-Core 文档解析服务 ```bash cd ai-core pip install -r requirements.txt python generate_grpc.py python main.py --port 50051 ``` 服务将在 localhost:50051 启动 #### 5. 启动前端服务 ```bash cd web npm install npm run dev ``` 前端将在 http://localhost:5173 启动 ### 方式三:使用启动脚本(Windows) ```powershell .\start-local.ps1 ``` 此脚本会自动启动数据库、Go 服务和前端服务。 ## 配置说明 ### Go 服务配置 编辑 `server/config/config.yaml`: ```yaml port: "8082" jwt_secret: "your-secret-key" database_host: "localhost" database_port: "3306" database_user: "root" database_password: "root" database_name: "x_agents" python_service_url: "http://localhost:8081" ai_core_service_addr: "localhost:50051" upload_mode: "local" upload_local_path: "resource/files" server_base_url: "http://localhost:8082" ``` ### AI-Core 配置 编辑 `ai-core/config.yaml`: ```yaml server: host: "0.0.0.0" port: 50051 parser: default_engine: "builtin" supported_engines: - builtin - markitdown logging: level: "INFO" ``` ## 开发指南 ### 前端开发 ```bash cd web npm run dev # 启动开发服务器 npm run build # 构建生产版本 npm run preview # 预览生产版本 ``` ### 后端开发 ```bash # Go 服务 cd server go run ./cmd/api # 启动开发服务器 go test ./... # 运行测试 # Python 服务 cd agent python -m app.main # 启动开发服务器 pytest # 运行测试 ``` ### 添加新工具 1. 在 `agent/app/agent/tools/impl/` 目录下创建新工具 2. 在 `agent/app/agent/tools/registry.py` 中注册工具 3. 配置安全级别和权限 ### 添加新文档解析器 1. 在 `ai-core/parser/` 目录下实现解析器类 2. 继承 `BaseParser` 并实现 `parse_into_text` 方法 3. 在 `ai-core/parser/registry.py` 中注册 ## API 文档 详细 API 文档请参考 [team-require/api/](team-require/api/) 目录。 主要接口包括: - 认证接口 - Agent 聊天接口 - 知识库管理接口 - 模型管理接口 - 数据库查询接口 - 文件上传接口 ## 架构设计 详细的架构设计文档请参考 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)。 ### 安全机制 - **工具白名单**:所有工具必须在注册表中注册 - **安全分级**:工具分为 SAFE、REVIEW、DANGER 三个等级 - **人工审批**:危险操作需要人工审批 - **审计日志**:记录所有操作历史 - **沙盒执行**:代码在隔离环境中执行 ## 常见问题 ### 数据库连接失败 检查 MySQL 服务是否正常启动,配置文件中的数据库信息是否正确。 ### 前端无法连接后端 检查后端服务是否正常启动,CORS 配置是否正确。 ### 文档解析失败 检查 AI-Core 服务是否正常启动,gRPC 端口是否正确配置。 ## 贡献指南 欢迎提交 Issue 和 Pull Request。 ## 许可证 MIT License