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 开发的同学,拿来对照着用,少走弯路。

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

相关推荐
AI产品测评官42 分钟前
AI 招聘系统的三代技术演进:从 DOM 注入到视觉语义读取的架构拆解
人工智能·架构·求职招聘
语核科技1 小时前
知识管理系统的技术选型:传统知识库与AI原生知识库的架构差异
架构·ai-native
梦奇不是胖猫2 小时前
从小餐厅 到 理解 互联网架构
架构
m0_640602444 小时前
2026 年餐饮收银系统前后端技术实现——核心架构与原理详解
后端·微服务·云原生·架构
江畔柳前堤5 小时前
AgentScope 设计与原理全解:从消息原语到分布式智能体工程底座
大数据·人工智能·分布式·目标检测·机器学习·语言模型·架构
两万五千个小时5 小时前
DeepSeek Harness 上下文压缩:长对话管理
人工智能·程序员·架构
一拳不是超人5 小时前
一个 AI 改出的 bug,另一个 AI 五天就打穿了 Snowflake:Copilot Autofix 事件给 coding agent 的警醒
架构·github
zhuyingxiao6 小时前
ChatGPT、Claude Code、Codex 能直接控制泵阀吗?AI Agent 液路监测的正确架构
人工智能·chatgpt·架构
童谣16 小时前
越华碳能:V3.0 多模态物联网碳核算微服务平台架构设计与落地实践
物联网·微服务·架构
拿本唠嗑AI研究7 小时前
现代前端架构爬虫指南:从静态页面到 React/Vue 单页应用
前端·爬虫·架构