# SuperBizAgent-java 功能分析报告 > 分析日期:2026-05-30 > 分析站点:http://localhost:9900 > 分析工具:Playwright MCP --- ## 📊 项目概览 这是一个**智能 OnCall 助手**系统,基于 Spring AI + DeepSeek V4 Flash + BGE-M3 向量化 + Zilliz Cloud (Milvus) 构建的 AIOps 平台。 **核心定位**:为运维/SRE 团队提供 7×24 小时智能告警分析和问题诊断能力。 --- ## ✨ 核心功能模块 ### 1️⃣ 智能对话系统 **界面特点**: - 清爽的聊天界面 - 左侧:会话管理(新建对话、近期对话列表) - 右侧:对话区域 + AI Ops 快捷按钮 **能力列表**: | 能力 | 说明 | 工具支持 | |------|------|---------| | 📅 时间与日期 | 获取当前日期和时间 | ✅ | | 🌤️ 天气查询 | 查询天气信息 | ⚠️ 当前工具集未配置 | | 📚 内部知识库搜索 | 搜索公司文档、流程、最佳实践、技术指南 | ✅ RAG (Milvus) | | ⚠️ Prometheus 告警查询 | 查询监控系统告警信息 | ✅ | | 📋 腾讯云日志查询 | 查询 CLS 日志(系统指标、应用日志、慢查询、系统事件) | ✅ | **交互特性**: - 流式对话响应(SSE) - Markdown 渲染支持 - 代码高亮(highlight.js) - 快速/标准模式切换 --- ### 2️⃣ AI Ops 自动化分析 ⭐️ **触发方式**:点击右上角橙色 "AI Ops" 按钮 **功能流程**: ```mermaid graph LR A[点击 AI Ops] --> B[SSE 流式响应] B --> C[读取 Prometheus 告警] C --> D[关联多源数据] D --> E[LLM 根因分析] E --> F[生成结构化报告] ``` **实际分析案例**(从 2026-05-30 12:57:36 响应提取): ```markdown 📋 告警分析报告 活跃告警清单: ┌─────────────────┬──────────┬──────────────────┬──────────────────────┬──────┐ │ 告警名称 │ 级别 │ 目标服务 │ 首次触发时间 │ 状态 │ ├─────────────────┼──────────┼──────────────────┼──────────────────────┼──────┤ │ HighCPUUsage │ WARN │ payment-service │ 2026-05-30 12:32:40 │ 活跃 │ │ HighMemoryUsage │ CRITICAL │ order-service │ 2026-05-30 12:42:40 │ 活跃 │ │ SlowResponse │ WARN │ user-service │ 2026-05-30 12:47:40 │ 活跃 │ └─────────────────┴──────────┴──────────────────┴──────────────────────┴──────┘ 🔍 告警根因分析1 - HighMemoryUsage (order-service) — CRITICAL 症状描述: - JVM 堆内存使用率持续攀升:3.4GB → 3.8GB(4GB上限),当前 91% - 近 10 分钟内触发 15 次 Full GC,平均耗时 850ms,内存回收效果越来越差 - OOM Killer 已触发杀死进程(退出码 137,Pod 已重启 3 次) - 数据库连接池耗尽:active=50/50,waiting=23 个线程 - 消息队列 order-process-queue 积压 15,823 条消息 日志证据: ```java 2026-05-30 20:45:52 FATAL order-service: java.lang.OutOfMemoryError: Java heap space at com.example.order.service.OrderService.processLargeOrder(OrderService.java:156) StackTrace: OrderService.processLargeOrder -> OrderRepository.findByCondition -> HikariPool.getConnection ``` 根因结论: order-service 的 `OrderService.processLargeOrder()` 方法存在内存泄漏。 该方法在处理大批量订单时,将过多数据加载到 JVM 堆中未及时释放,导致: → JVM 堆内存持续膨胀至满 → 频繁 Full GC 但无法回收 → OutOfMemoryError → OOM Killer 杀死进程 → Pod 重启(已 3 次) → 数据库连接在 OOM 过程中未能正常归还连接池 → 连接池耗尽 → 消息队列消费进程也被 OOM/Kill 影响 → 队列积压 1.5 万+ 条消息 🔍 告警根因分析2 - HighCPUUsage (payment-service) — WARN 症状描述: - CPU 使用率 92%,进程全部为 Java,线程数 245 - 1 分钟负载 3.82,5 分钟负载 3.65(4 核容器已严重过载) - Redis 连接持续超时(重试 3 次仍失败) 系统指标: ``` 2026-05-30 20:57:52 WARN payment-service: CPU使用率 92%, 线程数 245, load_1m=3.82, load_5m=3.65 (4核) ``` ``` **分析深度**: - ✅ 自动关联告警、日志、指标、系统事件 - ✅ 提取关键证据(OOM 日志、堆栈跟踪、系统事件) - ✅ 推理根因链路(内存泄漏 → Full GC → OOM → Pod 重启 → 连接池耗尽) - ✅ 识别级联影响(消息队列积压) --- ### 3️⃣ 会话管理 - **新建对话**:快速开始新一轮交互 - **近期对话列表**:保留历史会话 - **删除对话**:清理无用会话 --- ## 🏗️ 技术架构 ### 后端技术栈 根据 `devflow/projects/2026-05-29-chatmodel-abstraction` 文档分析: | 组件 | 技术选型 | 说明 | |------|---------|------| | **Chat 模型** | DeepSeek V4 Flash | Spring AI 原生 starter | | **Embedding** | SiliconFlow BGE-M3 | OpenAI 兼容模式,1024 维向量 | | **向量数据库** | Zilliz Cloud (Milvus) | 存储知识库向量,collection: `biz` | | **Web 框架** | Spring Boot | - | | **AI 框架** | Spring AI 1.1.7 | ChatModel/EmbeddingModel 抽象 | | **MCP 工具集成** | ToolCallbackProvider | 可选(支持 enabled: false) | | **日志服务** | 腾讯云 CLS | 系统指标、应用日志、慢查询、系统事件 | | **监控系统** | Prometheus | 告警查询 | **架构亮点**(2026-05-29 重构成果): - ✅ 面向 Spring AI 抽象接口编程(`ChatModel`、`EmbeddingModel`) - ✅ yml 配置驱动模型路由(`ModelRoutingConfig`) - ✅ 多厂商并存(DeepSeek + SiliconFlow) - ✅ 换模型只需改配置,无需改代码 ### 前端技术栈 根据浏览器分析: | 组件 | 技术 | |------|------| | **UI 风格** | 简洁对话式界面 | | **渲染** | Markdown + highlight.js (代码高亮) | | **通信** | SSE (Server-Sent Events) 流式响应 | | **图标** | 自定义 SVG 图标 | | **响应式** | 左侧固定 240px,右侧自适应 | ### API 端点 根据网络请求分析: | 端点 | 方法 | 说明 | 响应格式 | |------|------|------|---------| | `/api/ai_ops` | POST | AI Ops 自动化分析 | `text/event-stream` | | `/api/chat` | POST | 普通对话(推测) | `text/event-stream` | | `/api/sessions` | GET | 会话管理(推测) | JSON | **SSE 数据格式**(从日志提取): ``` event:message data:{"type":"content","data":"正在读取告警并拆解任务...\n"} event:message data:{"type":"content","data":"📋 **告警分析报告**\n\n"} ``` --- ## 🐛 发现的问题 ### 1. favicon 404 ``` [ERROR] Failed to load resource: the server responded with a status of 404 () @ http://localhost:9900/favicon.ico:0 ``` **影响**:浏览器标签页无图标,控制台 1 条错误 **建议**:添加 `src/main/resources/static/favicon.ico` ### 2. CDN 资源加载失败 ``` [GET] https://cdn.jsdelivr.net/npm/highlight.js@11.9.0/es/highlight.min.js => [FAILED] net::ERR_BLOCKED_BY_ORB ``` **影响**:代码高亮功能可能失效 **建议**: - 方案 1:下载 highlight.js 到本地 `/static/js/` - 方案 2:更换 CDN(unpkg、cdnjs) - 方案 3:改用非 ES Module 版本 --- ## 💡 核心价值主张 ### 🎯 解决的痛点 | 传统运维 | 智能 OnCall 助手 | |---------|---------------| | 凌晨告警,登录多个系统查看 | AI Ops 一键获取根因报告 | | 翻查日志、指标,手动关联 | 自动关联多数据源,提取证据 | | 新人不熟悉排查流程 | 内置最佳实践,知识库搜索 | | 人工推理耗时 15-30 分钟 | LLM 推理 3 分钟内完成 | ### 🚀 典型使用场景 **场景 1:凌晨告警快速响应** ``` 03:15 收到 PagerDuty 告警 → 打开 localhost:9900 → 点击 "AI Ops" → 3 分钟内获得根因 + 修复建议 + 证据链 → 执行修复并记录 ``` **场景 2:知识库查询** ``` "搜索一下发布流程的文档" → RAG 从 Milvus 检索相关文档 → DeepSeek 生成友好回答 ``` **场景 3:日志关联分析** ``` "order-service 最近有 OOM 吗?" → 查询腾讯云 CLS 系统事件日志 → 关联应用日志 → 提取关键堆栈跟踪 ``` --- ## 📂 相关代码文件 推荐查看以下关键文件了解实现细节: ``` src/main/java/org/example/controller/ChatController.java # 对话 API src/main/java/org/example/service/AiOpsService.java # AI Ops 核心逻辑 src/main/java/org/example/service/ChatService.java # 聊天服务 src/main/java/org/example/service/RagService.java # RAG 知识库 src/main/java/org/example/service/VectorEmbeddingService.java # 向量化 src/main/java/org/example/config/ModelRoutingConfig.java # 模型路由 src/main/java/org/example/config/SiliconFlowEmbeddingConfig.java # BGE-M3 配置 src/main/resources/application.yml # 配置中心 ``` --- ## 🔬 测试验证 ### 已验证功能 | 功能 | 测试结果 | |------|---------| | 页面加载 | ✅ 正常 | | AI Ops 自动分析 | ✅ 正常(56s 完成分析) | | 对话交互 | ✅ 正常(流式响应) | | Markdown 渲染 | ✅ 正常(标题、列表、代码块、引用) | | 会话管理 | ✅ 正常(新建、删除) | ### 冒烟测试套件 根据 `src/test/java/org/example/service/` 存在以下测试: ``` ChatAndEmbeddingSmokeTest.java # Chat + Embedding 冒烟测试(5/5 ✅) FullPipelineSmokeTest.java # 全流程冒烟测试(5/5 ✅) ``` --- ## 📈 未来改进建议 ### 功能增强 1. **告警自动修复**:从根因分析 → 生成修复脚本 → 执行(需人工确认) 2. **历史告警学习**:建立告警-根因知识库,加速后续分析 3. **多租户支持**:不同团队隔离数据 4. **移动端适配**:PWA,支持推送通知 ### 性能优化 1. **缓存热点查询**:Prometheus 告警缓存 5 分钟 2. **流式响应优化**:SSE 心跳保持连接 3. **向量检索加速**:Milvus IVF_FLAT → HNSW ### 可观测性 1. **分析耗时追踪**:各环节耗时(告警查询、日志查询、LLM 推理) 2. **准确率监控**:根因分析准确率 3. **用户反馈**:👍/👎 评价系统 --- ## 📊 技术指标 | 指标 | 数值 | |------|------| | **响应时间** | AI Ops 分析 56s(含多源数据查询 + LLM 推理) | | **向量维度** | 1024(BGE-M3) | | **知识库规模** | Milvus collection `biz`(具体条数未知) | | **并发能力** | SSE 流式,支持多用户(未压测) | | **模型** | DeepSeek V4 Flash(快速模式) | --- ## 🎓 总结 **SuperBizAgent-java** 是一个生产级的智能运维助手,核心亮点在于: 1. **真正的 AI Ops**:不是简单的告警查询,而是多源数据关联 + LLM 根因推理 2. **工程化良好**:Spring AI 抽象、配置驱动、模型可切换 3. **用户体验优秀**:流式响应、Markdown 渲染、一键分析 4. **可扩展性强**:MCP 工具集成、RAG 知识库、多厂商模型 **适用场景**:中大型公司 SRE/运维团队的 7×24 小时智能值守。 --- > 🔗 相关文档: > - [ChatModel 抽象重构记录](../devflow/projects/2026-05-29-chatmodel-abstraction/brief.md) > - [技术决策](../devflow/projects/2026-05-29-chatmodel-abstraction/decisions.md) > - [验收记录](../devflow/projects/2026-05-29-chatmodel-abstraction/acceptance.md)