Skip to content

sgnxOtsmiCf/SuperAgent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SuperAgent - 多智能体 AI 平台

Spring Boot Java 21 Vue 3 Spring AI License

🎓 个人学习项目 | 基于 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 (本地模型部署)

RAG 检索增强生成

  • 基于 PGVector 的向量数据库支持
  • 文档加载与向量化存储
  • 查询重写与上下文增强
  • 支持 Markdown、PDF、TXT 文档知识库
  • 完整的 RAG Pipeline 架构(查询转换、检索、增强、生成)
  • 支持 DashScope 百炼 RAG 索引

Docker 工作空间

  • 容器化环境: 每个用户拥有独立的 Docker 容器工作空间
  • 文件浏览器: 可视化文件管理,支持上传、下载、创建、删除、重命名
  • 代码编辑器: 内置文件查看器,支持代码高亮
  • WebSocket 终端: 实时交互式终端,支持命令执行与输出流
  • 资源限制: 支持内存、CPU、进程数限制
  • 持久化存储: 容器空闲超时自动清理,数据持久化到宿主机

企业级功能

  • 用户认证: 基于 Sa-Token 的权限认证体系,支持密码/手机号登录注册
  • RBAC 权限: 基于角色的权限控制,支持 26 种细粒度权限
  • 会话管理: 支持多会话、会话归档、历史消息管理
  • 聊天记忆: 支持 Redis、数据库、文件多种存储方式
  • 消息队列: RabbitMQ 异步处理会话归档
  • 定时任务: 自动归档过期会话
  • 文件存储: MinIO 对象存储支持
  • 模型管理: 多模型配置、分组管理、Token 用量监控
  • 用量统计: 用户全生命周期用量汇总、周期用量(日/周/月)、模型维度用量(部分实现中)
  • 审计日志: 完整的操作审计日志(文件操作、命令执行等)
  • 接口监控: 使用 Alibaba 的 ARMS 监控项目运行情况

智能拦截器与 Hook 机制

  • 动态模型路由: 根据任务类型自动选择最优模型
  • 提示词注入: 动态修改系统提示词
  • 工具缓存: 智能缓存工具调用结果
  • 消息修剪: 自动管理上下文窗口
  • 响应验证: 确保输出质量
  • 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+ 工作空间容器化(可选)

基础设施安装

1. MySQL 安装与配置

# 创建数据库
create database springmind default character set utf8mb4 collate utf8mb4_unicode_ci;

2. PostgreSQL 安装与配置

# 安装 pgvector 扩展
CREATE EXTENSION IF NOT EXISTS vector;

# 创建向量数据库(用于 RAG)
CREATE DATABASE springmind_vector;

3. Redis 安装

# 默认端口 6379,无密码或配置密码
# 确保 Redis 服务已启动

4. RabbitMQ 安装

# 默认端口 5672(AMQP),15672(管理界面)
# 确保 RabbitMQ 服务已启动

5. Docker 安装(可选,用于工作空间功能)

# Windows: 安装 Docker Desktop,开启 TCP 端口 2375
# Linux: 安装 Docker 并配置 daemon 监听 tcp://0.0.0.0:2375
# Mac: 安装 Docker Desktop

数据库初始化

执行主 SQL 脚本

# 使用 MySQL 命令行或客户端工具执行
mysql -u root -p springmind < sql/db.sql

📄 SQL 脚本位置:./sql/db.sql

该脚本包含 20 张核心表:

  • 用户体系: springmind_userspringmind_user_securityspringmind_user_login_log
  • 权限体系: springmind_permissionspringmind_rolespringmind_role_permissionspringmind_user_role
  • 会话体系: springmind_chat_sessionspringmind_chat_message
  • 模型管理: springmind_model_providerspringmind_modelspringmind_model_groupspringmind_model_group_relationspringmind_user_model_config
  • 用量统计: springmind_user_usage_summaryspringmind_user_usage_periodspringmind_user_model_usage_summaryspringmind_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 个模型的完整配置

从 v0.21 迁移到 v0.30(已有数据)

# 执行迁移脚本
mysql -u root -p springmind < sql/migration_v0.21_to_v0.30.sql

📄 迁移脚本位置:./sql/migration_v0.21_to_v0.30.sql

该脚本会:

  • 清空并重建权限数据(26 种权限)
  • 重建角色-权限关联
  • 创建审计日志表

配置文件

1. 创建开发环境配置

cp src/main/resources/application.yml src/main/resources/application-dev.yml

2. 配置 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

3. 配置 MCP 服务器

编辑 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"
      }
    }
  }
}

启动项目

1. 启动后端

# 使用 Maven Wrapper
./mvnw spring-boot:run

# 或打包后运行
./mvnw clean package -DskipTests
java -jar target/SuperAgent-0.0.1-SNAPSHOT.jar

2. 启动前端

cd frontend
npm install
npm run dev

3. 访问应用


项目截图

登录页面
登录页面

未登录首页
未登录首页

主界面
主界面 - AI 对话

功能菜单
功能菜单

工具展示
工具调用展示

技能系统
技能系统

模型列表
模型列表管理

模型选择
模型选择

模型参数配置
模型参数配置

用户画像
用户画像管理

会话归档
会话归档功能

工作空间
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 配置

技能系统 (Skills)

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 生成技能

API 文档

启动后访问 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 终端

配置说明

AI 模型配置 (application-dev.yml)

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

MCP 服务器配置 (mcp-servers.json)

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/files"]
    }
  }
}

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

RAG 配置

springmind:
  rag:
    enabled: true
    document:
      supported-formats: [markdown, pdf, txt]
    vector-store:
      primary-store: pgvector
    retrieval:
      top-k: 5
      similarity-threshold: 0.9

版本更新

v0.30 (当前版本)

属性 内容
版本号 v0.30
作者 sgnxotsmicf
性质 🎓 个人学习项目
描述 多智能体平台服务项目
状态 🚧 持续学习开发中

🆕 v0.30 新增功能

模块 更新内容
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 工具类

🔧 v0.30 优化改进

模块 改进内容
前端 Markdown 渲染 大幅优化 MarkdownRenderer,支持更完善的代码高亮、数学公式、表格等渲染
前端主界面 重构 MainContent 组件,优化对话交互与布局
前端侧边栏 重构 Sidebar 组件,新增工作空间入口
前端流式输出 优化 stream.js,提升流式响应稳定性
AgentMessageRenderer 优化 Agent 消息渲染,支持更丰富的消息类型展示
后端 RAG 模块 完全重构 RAG 架构,从简单流程升级为完整 Pipeline 架构
后端工具注册 优化 ToolRegistry,支持新工具动态注册
后端会话归档 优化 SessionExpireArchiveJob,修复定时任务归档 Bug
后端聊天记忆 优化 RedisSaverBatch,提升批量保存性能
后端权限安全 优化 SecurityContextHolder、UserInfoContext,增强安全上下文传递
后端模型兼容 优化 ChatClientFactory,提升多模型兼容性
后端拦截器 重构 InterceptorRegistry,优化拦截器链管理
删除无用测试 清理大量无用测试文件,减少项目体积
代码优化 优化前端代码结构,删除无用测试文件

📸 v0.30 新增截图

新增工作空间页面截图,展示 Docker 容器化文件浏览器、代码编辑器和 WebSocket 终端。


v0.20

属性 内容
版本号 v0.20
作者 sgnxotsmicf
性质 🎓 个人学习项目
描述 智能体平台服务项目
状态 ✅ 已归档

🆕 v0.20 新增功能

模块 更新内容
模型管理系统 新增 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 实体,完善消息消费与失败重试机制

🔧 v0.20 优化改进

模块 改进内容
前端 Markdown 渲染 大幅优化 MarkdownRenderer,提升代码高亮、数学公式等渲染效果
前端主界面 重构 MainContent 组件,优化对话交互与布局
前端登录页 重构 LoginDialog,整合登录/注册流程,优化表单交互
后端流式输出 修复前端流式输出及工具调用的稳定性问题
后端权限安全 修复后端权限漏洞,优化前后端交互安全
后端推理持久化 修复推理内容无法持久化的问题
后端模型兼容性 修复多模型兼容性问题
ReAct 线程安全 修复手写 ReAct 的线程安全问题
Sa-Token 流式 解决 Sa-Token 流式输入异常问题
RabbitMQ 功能 完善 RabbitMQ 相关功能

v0.10

属性 内容
版本号 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 许可证开源。


联系方式

如有问题或建议,欢迎通过以下方式联系:


如果这个项目对你有帮助,请给个 Star ⭐

持续学习,持续更新 🚀

About

Spring Ai、Spring Ai Alibaba和Spring Boot3构建的前后端Ai智能体应用

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors