前言承接 Day4 对 conversation 对话模块应用层的完整拆解本篇作为 Day5 内容我们深入项目的 AI 核心业务域覆盖普通 AI 对话模块与Agent 智能体模块两大业务载体。两大模块完全复用同一套 DDD 领域驱动设计与六边形架构方法论从分层结构、端口设计到解耦思想高度统一同时针对各自业务特性做了差异化的架构演进普通 AI 模块聚焦多模型适配与流式对话能力Agent 模块扩展智能体路由、文件资产、标签体系等复杂业务能力。本篇将从整体架构对齐、领域层建模与持久化、大模型对接设计、流式核心技术、协议扩展方案五个维度完整解析这套企业级 AI 系统的架构落地实践。一、两大业务模块的整体架构对齐AI 对话模块与 Agent 智能体模块采用完全一致的分层架构范式均严格遵循 DDD 分层与六边形架构思想业务核心与技术实现彻底解耦。统一的五层架构表格层级定位核心职责api 接口层对外 HTTP 入口请求接入、参数封装、响应返回按业务域垂直拆分控制器application 应用层业务策略编排通用业务能力编排、智能体路由解析、场景绑定策略dao 领域层领域模型 仓储端口定义核心业务实体、数据访问抽象契约是业务的核心载体infrastructure 基础设施层技术适配器对接 MySQL / MongoDB 异构存储、大模型 SDK 等外部技术实现端口接口service 服务层业务逻辑实现各业务域的逻辑编排、规则校验、流程调度接口与实现分离模块差异化设计普通 AI 对话模块聚焦基础对话能力结构轻量化三大业务域垂直拆分会话管理、消息交互、属性配置从 Controller 到 Entity 一一对应核心特色chat 子包的 AI 聊天处理器体系基于策略模式实现多模型厂商适配存储方案结构化配置数据存 MySQL海量消息数据存 MongoDB异构存储匹配业务特性Agent 智能体模块在基础对话能力之上扩展智能体专属能力架构更丰富五大业务域会话、消息、文件资产、属性配置、标签体系业务边界划分更细核心特色application 层独立的智能体解析器体系AgentResolver基于策略模式实现业务场景到智能体的动态匹配扩展能力支持文件上传与资产管理、标签分类与检索、多场景智能体路由适配更复杂的智能体业务形态架构统一的价值认知成本低团队掌握一套方法论即可理解所有业务模块开发与维护效率高能力复用强消息序号、所有权校验、流式支撑、认证鉴权等通用基础设施全部复用不重复建设迭代效率高新增业务域只需遵循同一套架构范式快速扩展全项目架构一致性强二、领域层建模与 MongoDB 持久化适配领域层是业务的核心载体两大模块均采用「实体 仓储端口」的标准 DDD 设计同时基于 Spring Data MongoDB 实现文档型数据库的持久化映射完美适配 AI 业务字段灵活、迭代快的特性。核心领域实体设计以 AiConversation 为例AiConversation是 AI 会话的聚合根实体对应 MongoDB 的ai_conversation集合贯穿对话创建、消息交互、历史查询全生命周期。字段设计亮点索引精准覆盖业务查询Id标注物理主键对应 MongoDB 原生_id字段sessionId加唯一索引保证业务主键全局唯一是全链路的核心关联键username、aiId加普通索引分别支撑用户会话列表、按配置筛选两大高频查询场景 索引设计克制且高效没有过度索引也无关键查询缺索引。冗余字段换查询性能messageCount消息总数、lastMessageTime最后消息时间均为冗余设计字段避免会话列表查询时关联消息表做 count 统计与排序用极小的存储成本大幅提升列表接口性能是读多写少场景的经典优化思路。全链路审计与软删除CreatedDate、LastModifiedDate注解自动填充创建与更新时间无需业务代码手动维护delFlag逻辑删除标记采用软删除机制兼顾用户删除体验与数据追溯、合规审计需求。Spring Data MongoDB 注解体系通过注解驱动的对象 - 文档映射ODM将 Java 实体与 MongoDB 集合自动映射是持久化适配器的核心技术Document类级别注解声明实体为 MongoDB 文档指定映射的集合名Indexed字段级别注解声明普通索引或唯一索引项目启动时自动创建CreatedDate/LastModifiedDate审计注解配合审计功能自动填充时间字段Transient标记临时字段不持久化到数据库架构意义所有持久化注解全部标注在领域实体上但本质属于基础设施层的技术配置。业务层、应用层完全感知不到这些注解的存在通过仓储端口接口隔离技术细节 —— 更换存储方案只需替换实体注解与适配器实现业务逻辑零改动严格遵循依赖倒置原则。三、大模型对接策略模式 工厂模式的经典落地大模型对接是 AI 系统的核心外部依赖项目采用「策略接口 工厂路由 通用实现」的架构将多模型厂商的差异彻底封装在基础设施层业务核心完全不感知具体模型厂商。三层架构设计1. 策略接口AiChatHandler定义聊天处理器的标准能力契约是业务侧定义的统一标准getType()返回处理器类型标识用于工厂匹配路由streamToSink()核心流式对话方法统一定义入参配置、用户消息、历史消息、流接收器、内容累加器与异常规范 所有模型实现都遵循同一套接口上层业务只面向接口编程。2. 工厂路由AiChatHandlerFactory封装「AI 类型 → 处理器实现」的映射逻辑统一收口处理器选择上层业务只需传入模型类型即可获取对应处理器预留扩展位新增大模型厂商只需新增实现类并补充路由规则上层业务零改动3. 通用实现UniversalAiChatHandler基于 Spring AI 框架实现支持所有兼容 OpenAI 协议的模型特殊适配 DeepSeek是当前的默认实现。 核心能力多模型客户端构建根据配置动态构建 DeepSeek 或通用 OpenAI 客户端透传模型名、最大 Token、项目 ID 等参数最终统一封装为标准ChatClient上下文自动构建按「系统提示词 → 历史消息 → 当前用户消息」标准顺序组装大模型上下文流式 累加双输出每接收一个分片一边通过 sink 实时推送给前端保证体验一边写入累加器拼接完整内容用于最终落库推理内容双层兼容通过「反射调用 元数据兜底」两层逻辑适配不同厂商推理内容字段位置的差异兼容性极强核心技术异步转同步桥接Spring AI 的流式调用是异步响应式模式而上层业务执行骨架是同步流程通过CountDownLatch 异常数组实现桥接CountDownLatch(1)同步闭锁主线程调用await()阻塞等待流式完成或异常时调用countDown()释放实现异步转同步final Throwable[1]异常传递容器用数组绕开 Lambda 变量捕获的语法限制将异步线程的异常传递到主线程统一抛出5 分钟超时兜底避免模型挂死、网络异常导致线程永久阻塞架构价值通过策略模式彻底解耦业务与大模型技术更换模型厂商、升级 SDK 都不会冲击核心业务流程完全符合六边形架构「外部技术可插拔」的设计思想。四、流式对话核心技术与协议扩展流式输出是 AI 对话的核心体验项目当前基于 WebSocket 实现实时双向推送同时架构上天然支持 SSE 等多种流式协议的无缝扩展。当前 WebSocket 方案配合ConversationStreamingSupport流式执行骨架实现全链路的流式对话编排先存后调先持久化用户消息再调用大模型保证数据不丢失双层异常兜底外层捕获全链路异常内层异常落库再做独立异常隔离保证服务可用性统一时序基于消息序号服务保证全局消息有序解决流式分片乱序问题SSE 流式对话扩展方案SSEServer-Sent Events是基于 HTTP 长连接的单向推送方案对于普通 AI 对话场景是比 WebSocket 更轻量、兼容性更好的选择。SSE vs WebSocket表格维度SSEWebSocket协议HTTP 长连接单向推送全双工协议双向通信基础设施兼容性极好兼容所有网关、CDN一般部分代理 / 防火墙会拦截自动重连浏览器原生支持需自行实现重连与状态恢复适用场景普通 AI 流式回复智能体双向交互、工具调用架构无缝扩展基于现有六边形架构新增 SSE 支持完全不需要改动核心业务逻辑核心业务层、流式执行骨架、大模型对接体系全部复用零改动仅需在 Web 适配层新增 SSE 推送适配器替换 WebSocket 推送通道消息格式与前端解析逻辑完全复用一套代码兼容多种协议五、架构设计思想总结从普通 AI 模块到 Agent 智能体模块整套架构始终贯穿着统一的设计方法论这也是企业级项目和普通项目的核心区别。DDD 分层 六边形架构业务核心在内技术细节在外通过端口接口隔离所有外部依赖。业务定义契约技术去实现契约依赖方向严格倒置。策略模式解耦易变逻辑大模型对接、智能体路由这些易变的技术与策略逻辑全部通过策略模式抽离独立与稳定的主业务流程解耦符合开闭原则。异构存储匹配业务特性结构化、低量级数据存 MySQL海量、非结构化、字段灵活的数据存 MongoDB不同数据特性匹配最优存储方案同时通过仓储端口屏蔽底层差异。通用能力沉淀复用认证鉴权、消息序号、所有权校验、流式执行骨架等通用能力全部沉淀为基础设施所有业务模块复用避免重复建设。结语AI 业务的核心特点是技术迭代快、需求变更频繁、模型厂商多。这套架构通过分层解耦、端口抽象、策略封装将易变的技术部分全部隔离在基础设施层保证了业务核心的稳定性与可扩展性。从 Day4 的对话通用能力到 Day5 的 AI 与 Agent 业务模块我们能清晰看到同一套架构方法论从通用基建到业务落地的完整贯穿。理解这套设计思想后无论是新增模型厂商、扩展智能体能力还是新增流式协议都能快速找到架构落点做到「万变不离其宗」。