3.4 KiB
3.4 KiB
Acceptance: session-dedup-knowledge-map
静态验证
| 项目 | 结果 | 说明 |
|---|---|---|
| 编译检查 | PASS | mvn compile -q exit code 0,所有 17 个变更文件无编译错误 |
| 代码结构检查 | PASS | 6 个新文件(RetrievedDocTracker, DocumentFieldEnricher, KnowledgeDomainService, KnowledgeDomain, KnowledgeDomainRepository, V009 迁移)均存在且路径正确 |
| Prompt 外部化 | PASS | doc-field-enricher-prompt.md 和 domain-summary-prompt.md 位于 src/main/resources/prompts/,Java 代码通过 @PostConstruct + ClassPathResource 加载 |
| Flyway 迁移脚本 | PASS | V009__add_knowledge_domain.sql 存在,表结构完整 |
| DTO 字段 | PASS | Frontmatter / KnowledgeEntry / LookupResult 新增字段均已添加 |
| 解析器扩展 | PASS | FrontmatterParser 解析 covers 和 when_to_retrieve |
| Jackson 替换 | PASS | KnowledgeIndexService 不再包含 extractJsonValue/extractJsonArray,改用 objectMapper.readValue |
| Prompt 检索规则 | PASS | chat-planner-prompt.md 新增"知识库检索规则"区块(4 条规则) |
脚本验证
| 项目 | 结果 | 说明 |
|---|---|---|
| 单元测试 | 未运行 | 项目当前无针对本 change 的单元测试 |
| 集成测试 | 未运行 | 需启动应用 + Milvus + MySQL 验证完整链路 |
浏览器/人工验证
| 项目 | 结果 | 说明 |
|---|---|---|
| V009 迁移 | PASS | Flyway 日志:Successfully applied 1 migration to schema superbiz_agent, now at version v009 |
| knowledge_domain 表数据 | PASS | 4 个域全部 LLM 生成 when_to_retrieve 成功(api/domain/infrastructure/troubleshooting),内容包含跨域边界引用 |
| knowledge map 注入 Planner | PASS | 多 Agent 路径正常触发 Supervisor → chat_planner → chat_executor,Planner 能按域做检索规划 |
| session 级去重 | PASS | 两个 session 均验证去重生效:session 7c517329 去 4 次重拦截,session 9693b9fb 6 次去重拦截 |
| LLM 字段生成 | 未验证 | 需上传新文档后检查 metadata JSON 中是否包含 covers 和 whenToRetrieve |
未验证项
| 项目 | 风险 | 建议补验步骤 |
|---|---|---|
| LLM 字段生成 | 中 — 依赖外部 LLM 服务 | 上传新文档,检查 metadata JSON 中是否包含 covers 和 whenToRetrieve |
启动问题修复
| 问题 | 修复 | 状态 |
|---|---|---|
@PostConstruct 中调用 knowledgeDomainService.onDocumentChange() 导致循环依赖 |
将域级生成从 @PostConstruct 移到 @EventListener(ApplicationReadyEvent.class) |
已修复,编译通过 |
任务完成状态
14/14 任务全部完成 (T1-1 ~ T6-2)。
遗留问题
ISS-002:Executor 无约束重复调用 lookup_knowledge(单会话 20+ 次),knowledge map 和检索约束只注入了 Planner 未注入 Executor。详见 mvp/issues/archived/ISS-002-executor-unconstrained-lookup.md。
已知限制
- RetrievedDocTracker 为 JVM 内存存储:应用重启后去重状态丢失,同一会话内重启无法继续去重(可接受,会话通常短于重启间隔)
- Planner 只看域级 when_to_retrieve:文档级细粒度筛选留 Phase 2
- 文档级 prompt 依赖同域其他文档:首个上传到某域的文档无法获得同域参照(此时 prompt 输出"无同域其他文档")
- 域级 prompt 依赖其他域已入库:首次启动且 DB 为空时,其他域信息从 L0 索引 category 列表兜底