🎓 个人学习项目 | 基于 Spring AI 和 Spring Boot 构建的智能体 AI 平台
支持 ReAct 推理、工具调用、RAG 检索增强生成、MCP 协议和 Docker 工作空间
项目简介 • 核心特性 • 快速开始 • 项目截图 • 项目结构 • 版本更新 • 已知问题 • 更新计划
🎓 本项目为个人学习项目,旨在深入学习和实践 Spring AI、智能体架构、RAG、Docker 容器化等前沿技术。代码可能存在不足之处,欢迎交流探讨!
SuperAgent 是一个智能体 AI 平台,采用前后端分离架构。后端基于 Spring Boot 3.5 + Spring AI + Spring AI Alibaba 构建,前端使用 Vue 3 + Vite(AI 辅助开发)。
该平台支持多种 AI 代理模式(ReAct、ToolCall),分别实现了两种框架即 Spring AI + Spring AI Alibaba 组件 和 纯 Spring AI Alibaba 的 Agent 完整逻辑实现,内置丰富的工具生态,支持多模型接入(通义千问、OpenAI、DeepSeek、智谱 AI、MiniMax、Ollama 本地模型等),并具备完整的用户认证、会话管理、RAG 知识库、Docker 工作空间等功能。
学习重点:
- Spring AI 框架深入实践
- 智能体架构设计与实现
- ReAct 推理模式应用
- RAG 检索增强生成
- MCP 协议集成
- Docker 容器化工作空间
- 流式响应与 SSE 实时通信
- WebSocket 终端实时交互
- ReAct Agent: 支持推理-行动循环,让 AI 能够自主规划并调用工具解决问题
- ToolCall Agent: 直接工具调用模式,适用于明确的工具执行场景
- SuperAgent: 核心超级代理,支持动态模型路由、拦截器链、Hook 机制
平台内置 25+ 种工具,分为四类(许多实现可能不够优雅和完善,欢迎 PR 改进):
| 类别 | 工具 | 功能描述 |
|---|---|---|
| 通用工具 | PlanningTool | 任务规划与分解 |
| SensitiveFilterTool | 敏感词过滤 | |
| AskUserQuestionTool | 主动向用户提问 | |
| SessionTool | 会话管理工具 | |
| TokenTool | Token 用量查询工具 | |
| 在线工具 | WebSearchTool | 网络搜索 |
| TavilySearchTool | Tavily 智能搜索 | |
| Crawl4aiTool | 网页内容爬取 | |
| EmailTool | 邮件发送 | |
| TouTiaoNewsTool | 头条新闻获取 | |
| SmartWebFetchTool | 智能网页获取 | |
| DateTimeTool | 日期时间处理 | |
| MarkdownToPdfTool | Markdown 转 PDF | |
| 本地工具 | BashTool | Bash 命令执行 |
| BrowserUseTool | 浏览器自动化(Selenium) | |
| FileOperationTool | 文件操作 | |
| PDFGenerationTool | PDF 生成 | |
| SandboxTool | 沙箱环境 | |
| TerminalOperationTool | 终端操作 | |
| DockerSandboxTool | Docker 容器沙箱 | |
| GitTool | Git 版本控制 | |
| MCP 工具 | MCP Client | 支持 Model Context Protocol 协议 |
- 通义千问 (DashScope) - 默认推荐
- OpenAI (GPT-4/GPT-3.5)
- DeepSeek
- 智谱 AI (GLM)
- MiniMax
- Ollama (本地模型部署)
- 基于 PGVector 的向量数据库支持
- 文档加载与向量化存储
- 查询重写与上下文增强
- 支持 Markdown、PDF、TXT 文档知识库
- 完整的 RAG Pipeline 架构(查询转换、检索、增强、生成)
- 支持 DashScope 百炼 RAG 索引
- 容器化环境: 每个用户拥有独立的 Docker 容器工作空间
- 文件浏览器: 可视化文件管理,支持上传、下载、创建、删除、重命名
- 代码编辑器: 内置文件查看器,支持代码高亮
- WebSocket 终端: 实时交互式终端,支持命令执行与输出流
- 资源限制: 支持内存、CPU、进程数限制
- 持久化存储: 容器空闲超时自动清理,数据持久化到宿主机
- 用户认证: 基于 Sa-Token 的权限认证体系,支持密码/手机号登录注册
- RBAC 权限: 基于角色的权限控制,支持 26 种细粒度权限
- 会话管理: 支持多会话、会话归档、历史消息管理
- 聊天记忆: 支持 Redis、数据库、文件多种存储方式
- 消息队列: RabbitMQ 异步处理会话归档
- 定时任务: 自动归档过期会话
- 文件存储: MinIO 对象存储支持
- 模型管理: 多模型配置、分组管理、Token 用量监控
- 用量统计: 用户全生命周期用量汇总、周期用量(日/周/月)、模型维度用量(部分实现中)
- 审计日志: 完整的操作审计日志(文件操作、命令执行等)
- 接口监控: 使用 Alibaba 的 ARMS 监控项目运行情况
- 动态模型路由: 根据任务类型自动选择最优模型
- 提示词注入: 动态修改系统提示词
- 工具缓存: 智能缓存工具调用结果
- 消息修剪: 自动管理上下文窗口
- 响应验证: 确保输出质量
- Token 汇总: 自动统计 Token 使用量
| 技术 | 版本 | 用途 |
|---|---|---|
| Spring Boot | 3.5.11 | 核心框架 |
| Spring AI | 1.1.3 | AI 开发框架 |
| Spring AI Alibaba | 1.1.2.0 | 阿里云 AI 生态 |
| Java | 21 | 编程语言 |
| MyBatis Plus | 3.5.15 | ORM 框架 |
| MySQL | 8.0+ | 关系型数据库 |
| PostgreSQL | 14+ | 向量数据库 (PGVector) |
| Redis | 7.0+ | 缓存与会话存储 |
| RabbitMQ | 3.12+ | 消息队列 |
| Redisson | 3.52.0 | Redis 客户端 |
| Sa-Token | 1.45.0 | 权限认证 |
| MinIO | 8.6.0 | 对象存储 |
| Selenium | 4.15.0 | 浏览器自动化 |
| docker-java | 3.4.1 | Docker 容器管理 |
| Playwright | 1.55.0 | 浏览器自动化 |
| 技术 | 版本 | 用途 |
|---|---|---|
| Vue | 3.4.21 | 前端框架 |
| Vite | 5.1.6 | 构建工具 |
| Element Plus | 2.6.1 | UI 组件库 |
| Pinia | 2.1.7 | 状态管理 |
| Marked | 12.0.1 | Markdown 渲染 |
| KaTeX | 0.16.45 | 数学公式渲染 |
前端采用 AI 辅助开发模式快速构建
| 组件 | 版本要求 | 说明 |
|---|---|---|
| JDK | 21+ | Java 开发套件 |
| Maven | 3.9+ | 构建工具 |
| MySQL | 8.0+ | 关系型数据库 |
| PostgreSQL | 14+ | 向量数据库 (需安装 pgvector 扩展) |
| Redis | 7.0+ | 缓存与会话存储 |
| RabbitMQ | 3.12+ | 消息队列 |
| Node.js | 18+ | 前端运行环境 |
| Docker | 20.10+ | 工作空间容器化(可选) |
# 创建数据库
create database springmind default character set utf8mb4 collate utf8mb4_unicode_ci;# 安装 pgvector 扩展
CREATE EXTENSION IF NOT EXISTS vector;
# 创建向量数据库(用于 RAG)
CREATE DATABASE springmind_vector;# 默认端口 6379,无密码或配置密码
# 确保 Redis 服务已启动# 默认端口 5672(AMQP),15672(管理界面)
# 确保 RabbitMQ 服务已启动# Windows: 安装 Docker Desktop,开启 TCP 端口 2375
# Linux: 安装 Docker 并配置 daemon 监听 tcp://0.0.0.0:2375
# Mac: 安装 Docker Desktop# 使用 MySQL 命令行或客户端工具执行
mysql -u root -p springmind < sql/db.sql📄 SQL 脚本位置:./sql/db.sql
该脚本包含 20 张核心表:
- 用户体系:
springmind_user、springmind_user_security、springmind_user_login_log- 权限体系:
springmind_permission、springmind_role、springmind_role_permission、springmind_user_role- 会话体系:
springmind_chat_session、springmind_chat_message- 模型管理:
springmind_model_provider、springmind_model、springmind_model_group、springmind_model_group_relation、springmind_user_model_config- 用量统计:
springmind_user_usage_summary、springmind_user_usage_period、springmind_user_model_usage_summary、springmind_user_model_usage_period- 消息队列:
springmind_mq_fail_message- 审计日志:
springmind_audit_log- 基础角色数据(管理员、访客、普通用户、会员)
- 26 种权限配置数据
# 导入预设的模型供应商和模型数据
mysql -u root -p springmind < sql/model_init_data.sql📄 脚本位置:./sql/model_init_data.sql
包含 4 家供应商(DeepSeek、Moonshot、智谱 AI、阿里云百炼)和 18 个模型的完整配置
# 执行迁移脚本
mysql -u root -p springmind < sql/migration_v0.21_to_v0.30.sql📄 迁移脚本位置:./sql/migration_v0.21_to_v0.30.sql
该脚本会:
- 清空并重建权限数据(26 种权限)
- 重建角色-权限关联
- 创建审计日志表
cp src/main/resources/application.yml src/main/resources/application-dev.yml以下是完整的配置模板,请根据实际情况填写:
# ========== 应用基础配置 ==========
spring:
profiles:
active: dev
servlet:
multipart:
max-file-size: 100MB
max-request-size: 100MB
application:
name: SuperAgent
# ========== 数据源配置 ==========
datasource:
primary:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/springmind?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: your_mysql_username
password: your_mysql_password
type: com.alibaba.druid.pool.DruidDataSource
vector:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/springmind_vector
username: your_postgres_username
password: your_postgres_password
type: com.alibaba.druid.pool.DruidDataSource
# ========== Redis 配置 ==========
data:
redis:
host: localhost
port: 6379
timeout: 10s
lettuce:
pool:
max-active: 50
max-wait: -1ms
max-idle: 8
min-idle: 0
# username: your_redis_username # 如有
# password: your_redis_password # 如有
# database: 0
# ========== RabbitMQ 配置 ==========
rabbitmq:
host: localhost
port: 5672
username: your_rabbitmq_username
password: your_rabbitmq_password
publisher-returns: true
publisher-confirm-type: correlated
listener:
simple:
acknowledge-mode: manual
prefetch: 1
retry:
enabled: true
max-attempts: 3
initial-interval: 1000
multiplier: 2
max-interval: 5000
stateless: true
# ========== AI 模型配置 ==========
ai:
dashscope:
api-key: your-dashscope-api-key
read-timeout: 60000
chat:
options:
model: qwen-plus
enable-thinking: true
enable-search: true
deepseek:
api-key: your-deepseek-api-key
chat:
options:
model: deepseek-reasoner
openai:
api-key: your-openai-api-key
base-url: https://openrouter.ai/api/v1/chat/completions
chat:
options:
model: x-ai/grok-4.1-fast
temperature: 0.7
max-tokens: 2048
zhipuai:
api-key: your-zhipuai-api-key
chat:
options:
model: GLM-4.5-AirX
vectorstore:
pgvector:
index-type: hnsw
dimensions: 1536
distance-type: cosine_distance
max-document-batch-size: 10000
initialize-schema: false
chat:
memory:
repository:
jdbc:
initialize-schema: always
alibaba:
toolcalling:
minio:
endpoint: http://localhost:9000
access-key: your-minio-access-key
secret-key: your-minio-secret-key
# ========== 邮件配置 ==========
mail:
host: smtp.qq.com
port: 465
username: your_email@qq.com
password: your_email_auth_code
protocol: smtp
properties:
mail:
smtp:
auth: true
ssl:
enable: true
# ========== MCP 配置 ==========
mcp:
client:
stdio:
servers-configuration: classpath:mcp-servers-dev.json
# ========== 阿里云配置 ==========
alibaba:
cloud:
access-key: your-aliyun-access-key
secret-key: your-aliyun-secret-key
# ========== 搜索 API 配置 ==========
search-api:
api-key: your-search-api-key
# ========== Tavily 搜索配置 ==========
tavily:
max-retries: 2
apiKey: your-tavily-api-key
apiUrl: https://api.tavily.com/search
# ========== Sa-Token 配置 ==========
sa-token:
token-name: SuperAgent
timeout: 2592000
active-timeout: -1
is-concurrent: true
is-share: false
token-style: uuid
is-log: true
# ========== Pexels 图片搜索 ==========
image-search:
apiKey: your-pexels-api-key
# ========== Docker 工作空间配置 ==========
agent:
docker:
enabled: true
host: tcp://localhost:2375
image: ubuntu:22.04
workspace: /workspace
default-timeout-seconds: 120
resources:
memory-mb: 512
cpu-count: 1
pids-limit: 100
persistent:
idle-timeout-minutes: 60
cleanup-interval-minutes: 30
# ========== RAG 配置 ==========
springmind:
rag:
enabled: true
dashscope:
enabled: true
index-name: 家庭和睦知识库
document:
supported-formats: [markdown, pdf, txt]
vector-store:
primary-store: pgvector
retrieval:
top-k: 5
similarity-threshold: 0.9编辑 src/main/resources/mcp-servers-dev.json:
{
"mcpServers": {
"amap-maps": {
"command": "npx.cmd",
"args": ["-y", "@amap/amap-maps-mcp-server"],
"env": {
"AMAP_MAPS_API_KEY": "your-amap-api-key"
}
},
"GitHub": {
"command": "npx.cmd",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "your-github-token"
}
},
"Excel": {
"command": "npx.cmd",
"args": ["--yes", "@negokaz/excel-mcp-server"],
"env": {
"EXCEL_MCP_PAGING_CELLS_LIMIT": "10000"
}
}
}
}# 使用 Maven Wrapper
./mvnw spring-boot:run
# 或打包后运行
./mvnw clean package -DskipTests
java -jar target/SuperAgent-0.0.1-SNAPSHOT.jarcd frontend
npm install
npm run dev- 前端页面: http://localhost:5173
- 后端 API: http://localhost:8123
- Swagger 文档: http://localhost:8123/swagger-ui.html
Docker 工作空间 - 文件浏览器 + 代码编辑器 + WebSocket 终端
SuperAgent/
├── frontend/ # 前端 (Vue 3 + Vite)
│ ├── src/api/ # API 接口层
│ ├── src/components/ # 组件
│ │ ├── workspace/ # 工作空间组件
│ │ │ ├── FileExplorer.vue # 文件浏览器
│ │ │ ├── FileViewer.vue # 文件查看器
│ │ │ └── TerminalPanel.vue # 终端面板
│ │ ├── AgentMessageRenderer.vue # Agent 消息渲染
│ │ ├── ArchiveDialog.vue # 归档对话框
│ │ ├── FeedbackDialog.vue # 反馈对话框
│ │ ├── HistoryDialog.vue # 历史对话框
│ │ ├── LoginDialog.vue # 登录对话框
│ │ ├── MainContent.vue # 主内容区
│ │ ├── MarkdownRenderer.vue # Markdown 渲染器
│ │ ├── ShareDialog.vue # 分享对话框
│ │ ├── Sidebar.vue # 侧边栏
│ │ ├── TodoList.vue # 待办列表
│ │ └── ... # 其他组件
│ ├── src/stores/ # Pinia 状态管理
│ ├── src/views/ # 页面视图
│ │ ├── ChatView.vue # 聊天页面
│ │ ├── ModelListView.vue # 模型列表页面
│ │ └── WorkspaceView.vue # 工作空间页面
│ └── src/utils/ # 工具函数
│
├── src/main/java/cn/sgnxotsmicf/
│ ├── SuperAgentApplication.java # 启动类
│ ├── app/ # 智能体实现层
│ │ ├── manus/ # Manus 代理 (Spring AI + Alibaba 组件)
│ │ ├── superagent/ # SuperAgent 核心 (纯 Spring AI Alibaba)
│ │ │ ├── factory/ # Agent 工厂 (抽象工厂模式)
│ │ │ ├── hook/ # Hook 机制
│ │ │ └── interceptor/ # 拦截器链
│ │ └── family/ # 家庭和谐应用示例
│ ├── agentTool/ # 工具生态
│ │ ├── commonTool/ # 通用工具
│ │ ├── localtool/ # 本地工具
│ │ ├── onlinetool/ # 在线工具
│ │ └── specialTool/ # 特殊工具
│ ├── advisor/ # Spring AI Advisor
│ ├── chatMemory/ # 聊天记忆 (Redis/MySQL/File)
│ ├── controller/ # REST API 控制器
│ │ ├── SuperAgentController.java # 主控制器
│ │ └── WorkspaceController.java # 工作空间控制器
│ ├── service/ # 业务逻辑层
│ │ ├── impl/ # 实现类
│ │ └── strategy/ # 策略模式
│ ├── dao/ # 数据访问层 (Mapper)
│ ├── common/ # 公共模块
│ │ ├── po/ # 持久化对象
│ │ ├── vo/ # 视图对象
│ │ ├── dto/ # 数据传输对象
│ │ ├── auth/ # 权限与安全上下文
│ │ ├── rabbitmq/ # RabbitMQ 消息队列
│ │ └── version/ # 版本信息
│ ├── config/ # 配置类
│ ├── container/ # 容器运行时服务
│ │ ├── ContainerOrchestrator.java # 容器编排器
│ │ ├── config/
│ │ │ └── ContainerRuntimeConfig.java # 容器运行时配置
│ │ └── runtime/
│ │ ├── ContainerRuntime.java # 容器运行时接口
│ │ ├── ContainerSpec.java # 容器规格定义
│ │ ├── ContainerStatus.java # 容器状态
│ │ ├── DockerContainerRuntime.java # Docker 运行时实现
│ │ ├── ExecResult.java # 执行结果
│ │ ├── ExecSpec.java # 执行规格
│ │ ├── LocalProcessRuntime.java # 本地进程运行时
│ │ ├── PTYHandler.java # PTY 处理器
│ │ └── PTYSession.java # PTY 会话
│ ├── rag/ # RAG 检索增强生成
│ │ ├── advisor/ # RAG Advisor
│ │ ├── augmenter/ # 查询增强器
│ │ ├── config/ # RAG 配置
│ │ ├── core/ # 核心组件
│ │ ├── exception/ # 异常处理
│ │ ├── monitor/ # 监控指标
│ │ ├── pipeline/ # RAG Pipeline
│ │ ├── retriever/ # 文档检索器
│ │ └── transformer/ # 查询转换器
│ ├── exception/ # 全局异常处理
│ ├── job/ # 定时任务
│ └── websocket/ # WebSocket 处理器
│ └── WorkspaceWebSocketHandler.java
│
├── skills/ # 技能定义 (SKILL.md)
├── sql/ # 数据库初始化脚本
│ ├── db.sql # 主数据库脚本
│ ├── model_init_data.sql # 模型初始化数据
│ └── migration_v0.21_to_v0.30.sql # v0.21 到 v0.30 迁移脚本
├── assests/ # 项目截图
└── pom.xml # Maven 配置
SuperAgent 支持通过 SKILL.md 文件定义技能,实现可插拔的 AI 能力:
---
name: java-coding-standards
description: Java 编码规范检查与建议
---
# Java 编码规范
## 命名规范
- 类名使用大驼峰命名法
- 方法名使用小驼峰命名法
...内置技能:
java-coding-standards- Java 编码规范java-design-standards- Java 设计规范java-security-standards- Java 安全规范time-aware-search- 时间感知搜索caveman- 极简通信模式docker-tool-specification- Docker 工具规范pptx- PPT 生成技能
启动后访问 Swagger UI:
http://localhost:8123/swagger-ui.html
主要接口:
POST /api/super-agent/chat- 流式对话POST /api/manus/chat- Manus 代理对话GET /api/session/list- 获取会话列表POST /api/user/login- 用户登录GET /api/model/list- 获取模型列表GET /api/model/token/usage- Token 用量查询GET /api/workspace/status- 工作空间状态GET /api/workspace/files- 获取文件列表POST /api/workspace/files/upload- 上传文件GET /api/workspace/files/download- 下载文件DELETE /api/workspace/files- 删除文件POST /api/workspace/terminal/exec- 执行终端命令WS /ws/workspace/terminal- WebSocket 终端
spring:
ai:
dashscope:
api-key: your-dashscope-api-key
openai:
api-key: your-openai-api-key
deepseek:
api-key: your-deepseek-api-key
zhipuai:
api-key: your-zhipuai-api-key{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/files"]
}
}
}agent:
docker:
enabled: true
host: tcp://localhost:2375
image: ubuntu:22.04
workspace: /workspace
default-timeout-seconds: 120
resources:
memory-mb: 512
cpu-count: 1
pids-limit: 100springmind:
rag:
enabled: true
document:
supported-formats: [markdown, pdf, txt]
vector-store:
primary-store: pgvector
retrieval:
top-k: 5
similarity-threshold: 0.9| 属性 | 内容 |
|---|---|
| 版本号 | v0.30 |
| 作者 | sgnxotsmicf |
| 性质 | 🎓 个人学习项目 |
| 描述 | 多智能体平台服务项目 |
| 状态 | 🚧 持续学习开发中 |
| 模块 | 更新内容 |
|---|---|
| Docker 工作空间 | 全新 Docker 容器化工作空间,每个用户拥有独立容器环境,支持文件浏览器、代码编辑器、WebSocket 终端 |
| 工作空间前端组件 | 新增 FileExplorer、FileViewer、TerminalPanel 三大组件,支持拖拽调整面板大小 |
| WorkspaceView | 新增工作空间页面,集成文件管理、代码查看、终端交互 |
| WebSocket 终端 | 新增 WorkspaceWebSocketHandler,支持实时命令执行与输出流 |
| Docker 容器服务 | 新增 DockerContainerService、ContainerSessionManager、WorkspaceFileService,完整容器生命周期管理 |
| RAG 架构重构 | 完全重构 RAG 模块,新增 Pipeline、Advisor、Retriever、Transformer、Augmenter、Monitor 等核心组件 |
| RAG 配置化 | 新增 RagProperties 配置类,支持文档格式、向量存储、检索参数、查询转换等全配置 |
| RAG 异常处理 | 新增 RagException 统一异常处理 |
| Token 用量统计 | 新增用户全生命周期用量汇总(UserUsageSummary)、周期用量(UserUsagePeriod)、模型维度用量统计(部分实现) |
| 审计日志 | 新增 AuditLog 表及审计日志功能,记录文件操作、命令执行等行为 |
| 权限体系扩展 | 权限从原有基础权限扩展至 26 种细粒度权限,新增工作区相关权限(读/写/执行/终端) |
| 角色权限重构 | 重构角色-权限关联,支持 admin/guest/user/member 四级角色体系 |
| 模型数据初始化 | 新增 model_init_data.sql,预设 4 家供应商 18 个模型完整配置 |
| PPT 生成技能 | 新增 pptx 技能,支持 PPT 生成、编辑、清理等功能 |
| Docker 工具规范 | 新增 docker-tool-specification 技能 |
| Git 工具 | 新增 GitTool,支持 Git 版本控制操作 |
| SessionTool | 新增 SessionTool,支持会话管理 |
| TokenTool | 新增 TokenTool,支持 Token 用量查询 |
| FeedbackDialog | 新增反馈对话框组件 |
| TodoList | 新增待办列表组件 |
| 前端路由 | 新增 WorkspaceView 路由,支持工作空间页面导航 |
| workspace.js API | 新增工作空间相关 API 接口 |
| workspace store | 新增 workspace Pinia store,管理工作空间状态 |
| terminal-websocket.js | 新增终端 WebSocket 工具类 |
| 模块 | 改进内容 |
|---|---|
| 前端 Markdown 渲染 | 大幅优化 MarkdownRenderer,支持更完善的代码高亮、数学公式、表格等渲染 |
| 前端主界面 | 重构 MainContent 组件,优化对话交互与布局 |
| 前端侧边栏 | 重构 Sidebar 组件,新增工作空间入口 |
| 前端流式输出 | 优化 stream.js,提升流式响应稳定性 |
| AgentMessageRenderer | 优化 Agent 消息渲染,支持更丰富的消息类型展示 |
| 后端 RAG 模块 | 完全重构 RAG 架构,从简单流程升级为完整 Pipeline 架构 |
| 后端工具注册 | 优化 ToolRegistry,支持新工具动态注册 |
| 后端会话归档 | 优化 SessionExpireArchiveJob,修复定时任务归档 Bug |
| 后端聊天记忆 | 优化 RedisSaverBatch,提升批量保存性能 |
| 后端权限安全 | 优化 SecurityContextHolder、UserInfoContext,增强安全上下文传递 |
| 后端模型兼容 | 优化 ChatClientFactory,提升多模型兼容性 |
| 后端拦截器 | 重构 InterceptorRegistry,优化拦截器链管理 |
| 删除无用测试 | 清理大量无用测试文件,减少项目体积 |
| 代码优化 | 优化前端代码结构,删除无用测试文件 |
新增工作空间页面截图,展示 Docker 容器化文件浏览器、代码编辑器和 WebSocket 终端。
| 属性 | 内容 |
|---|---|
| 版本号 | v0.20 |
| 作者 | sgnxotsmicf |
| 性质 | 🎓 个人学习项目 |
| 描述 | 智能体平台服务项目 |
| 状态 | ✅ 已归档 |
| 模块 | 更新内容 |
|---|---|
| 模型管理系统 | 新增 Model/ModelConfig/ModelGroup/ModelProvider 实体及完整 CRUD,支持多模型分组管理与配置 |
| 模型和 Token 管理 | 新增 ModelAndTokenController,支持查询用户模型配置和模型列表 |
| 模型参数自定义 | 前端新增 ModelParamDialog,支持用户自定义温度、top_p、top_k 等模型参数 |
| 模型列表页面 | 前端新增 ModelListView,可视化展示可用模型及分组 |
| 登录注册重构 | 采用策略模式重构登录/注册流程,支持密码登录、手机号登录两种策略 |
| Agent 工厂模式 | 重构 SuperAgentFactory 为抽象工厂模式,新增 Qwen/DeepSeek/GLM/MiniMax 等具体 Creator |
| 用户画像增强 | 完善 UserProfileDialog 与 UserProfileServiceImpl,丰富用户画像管理 |
| AOP 请求校验 | 新增 RequestValidation 注解 + AOP 切面,统一请求参数校验 |
| 安全上下文 | 新增 UserInfoContext/SecurityConstants,增强用户身份上下文传递 |
| RabbitMQ 增强 | 新增 SessionMessage/MqFailMessage 实体,完善消息消费与失败重试机制 |
| 模块 | 改进内容 |
|---|---|
| 前端 Markdown 渲染 | 大幅优化 MarkdownRenderer,提升代码高亮、数学公式等渲染效果 |
| 前端主界面 | 重构 MainContent 组件,优化对话交互与布局 |
| 前端登录页 | 重构 LoginDialog,整合登录/注册流程,优化表单交互 |
| 后端流式输出 | 修复前端流式输出及工具调用的稳定性问题 |
| 后端权限安全 | 修复后端权限漏洞,优化前后端交互安全 |
| 后端推理持久化 | 修复推理内容无法持久化的问题 |
| 后端模型兼容性 | 修复多模型兼容性问题 |
| ReAct 线程安全 | 修复手写 ReAct 的线程安全问题 |
| Sa-Token 流式 | 解决 Sa-Token 流式输入异常问题 |
| RabbitMQ 功能 | 完善 RabbitMQ 相关功能 |
| 属性 | 内容 |
|---|---|
| 版本号 | v0.10 |
| 描述 | 基础功能完善的 AI 前后端项目 |
v0.10 作为项目初始版本,实现了以下核心功能:
- 多 Agent 架构(SuperAgent、Manus、FamilyHarmony)
- ReAct / ToolCall 两种代理模式
- 20+ 内置工具生态
- SSE 流式响应
- 用户认证与会话管理
- RAG 知识库基础流程
- RabbitMQ 异步归档
- 前端 Vue3 基础交互
说明:当前版本处于早期开发阶段,存在以下已知问题和不足。这些问题来自代码中的 SuperAgentDeficiency.java 定义,会逐步修复完善。
| 问题 | 说明 | 优先级 |
|---|---|---|
| 前端渲染细节 | 流式 Markdown 渲染基本成功,但仍有部分细节不足 | 🟡 中 |
| 更多细节不足 | 包括提示词优化、Rag、异常处理等各种细节都有待提高 | 🟢 高 |
| Rag 流程不足 | 只是添加了一个流程,没有更深层次的架构设计 | 🟡 中 |
| 鉴权验证不足 | 正在逐步优化中 | 🟡 中 |
💡 更多详细缺陷定义见 SuperAgentDeficiency.java
🎓 持续学习,持续进步:本项目作为学习项目,将跟随技术发展和个人成长不断更新完善。
计划中的学习方向和功能包括:
- 修复流式输出和工具调用的稳定性问题
- 完善前端 Markdown 渲染和交互体验
- 完善 Spring AI Alibaba 不兼容的 Message 级别管理
- 多 Agent 协同
- 虚拟 Docker 环境支持
- 优化提示词及模型调用完整链路
- 解决 Sa-Token 的流式输入异常问题
- 支持用户自定义模型参数(温度、top_p、top_k 等)
- 增加更多内置工具和技能
- 优化 RAG 检索效果与完整架构链路
- 支持更多 AI 模型接入
- 模型管理与 Token 用量监控
- 登录注册策略模式重构
- 更多更完善的工具和 skills,以及其调用流程
- 完善单元测试和文档
- 提供 Docker 一键部署方案
- Docker 工作空间(文件浏览器 + 终端)
- RAG 架构重构
- Token 用量统计体系(部分实现)
- 审计日志功能
- 重构用户模型会话交互(后续更新重点)
长期目标: 打造一个功能完善、稳定可靠、易于扩展的开源多智能体 AI 平台。
本项目采用 MIT 许可证开源。
如有问题或建议,欢迎通过以下方式联系:
- 提交 GitHub Issue
- 发送邮件至: lixiangzhenshuaiqi@163.com
如果这个项目对你有帮助,请给个 Star ⭐
持续学习,持续更新 🚀










