Files
SuperBizAgent-java/devflow/projects/2026-07-01-executor-action-memory-relevance/evidence.md
T
zhuyongxin e438df4355 feat(knowledge): Executor 行动记忆 + 归一化质量等级解决 ISS-002 重复检索
- RetrievedDocTracker 升级为域级+文档级双层记录(Map<sessionId, Map<domain, Set<filePath>>>)
- LookupKnowledgeTool 新增 Min-Max 归一化层(BGE-M3 L2 距离→[0,1] similarity)
- 三等级 relevanceLevel:PRECISE / HIGHLY_RELEVANT / REFERENCE + completenessHint 兜底信号
- LookupResult 新增 relevanceLevel、completenessHint、retrievedDomainsThisSession
- Executor prompt 重写:4 条检索约束 + 合法出口不查全不追责,重复检索才惩罚
- 入库可观测性:V010 迁移 + retrieval_details JSON 扩展
- 归档 executor-action-memory-relevance change
2026-07-01 18:24:41 +08:00

66 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Evidence: executor-action-memory-relevance
## Evidence-driven 结论
### E1: relevanceLevel 三等级语义清晰度
- **来源**: Grill 阶段 Question Pool #1
- **查证结果**: 三个等级语义明确,边界清晰:
- PRECISE:L0 唯一精确匹配,LLM 应直接使用
- HIGHLY_RELEVANT:归一化 similarity ≥ 0.75,高度相关
- REFERENCE:归一化 similarity ≥ 0.5,相关参考
- **结论**: LLM 误解风险低,语义边界足够清晰
### E2: L1 Score 值域与归一化阈值
- **来源**: Grill 阶段 Question Pool #2
- **查证结果**:
- L1 score 是 L2 距离,值域 [0, +∞)
- BGE-M3 输出为 L2 归一化单位向量(实测范数=1.00000002),L2 距离数学硬上界 = 2.0
- Min-Max 归一化公式:`similarity = 1 - min(l2Score, 2.0) / 2.0`
- **结论**: 使用 `maxL2Distance=2.0` 作为归一化上界,阈值 yml 可配置
### E3: L1 Domain 提取兜底路径
- **来源**: Grill 阶段 Question Pool #3
- **查证结果**:
- L0 的 domain 可从 `KnowledgeEntry.getCategory()` 直接获取
- L1 结果的 domain 需解析 `SearchResult.metadata` JSON 字符串
- 当前知识库设计下 L0 大概率先命中,L1 domain 提取作为兜底
- **结论**: 先尝试 L0 category,失败时解析 L1 metadata JSON(try-catch 兜底)
### E4: 历史数据不回填
- **来源**: Grill 阶段 Question Pool #5
- **查证结果**: 新列 `relevance_level` 和 `dedup_reason` 均为 nullable,不影响现有查询
- **结论**: 历史记录保持 null,不需要回填迁移
### E5: BGE-M3 L2 归一化实测验证
- **来源**: Specify 阶段 + FullPipelineSmokeTest
- **查证结果**:
- embeddingBgeM3Works() 测试新增 L2 范数断言
- 实测范数 = 1.00000002,误差 < 0.01
- 测试通过,BGE-M3 输出确认为 L2 归一化单位向量
- **结论**: L2 距离上界 = 2.0 的数学依据成立
### E6: V010 迁移验证
- **来源**: Apply 阶段运行时验证
- **查证结果**:
- Flyway V010 迁移成功执行
- `relevance_level` VARCHAR(20) 列可空,已正确写入
- `dedup_reason` VARCHAR(32) 列可空,已正确写入
- `retrieval_details` JSON 扩展字段(l1_top_similarity、relevance_level、completeness_hint、retrieved_domains、dedup_reason)全部写入
- **结论**: 入库可观测性符合设计
### E7: 数据库数据校验
- **来源**: Apply 阶段运行时验证
- **查证结果**:
- session `b66d799e` 共 10 条 lookup_knowledge 调用
- id=138: L2=0.383 → similarity=0.8085 → HIGHLY_RELEVANT(符合预期)
- id=139-147: 主要为 REFERENCE,doc_retrieved 去重正常触发
- retrieved_domains 域追踪:`[infrastructure]` → `[infrastructure, api]` 正常扩展
- **结论**: 归一化、行动记忆、去重机制数据层面全部验证通过