Files
SuperBizAgent-java/mvp/architecture/implementation-detail.md
T
zhuyongxin 60be51f4a5 docs: 重构文档结构,分离学习笔记和 MVP 架构设计
**变更概述:**
- 将 MVP 架构设计文档独立到项目根目录 `mvp/`
- 整理 `docs/` 为纯学习和分析文档目录
- 按类型分类:learning(学习)、analysis(分析)、reports(报告)、guides(指南)

**目录结构:**
```
mvp/                          # MVP 架构设计(独立)
├── README.md                 # 数据库设计总览
├── architecture/             # 架构文档
│   ├── agent-architecture-mvp.md
│   ├── implementation-plan.md
│   └── ...
└── tables/                   # 数据表设计

docs/                         # 学习和分析文档
├── learning/                 # 学习笔记(00-08 编号)
├── analysis/                 # 分析笔记 + 重构计划
├── reports/                  # 临时报告
└── guides/                   # 指南文档
```

**详细变更:**
- docs/README.md → mvp/README.md(数据库设计入口)
- docs/architecture/ → mvp/architecture/(架构设计)
- docs/tables/ → mvp/tables/(数据表设计)
- docs/学习笔记-*.md → docs/learning/07-*.md, 08-*.md
- docs/项目学习路径.md → docs/learning/00-*.md
- docs/功能分析报告.md → docs/analysis/
- docs/修复报告-*.md → docs/reports/
- docs/日志配置*.md → docs/guides/ 或 docs/reports/
- docs/design/ → docs/analysis/(问题分析和重构计划)
2026-06-23 14:14:51 +08:00

14 KiB
Raw Blame History

SuperBizAgent MVP 完整实施计划(AI 执行)

协作分工

用户角色:规划者 + 验证者 + 架构师
AI 角色:  执行者 + 编码者 + 记录者

用户负责:
├─ 确认架构设计
├─ 验收每个阶段产出
├─ 调整优先级和方向
└─ 最终验收和部署决策

AI 负责:
├─ 编写全部代码
├─ 编写全部测试
├─ 执行测试验证
├─ 记录实施过程
├─ 遇到问题提出方案供用户决策
└─ 自动化构建和本地验证

总览:3 个 Phase,13 天

Phase 1: 基础设施(5天)
├─ Day 1-2: 数据库 + 实体 + 会话管理
├─ Day 3:   代码结构重构
└─ Day 4-5: 文档管理(CRUD + Milvus)

Phase 2: 核心功能(5天)
├─ Day 6-7: 意图识别 + RAG 两层加载
├─ Day 8-9: 4 Agent 协作 + Skill
└─ Day 10:  工具层开发

Phase 3: 闭环优化(3天)
├─ Day 11: Verifier + Harness
├─ Day 12: 反馈机制 + 案例沉淀
└─ Day 13: 端到端测试 + 验收

Phase 1:基础设施(5天)

Day 1-2:数据库 + 实体 + 会话

任务 1.1:MySQL 表结构(Flyway 迁移)

产出文件:
src/main/resources/db/migration/
├── V001__create_diagnosis_record.sql
├── V002__create_case_library.sql
└── V003__create_api_document.sql

依据文档:
- docs/tables/diagnosis_record.md
- docs/tables/case_library.md
- docs/tables/api_document.md

关键点:
- 使用 Flyway 版本管理
- 索引:trace_id, error_code, fault_category
- JSON 字段:steps_executed, evidence_chain
- 时间字段:created_at, updated_at 自动维护

验收标准:
✓ 执行 mvn flyway:migrate 成功
✓ 3 张表创建成功
✓ 索引完整
✓ 约束正确

任务 1.2:JPA 实体类

产出文件:
src/main/java/com/superbiz/agent/domain/entity/
├── DiagnosisRecord.java
├── CaseLibrary.java
└── ApiDocument.java

技术栈:
- Spring Data JPA
- Lombok (@Data, @Builder)
- Hibernate @JdbcTypeCode(SqlTypes.JSON)

验收标准:
✓ 字段与 DDL 一致
✓ 枚举映射正确
✓ JSON 字段序列化正常
✓ 编译通过

任务 1.3:Repository 层

产出文件:
src/main/java/com/superbiz/agent/repository/
├── DiagnosisRecordRepository.java
├── CaseLibraryRepository.java
└── ApiDocumentRepository.java

常用查询:
- findByOrderId
- findByTraceId
- findByErrorCodeAndFaultCategory
- findTopByOrderByCreatedAtDesc

验收标准:
✓ 继承 JpaRepository
✓ 单元测试覆盖(@DataJpaTest + H2)
✓ 分页查询正确

任务 1.4:Redis 会话管理

产出文件:
src/main/java/com/superbiz/agent/session/
├── SessionManager.java              # 接口
├── RedisSessionManager.java         # Redis 实现
├── SessionContext.java              # 会话上下文
└── SessionConfiguration.java        # 配置类

功能:
- 替换内存 HashMap
- TTL:30 分钟
- JSON 序列化(Jackson)
- 按 sessionId 存取删

验收标准:
✓ 单元测试通过
✓ Redis 连接成功
✓ 序列化/反序列化正确
✓ TTL 生效

Day 3:代码结构重构

任务 3.1:包名重构

重构前:org.example
重构后:com.superbiz.agent

操作:
1. IDEA Refactor → Rename Package
2. 全局搜索替换 import
3. pom.xml 更新 mainClass

验收标准:
✓ 编译通过
✓ 无遗漏的 org.example
✓ 启动成功

任务 3.2:分层结构优化

目标结构:
src/main/java/com/superbiz/agent/
├── controller/              # REST 接口
├── service/                 # 业务逻辑
├── repository/              # 数据访问
├── domain/
│   ├── entity/              # JPA 实体
│   ├── dto/                 # 数据传输对象
│   ├── vo/                  # 视图对象
│   └── enums/               # 枚举
├── agent/                   # Agent 层
│   ├── supervisor/
│   ├── planner/
│   ├── executor/
│   └── verifier/
├── tool/                    # 工具层
├── harness/                 # Harness 控制
│   ├── gate/
│   └── interrupt/
├── skill/                   # Skill 定义
├── session/                 # 会话管理
├── intent/                  # 意图识别
├── rag/                     # RAG 加载
└── config/                  # 配置

验收标准:
✓ 目录结构清晰
✓ 职责单一
✓ 编译通过

任务 3.3:DTO 抽离

产出文件:
src/main/java/com/superbiz/agent/domain/dto/
├── DiagnosisRequest.java
├── DiagnosisResponse.java
├── DocumentUploadRequest.java
├── CaseQueryRequest.java
└── ...

要求:
- Controller 不直接依赖 Entity
- MapStruct 做对象转换
- 校验注解 @Valid + @NotNull
- 统一响应包装类 Result<T>

验收标准:
✓ Controller 不 import Entity
✓ 原有接口兼容
✓ 编译通过

Day 4-5:文档管理

任务 4.1:文档上传

产出文件:
controller/DocumentController.java
service/DocumentService.java
service/TextExtractor.java
service/VectorService.java

接口:POST /api/documents/upload
功能:
1. 接收文件(Word/PDF/Markdown)
2. 提取纯文本
3. 分块(chunk_size=500, overlap=50)
4. 向量化(DashScopeEmbedding)
5. 写 MySQL + Milvus

验收标准:
✓ 上传成功返回 document_id
✓ MySQL 记录正确
✓ Milvus 向量正确
✓ 单元测试覆盖

任务 4.2:文档查询

接口:
- GET /api/documents/{id}
- GET /api/documents?province=XX&category=YY

验收标准:
✓ 分页查询
✓ 过滤生效
✓ 性能可接受(< 100ms)

任务 4.3:文档删除同步

接口:DELETE /api/documents/{id}

功能:
- 删除 MySQL 记录
- 同步删除 Milvus 向量
- 事务一致性

验收标准:
✓ MySQL + Milvus 同步删除
✓ 事务回滚正确

任务 4.4:混合检索实现

产出文件:
tool/DocumentSearchTool.java

策略:
1. 精确匹配(MySQL)
2. 语义检索(Milvus)
3. RRF 融合排序

验收标准:
✓ 精确匹配优先
✓ 语义检索补漏
✓ 返回 Top 3
✓ 单元测试覆盖

Phase 2:核心功能(5天)

Day 6-7:意图识别 + RAG

任务 6.1:意图识别模块

产出文件:
intent/IntentClassifier.java
intent/L0RulesMatcher.java
intent/L1AgentClassifier.java
intent/IntentResult.java

L0 规则匹配:
- 正则:订单号、traceId、错误码
- 关键词:报错、异常、失败
- 返回:诊断/文档/案例/闲聊

L1 小模型 Agent:
- 输入:用户原始输入
- Prompt:分类意图
- 输出:意图 + 置信度

验收标准:
✓ L0 命中率 80%+
✓ L1 准确率 90%+
✓ 延迟 < 200ms
✓ 单元测试覆盖

任务 6.2:RAG 两层加载

产出文件:
rag/RagLoader.java
rag/L1PreloadService.java
rag/L2OnDemandService.java

L1 预加载:
- 触发时机:意图识别后,Planner 启动前
- 内容:通用领域知识(架构、流程、高频错误码)
- 注入:Planner System Prompt

L2 按需加载:
- 触发时机:Executor 拿到 errorCode 后
- 内容:具体接口文档
- 调用:searchDoc

验收标准:
✓ L1 预加载成功
✓ L2 按需调用成功
✓ 单元测试覆盖

Day 8-9:4 Agent 协作 + Skill

任务 8.1:4 Agent 定义

产出文件:
agent/supervisor/SupervisorAgent.java
agent/planner/PlannerAgent.java
agent/executor/ExecutorAgent.java
agent/verifier/VerifierAgent.java

配置文件:
src/main/resources/prompts/
├── supervisor-system.md
├── planner-system.md
├── executor-system.md
└── verifier-system.md

技术栈:
- Spring AI Alibaba
- SupervisorAgent + ReactAgent
- @Tool 注解

验收标准:
✓ 4 Agent 注册成功
✓ 协作流程跑通
✓ Supervisor 调度正确

任务 8.2:Skill 实现

产出文件:
skill/SkillDefinition.java
skill/DiagnoseByOrderIdSkill.java
skill/SkillRegistry.java

工作流(6 步):
1. queryOrder
2. searchDoc (L2 按需)
3. queryLogs (Mock)
4. recommendCase
5. 生成报告
6. Verifier 验证

验收标准:
✓ 6 步流程正确
✓ 失败处理正确(ABORT/SKIP)
✓ 单元测试覆盖

Day 10:工具层开发

任务 10.1:queryOrder 工具

产出文件:
tool/QueryOrderTool.java

功能:
- 只读查询 MySQL
- 返回订单信息 + 错误信息
- SQL 注入防护

验收标准:
✓ 查询正确
✓ 超时控制(10s)
✓ 单元测试覆盖

任务 10.2:searchDoc 工具

产出文件:
tool/SearchDocTool.java

功能:
- 调用混合检索
- 返回 Top 3 文档片段

验收标准:
✓ 调用成功
✓ 结果格式正确
✓ 单元测试覆盖

任务 10.3:recommendCase 工具

产出文件:
tool/RecommendCaseTool.java

功能:
- 精确匹配:error_code + fault_category
- 语义检索:description 向量相似度
- RRF 融合

验收标准:
✓ 推荐准确
✓ 返回 Top 3
✓ 单元测试覆盖

任务 10.4:getCurrentTime 工具

产出文件:
tool/GetCurrentTimeTool.java

功能:
- 返回当前时间戳
- 格式化输出

验收标准:
✓ 返回正确

Phase 3:闭环优化(3天)

Day 11:Verifier + Harness

任务 11.1:Verifier Agent

产出文件:
agent/verifier/VerifierAgent.java

验证逻辑:
1. 事实核查(报告数据 vs 工具返回数据)
2. 完整性检查(3 章节不能为空)

判决:
- PASS:通过
- REVISE:需修正
- REJECT:驳回

验收标准:
✓ 事实核查正确
✓ 编造检测生效
✓ 单元测试覆盖

任务 11.2:Harness 5 Gates

产出文件:
harness/gate/InputGates.java
harness/gate/ExecutionGates.java
harness/gate/OutputGates.java

门禁清单:
- Gate 1: 输入参数非空
- Gate 2: 5 分钟内重复 → 缓存
- Gate 3: 工具超时(10s)
- Gate 4: 报告完整性
- Gate 5: 置信度阈值(60)

验收标准:
✓ 5 Gates 生效
✓ 中断机制正确
✓ 单元测试覆盖

Day 12:反馈机制 + 案例沉淀

任务 12.1:反馈接口

产出文件:
controller/FeedbackController.java
service/FeedbackService.java

接口:POST /api/diagnosis/{id}/feedback
参数:useful / not_useful

功能:
- 更新 diagnosis_record.feedback
- useful → 自动生成 case_library

验收标准:
✓ 反馈记录成功
✓ 案例生成正确
✓ 单元测试覆盖

任务 12.2:案例自动生成

产出文件:
service/CaseGenerationService.java

触发条件:
- feedback = useful
- confidence >= 80

生成逻辑:
- 提取关键信息
- 生成 case_library 记录
- 向量化 solution_steps

验收标准:
✓ 案例生成正确
✓ 向量化成功
✓ 单元测试覆盖

Day 13:端到端测试 + 验收

任务 13.1:Mock 5 个场景

场景 1:外部接口故障(广东社保 40003)
场景 2:内部空指针异常
场景 3:数据库连接超时
场景 4:意图不明(闲聊)
场景 5:缓存命中(重复诊断)

验收标准:
✓ 5 个场景全部跑通
✓ 诊断报告正确
✓ 反馈闭环完整

任务 13.2:性能测试

指标:
- 诊断延迟 < 10s(P95)
- 意图识别 < 200ms
- 文档检索 < 500ms
- 并发 10 QPS 稳定

验收标准:
✓ 性能达标
✓ 无内存泄漏
✓ 无明显瓶颈

任务 13.3:文档更新

产出文件:
docs/
├── API.md               # 接口文档
├── DEPLOYMENT.md        # 部署指南
└── TEST_REPORT.md       # 测试报告

验收标准:
✓ 文档完整
✓ 部署可复现
✓ 测试报告详实

测试要求

单元测试

框架:JUnit 5 + Mockito
覆盖率:
- Repository: 100%
- Service:    80%+
- Tool:       80%+
- Agent:      70%+
- Controller: 70%+

集成测试

框架:@SpringBootTest
覆盖:
- Redis 集成
- MySQL 集成
- Milvus 集成
- Agent 协作

E2E 测试

工具:RestAssured
场景:5 个 Mock 场景

实施记录格式

每完成一个任务,AI 在此文档追加:

---

## [完成] 任务 X.X:任务名称

**执行时间**:2026-XX-XX HH:mm

**产出文件**:
- path/to/file1.java (126 行)
- path/to/file2.java (89 行)

**关键决策**:
- 决策点:选择方案 A,因为...
- 权衡点:备选方案 B 的劣势是...

**遇到的问题**:
- 问题:XXX
- 解决方案:YYY
- 影响范围:ZZZ

**测试结果**:
✓ 单元测试:8/8 通过
✓ 集成测试:3/3 通过
✓ 代码覆盖率:85%

**验收状态**:⏳ 等待用户确认 / ✅ 已通过

**用户反馈**:(用户确认后填写)

当前进度

Phase 1: 基础设施(5天)         [    ] 0%
├─ Day 1-2: 数据库 + 实体         [    ] 未开始
├─ Day 3:   代码结构重构          [    ] 未开始
└─ Day 4-5: 文档管理              [    ] 未开始

Phase 2: 核心功能(5天)         [    ] 0%
├─ Day 6-7: 意图识别 + RAG        [    ] 未开始
├─ Day 8-9: Agent + Skill         [    ] 未开始
└─ Day 10:  工具层                [    ] 未开始

Phase 3: 闭环优化(3天)         [    ] 0%
├─ Day 11: Verifier + Harness     [    ] 未开始
├─ Day 12: 反馈 + 案例            [    ] 未开始
└─ Day 13: E2E 测试               [    ] 未开始

总体进度:0/13 天

下一步

等待用户确认:

  1. ✅ 这个完整计划是否符合预期?
  2. 有没有需要调整的优先级?
  3. 有没有需要增删的任务?
  4. 确认后开始执行 Phase 1 Day 1-2。