Agent实战 #01:Dream-SaaS 整体架构拆解

28 个 Java 模块 + 5 个独立部署 App,4C8G 单机全链路架构拆解

一、架构总览

Dream-SaaS 是一个双语言微服务架构的 AI Agent 平台。Java 负责业务逻辑与 API 治理,Python 负责 AI 编排与重计算,整体分为 6 层:


二、技术栈与版本

2.1 Java 侧

技术 版本 说明
JDK 21 全模块统一
Spring Boot 3.5.5 核心框架
Spring Cloud 2025.0.0 Northfields,对齐 Boot 3.5
Spring Cloud Alibaba 2025.0.0.0 Nacos 注册配置中心
Spring AI 1.1.6 AI 能力抽象(ChatClient / Advisor / Tool Calling / VectorStore)
Spring AI Alibaba 1.1.2.2 通义 DashScope 集成 + Graph 编排 + ReactAgent + MCP
MyBatis-Plus 3.5.14 ORM
Redisson 3.40.2 分布式锁与缓存
springdoc-openapi 2.8.16 API 文档
java-jwt 4.4.0 JWT 令牌
RocketMQ Spring Boot 2.3.1 消息队列
Apache POI 5.4.0 Office 文件处理
Fastjson2 2.0.61 JSON 序列化
Hutool 5.8.43 工具集
PostgreSQL JDBC 42.7.3 数据库驱动
MySQL Connector/J 8.0.33 数据库驱动

2.2 Python 侧

技术 版本 说明
Python 3.10+ 编排层运行时
FastAPI 0.115.0 异步 Web 框架,原生 SSE 流式支持
LangGraph 0.2.0 图编排引擎(对应 Java 侧 Spring AI Alibaba Graph)
LiteLLM 1.55.0 统一 LLM 调用,一个接口切换 100+ 模型
OpenAI SDK 1.55.0 DashScope 兼容模式直连
instructor 1.7.0 LLM 结构化输出(自动反序列化到 Pydantic Model)
Pydantic Settings 2.6.0 配置管理(.env + 环境变量自动映射)
MCP SDK 1.2.0 Model Context Protocol(stdio 工具进程)

2.3 前端

技术 版本 说明
Vue 3.5.13 渐进式前端框架
Element Plus 2.9.4 UI 组件库
Vite 6.0.7 构建工具
SPA 单页应用 --- 所有前端均采用 SPA 模式

2.4 基础设施

组件 用途
PostgreSQL + pgvector 向量存储与检索
Redis 缓存、会话、分布式锁
MySQL 业务数据持久化
RocketMQ 异步事件通知(如内容任务生命周期)
Nginx HTTPS 终端 + 静态资源 + 反向代理

2.5 选型决策

决策 原因
Spring Cloud 2025.0 与 Boot 3.5 同代,配套 Nacos 实现服务注册与配置管理
Spring AI + Alibaba 原生 Spring 生态的 AI 抽象层,DashScope 直通通义模型
FastAPI + LangGraph Python 侧高性能 Web 框架 + 成熟的图编排能力
pgvector 复用 PostgreSQL,不额外引入向量数据库,降低运维成本
单机 4C8G 先跑通全链路验证架构,再按需横向扩展

2.6 Java / Python 分工原则

双语言不是重复造轮子,而是各取所长:

放在 Java 放在 Python
API 网关、鉴权、配额管控 LLM Tool Calling 深循环
数据库 CRUD、事务管理 Web 搜索、网页爬取
向量 Schema 管理、RAG 检索 Prompt 快速迭代与编排
Graph 声明式编排(复杂分支 / HITL) 内容 Pipeline、定时批处理
MCP Server 聚合暴露 MCP stdio 工具进程
Feign 服务间调用 多模型 A/B 测试(LiteLLM)

三、前端架构

前端采用 Vue3 + Vite 构建,共有 4 个独立前端应用,全部由 Nginx 托管静态资源:

前端应用 路由路径 说明
主站 / 项目主入口
companion SPA /companion/ AI 搭子交互界面
study-admin /study-admin/ 学习助手管理后台
content-admin /content-admin/ 内容管理后台

Nginx 同时承担 HTTPS 终端(Let's Encrypt 证书)、HTTP→HTTPS 重定向、安全响应头(HSTS / X-Content-Type-Options / X-Frame-Options)以及静态资源服务。API 请求通过 Nginx 反向代理分发到后端各服务。


四、网关层

采用 Nginx + Java Gateway 双层网关设计:

  • Nginx:HTTPS 终端、静态资源托管、反向代理路由分发
  • Java Gatewaydream-ai-gateway,:8090):统一鉴权、限流、配额管控,以及通过 Feign 调用后端服务

Nginx 按 URL 路径前缀将请求路由到不同后端服务,未匹配的请求兜底到 Gateway 统一接管。


五、业务层

5.1 五个独立部署的 Java App

服务 端口 职责
dream-ai-gateway 8090 API 网关 + Agent 对话入口
dream-ai-code-review 8095 代码审查 Agent
dream-ai-rag 8096 RAG 向量检索服务
dream-ai-agent-content 8097 内容管理(Content OS)
dream-ai-agent-companion 8098 AI 搭子 + 学习助手 Java 侧

五个 App 生命周期独立,可分别启停、独立扩缩容。其中 agent-study(学习助手)Java 侧模块编译时嵌入 agent-companion App 中,不单独部署,其核心 AI 编排逻辑在 Python 侧(:8001)执行。

5.2 电商业务域 Agent(dream-ai-agent-business)

业务域 职责
fulfillment 履约 Agent(订单、物流、退款、售后)
seller 卖家服务 Agent
ticketmgmt 工单管理 Agent

每个业务域遵循统一的 Java 包结构规范:graph(图编排节点定义)→ integration/feign(外部服务调用)→ service(业务逻辑)→ web(REST API 入口)→ trace(链路追踪埋点)。这是模块内的目录分层约定,确保各业务域代码结构一致、可维护。


六、Agent 核心层(Java)

6.1 核心模块与 Spring AI 能力

模块 职责
dream-ai-agent-core Agent 框架核心(基类、生命周期、工具注册)
dream-ai-agent-runtime Agent 运行时管理
dream-ai-agent-chat 对话管理与会话记忆
dream-ai-agent-skills 技能与工具注册中心
dream-ai-agent-platform 平台管理(用户、配额、系统配置)

核心层基于 Spring AI 1.1.6 构建,关键能力:

  • ChatClient:高层 Fluent API,封装 LLM 调用全流程(Advisor 链 → Tool 自动循环 → 结构化输出),日常开发首选入口
  • Advisor 拦截器链 :类似 Spring MVC Filter,在 LLM 调用前后插入逻辑。内置 QuestionAnswerAdvisor(RAG 检索注入)、MessageChatMemoryAdvisor(会话记忆)、SafeGuardAdvisor(安全过滤)等,支持自定义扩展
  • Tool Calling :通过 @Tool / @ToolParam 注解声明工具,ChatClient 自动完成 ReAct 循环(Think → 选 Tool → 执行 → Observe → 循环至最终回答)
  • ChatModel 装饰器 :生产环境多层包装,如 InstrumentingTraceChatModel(Trace 追踪)→ RecoveryInstrumentingChatModel(自愈重试)→ 基础模型

6.2 AI Agent 能力模块

模块 职责
dream-ai-agent-content 内容创作 Agent
dream-ai-agent-companion AI 搭子 Agent
dream-ai-agent-study 学习助手 Agent
dream-ai-agent-bi BI 数据分析 Agent
dream-ai-agent-business 电商业务域 Agent
dream-ai-agent-bug 缺陷管理 Agent
dream-ai-agent-memory 记忆管理 Agent
dream-ai-agent-repo 仓库管理 Agent
dream-ai-agent-tech 技术文档 Agent
dream-ai-agent-ragdoc RAG 文档处理
dream-ai-agent-userhelp 用户帮助 Agent

6.3 图编排(Spring AI Alibaba Graph)

模块 职责
dream-ai-graph 图编排引擎,作为共享库被 Gateway 和各业务 App 依赖,负责 Agent 节点编排与状态流转。不是独立部署的服务,而是嵌入到调用方的类库

dream-ai-graph 基于 Spring AI Alibaba 的 Graph 引擎构建,核心概念:

  • StateGraph (声明式图定义)→ CompiledGraph (编译后可执行),支持三种边类型:顺序边、并行边(CompletableFuture.allOf 并发执行)、条件边(路由函数动态分支)
  • OverAllState:全局状态黑板,各节点读写共享状态
  • CheckpointSaver (基于 Redisson):状态持久化,支持 HITL(Human-in-the-loop)------图执行到人工审核节点时暂停,审核通过后携带 threadId 从中断点恢复
  • Supervisor 多子图模式:意图路由节点将请求分发到不同子图(如通用对话子图、代码审查子图、RAG 问答子图),子图可作为节点嵌入主图
  • SSE 流式协议run.start → node.end → message.delta → message.done,前端可实时展示执行进度与 LLM 增量输出

此外,Spring AI Alibaba 还提供 ReactAgent (ReAct 模式:Think → Tool → Observe 循环)和 多 Agent 编排(SequentialAgent / ParallelAgent / RoutingAgent),用于更复杂的 Agent 协作场景。

6.4 MCP 模块(5 子模块)

子模块 职责
dream-saas-mcp-client MCP 客户端,调用外部 MCP 服务
dream-saas-mcp-common MCP 公共定义
dream-saas-mcp-registry MCP 服务注册中心
dream-saas-mcp-server MCP 服务端,暴露工具给外部
dream-saas-mcp-spi MCP SPI 扩展点

6.5 跨语言协作模式

Java 与 Python 两层之间通过四种模式协作:

模式 说明 典型场景
HTTP REST Python httpx → Java Internal API 会话读写、数据持久化
SSE 直通 Nginx → Python 流式响应 搭子/学习助手的实时对话
共享数据库 Java/Python 各读写自己的 Schema 向量数据、业务表
消息队列 RocketMQ 事件通知 内容任务生命周期、异步解耦

Python 侧通过 core/nacos_integration.py 接入 Nacos 注册中心,与 Java 侧共享服务发现,实现统一的服务治理。


七、Java 模块全景(28 个模块)

28 个模块按职责分为 8 个分类,明细如下:

分类 模块名 小计
基础设施 dream-ai-common 1
Agent 核心 agent-coreagent-runtimeagent-chatagent-skillsagent-platform 5
业务域 Agent agent-contentagent-companionagent-studyagent-biagent-businessagent-bugagent-memoryagent-repoagent-techagent-ragdocagent-userhelp 11
图编排 dream-ai-graph 1
独立服务 gatewaycode-reviewragtest 4
MCP 协议栈(5) mcp-clientmcp-commonmcp-registrymcp-servermcp-spi(详见 6.4 节) 5
前端 dream-ai-content-admin 1
Python 桥接 dream-ai-python(Java 侧 Python 进程的配置入口与启动管理) 1
合计 28

补充说明: 另有根工程 dream-saas 下的 dream-saas-coredream-saas-gatewaydream-saas-edgedream-saas-commondream-saas-cachedream-saas-message 等业务基座模块,提供跨项目的公共能力(缓存、消息、通用实体等)。这些基座模块属于平台底座,未计入上述 28 个 AI 业务模块。

上表中 test 模块为运维守护进程,部署方式详见第八节。


八、部署拓扑(4C8G 单机)

关于 dream-ai-test:该模块作为运维守护进程常驻,由 Systemd 管理,负责每 10 分钟健康检查和异常自动拉起。不暴露 API 端口,不参与业务请求,因此不在上述 5 个业务 App 之列。

公网域名:https://www.dream-saas.com,已备案,HTTPS + HTTP/2。


九、关键设计决策

决策 原因
5 个独立 App 部署 Gateway / CodeReview / RAG / Content / Companion 生命周期独立,互不影响
Nginx 直路由 + Gateway 兜底 性能敏感路径直达后端,其余走 Gateway 统一治理
MCP 完整协议栈 5 个子模块分层设计(详见 6.4 节),Java 侧聚合暴露、Python 侧 stdio 进程,通过标准协议互通
跨语言四种协作模式 HTTP REST / SSE 直通 / 共享数据库 / RocketMQ,按场景选用而非一刀切
RocketMQ 异步解耦 内容任务通过消息队列异步通知,避免同步调用阻塞
pgvector 而非独立向量库 复用 PostgreSQL,降低运维复杂度
4C8G 单机部署 成本优先,验证架构可行性后再横向扩展
Gateway 不依赖业务 App 网关只依赖 dream-ai-agent-platform(平台管理模块,负责用户鉴权、配额等),不依赖 content / companion / study 等业务 App,保证网关与业务解耦

十、小结

Dream-SaaS 的架构设计体现了几个核心思路:

  1. 分层清晰、各司其职:前端 → 网关 → 业务 → Agent 核心 → Python 编排 → 基础设施,6 层边界明确
  2. 5 个独立 App 解耦:Gateway / CodeReview / RAG / Content / Companion 生命周期独立,可分别启停
  3. MCP 协议栈分层:5 个子模块覆盖完整链路,对外暴露工具、对内注册服务
  4. 网关轻、业务重:Nginx + Gateway 只做鉴权限流路由,不碰业务逻辑
  5. 单机先行、成本可控:4C8G 跑通全链路,验证后再扩展

项目地址dream-saas.com

系列文章 :Agent 实战 #01

技术栈:Spring Boot 3.5.5 + Spring Cloud 2025.0 + Spring Cloud Alibaba 2025.0.0.0 + Spring AI 1.1.6 + Spring AI Alibaba 1.1.2.2 + FastAPI + LangGraph + PostgreSQL/pgvector


📎 附:配套资料

本文涉及的技术栈版本对照、Spring AI 核心接口用法、Graph 编排代码示例、Python 编排层速查、Java↔Python 语法对照表等内容,我整理了一份 《Agent 开发技术栈扩展参考手册》,覆盖从 Spring Cloud 微服务到 Python AI 编排栈的完整知识链路。

获取方式:关注作者,私信"Agent手册"即可获取。

适合正在从传统 Java 后端转型 Agent 开发的同学,拿来对照着用,少走弯路。

有问题评论区见,欢迎交流~

相关推荐
@insist1231 小时前
系统规划与管理师-计算与存储资源规划核心考点解析
架构·软考·系统规划与管理师·软件水平考试·系统规划与管理工程师
国科安芯1 小时前
基于ASM1042S2S的箭载通信网络抗辐射加固方案研究
服务器·网络·嵌入式硬件·fpga开发·架构·信号处理
AI 大模型学习不踩坑1 小时前
Harness 架构原理与工程实践详解
java·人工智能·神经网络·机器学习·计算机视觉·架构
磐链科技1 小时前
链游技术服务全景透视:从基建到工具链的实战指南
架构·web3·区块链
小明bishe1811 小时前
计算机毕业设计之基于JAVA的植物科普网站
java·spring boot·spring·架构·课程设计
聪明的一休丶12 小时前
VLLM v0.24.0 版本深度解析:新引擎、新架构与大规模服务全家桶升级
python·架构·vllm
数据库小学妹14 小时前
KES是什么?国产数据库技术架构、核心能力与选型实战解析
数据库·经验分享·架构·国产数据库·数据库选型·信创数据库
北冥you鱼15 小时前
Gin 架构在区块链应用中的最佳实践
架构·区块链·gin
会写代码的建筑师18 小时前
C# 源生成器使用方法
后端·架构