121 lines
4.5 KiB
Markdown
121 lines
4.5 KiB
Markdown
# 多智能体协同研发辅助系统 - 底座平台
|
||
|
||
## 项目简介
|
||
|
||
本项目是一个基于 Spring Boot 3.x 构建的多智能体协同研发辅助系统底座平台,提供智能体注册与发现、执行流编排、任务调度、上下文管理等核心能力,支持第三方智能体快速接入。
|
||
|
||
## 技术栈
|
||
|
||
- **Java 17**
|
||
- **Spring Boot 3.2.5**
|
||
- **Maven**
|
||
- **Knife4j / Swagger OpenAPI 3.0**(接口文档)
|
||
|
||
## 核心功能
|
||
|
||
| 模块 | 说明 |
|
||
|------|------|
|
||
| 智能体管理 | 智能体注册、注销、查询、心跳检测、能力标签发现 |
|
||
| 执行流管理 | 执行流创建、查询、删除、触发执行 |
|
||
| 任务调度 | 执行流解析、依赖排序、节点状态跟踪(预留扩展) |
|
||
| 上下文管理 | 全局数据 + 节点输出 + 元信息分层传递(预留扩展) |
|
||
| 接口文档 | 集成 Knife4j + Swagger 3,提供可视化 API 调试页面 |
|
||
|
||
## 快速启动
|
||
|
||
### 前提条件
|
||
|
||
- JDK 17+
|
||
- Maven 3.6+
|
||
|
||
### 编译与运行
|
||
|
||
```bash
|
||
# 克隆项目后进入目录
|
||
cd multi-agent-platform
|
||
|
||
# 编译打包
|
||
mvn clean package -DskipTests
|
||
|
||
# 运行
|
||
java -jar target/demo-0.0.1-SNAPSHOT.jar
|
||
|
||
# 或者直接使用 Maven 运行
|
||
mvn spring-boot:run
|
||
```
|
||
|
||
### 访问接口文档
|
||
|
||
启动后访问以下地址:
|
||
|
||
- **Knife4j UI**: http://localhost:8080/doc.html
|
||
- **Swagger UI**: http://localhost:8080/swagger-ui.html
|
||
- **OpenAPI JSON**: http://localhost:8080/v3/api-docs
|
||
|
||
## 健康检查
|
||
|
||
```bash
|
||
curl http://localhost:8080/health
|
||
# 返回: {"status":"UP","timestamp":"...","service":"multi-agent-platform"}
|
||
```
|
||
|
||
## API 概览
|
||
|
||
| 接口 | 方法 | 路径 | 说明 |
|
||
|------|------|------|------|
|
||
| 健康检查 | GET | `/health` | 系统健康状态 |
|
||
| 注册智能体 | POST | `/api/v1/agent/register` | 注册新智能体 |
|
||
| 注销智能体 | DELETE | `/api/v1/agent/unregister?id=xxx` | 注销指定智能体 |
|
||
| 查询智能体列表 | GET | `/api/v1/agent/list?capability=xxx` | 按能力标签或查询全部 |
|
||
| 查询智能体详情 | GET | `/api/v1/agent/{id}` | 查询单个智能体 |
|
||
| 更新心跳 | PUT | `/api/v1/agent/{id}/heartbeat` | 更新智能体心跳 |
|
||
| 创建执行流 | POST | `/api/v1/flow` | 创建执行流配置 |
|
||
| 获取执行流 | GET | `/api/v1/flow/{id}` | 获取执行流详情 |
|
||
| 查询所有执行流 | GET | `/api/v1/flow` | 获取全部执行流 |
|
||
| 删除执行流 | DELETE | `/api/v1/flow/{id}` | 删除执行流 |
|
||
| 触发执行流 | POST | `/api/v1/flow/execute` | 触发执行流运行 |
|
||
| 查询执行状态 | GET | `/api/v1/flow/execution/{executionId}` | 查询执行进度 |
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
src/main/java/com/example/demo/
|
||
├── DemoApplication.java # 启动类
|
||
├── config/
|
||
│ └── OpenApiConfig.java # Swagger/Knife4j 配置
|
||
├── controller/
|
||
│ ├── HealthController.java # 健康检查
|
||
│ ├── BusinessController.java # 智能体管理 API
|
||
│ └── FlowController.java # 执行流管理 API
|
||
├── model/
|
||
│ ├── BusinessItem.java # 智能体元数据模型
|
||
│ ├── ExecutionFlow.java # 执行流配置模型
|
||
│ └── dto/
|
||
│ ├── ApiResponse.java # 统一响应封装
|
||
│ ├── AgentRegisterRequest.java # 注册请求
|
||
│ └── FlowExecuteRequest.java # 执行触发请求
|
||
├── service/
|
||
│ ├── BusinessService.java # 智能体服务接口
|
||
│ ├── BusinessServiceImpl.java # 智能体服务实现(内存)
|
||
│ ├── FlowService.java # 执行流服务接口
|
||
│ └── FlowServiceImpl.java # 执行流服务实现(内存)
|
||
src/test/java/com/example/demo/
|
||
├── DemoApplicationTests.java # 应用启动测试
|
||
└── BusinessServiceTest.java # 智能体服务单元测试
|
||
```
|
||
|
||
## 设计说明
|
||
|
||
### 当前实现(内存存储)
|
||
|
||
所有业务数据基于 `ConcurrentHashMap` 存储在内存中,无需安装任何外部中间件即可启动运行。适用于功能验证、开发调试与接口联调。
|
||
|
||
### 后续扩展预留
|
||
|
||
- **Repository 层**:当前 Service 直接操作内存 Map,后续可抽取 Repository 接口,对接 MySQL/PostgreSQL
|
||
- **缓存层**:可引入 Redis 实现分布式缓存与心跳检测
|
||
- **消息队列**:可引入 MQ 实现异步任务调度与事件通知
|
||
- **调度引擎**:当前 `executeFlow` 为模拟实现,后续可对接真正的拓扑排序 + 线程池调度
|
||
- **认证授权**:可集成 Spring Security + JWT + RBAC
|
||
- **智能体 SDK**:可提供标准 SDK 封装注册、心跳、执行等流程
|