Files
SuperBizAgent-java/devflow/projects/2026-07-06-modular-rag-pipeline/acceptance.md
T

2.7 KiB
Raw Blame History

Modular RAG Pipeline — Acceptance

验收状态

状态:通过,OpenSpec 已归档。

任务完成:

  • OpenSpec tasks:31/31 完成。
  • Review 后新增去重边界修复和回归测试。
  • OpenSpec archive:openspec/changes/archive/2026-07-06-modular-rag-pipeline。

静态验证

openspec validate modular-rag-pipeline --strict

结果:

Change 'modular-rag-pipeline' is valid
git diff --check

结果:

PASS

说明:仅出现 Windows LF/CRLF warning,无 whitespace error。

脚本验证

mvn -q -DskipTests compile

结果:PASS。

mvn -q "-Dtest=LookupKnowledgeToolTest,ToolInvocationRecorderTest" test

结果:PASS。

覆盖:

  • filtered L1 成功不 retry。
  • filtered L1 低质量触发 raw unfiltered retry。
  • filtered L1 无 evidence 触发 raw unfiltered retry。
  • L0 hint 不作为 standalone fact evidence。
  • 无 L0 hint 时直接 unfiltered vector search。
  • rerank 使用 hint match 并记录 trace。
  • context pack 保留 source/title/breadcrumb/hit reasons。
  • evidence blocks 按 source 去重。
  • session dedup 不再返回可消费 evidence/context。
  • recorder 记录 retrieval trace、rerank trace、context pack summary 和 evidence summaries。
$env:MILVUS_TOKEN = <application.yml 中的 milvus.token>; mvn -q test

结果:PASS。

说明:

  • MilvusConnectionTest 需要 MILVUS_TOKEN 环境变量,直接读 System.getenv,不会自动读 application.yml。
  • 注入该环境变量后完整测试通过。

实现验收

已验证行为:

  • LookupKnowledgeTool 已变为 pipeline orchestrator。
  • LookupResult 新契约包含 evidenceBlocks、contextPack、retrievalTrace、rerankTrace。
  • 旧 primary/supplement 字段和 DTO 已删除。
  • ToolInvocationRecorder 不再依赖 result.getPrimary()。
  • filtered retrieval 失败时会记录 filtered_vector_no_evidence 或 filtered_vector_low_quality。
  • no-evidence 情况返回 found=false 且保留 retrieval trace。
  • session dedup 情况返回 found=false 且 evidence/context 为空。

未验证项

人工 Demo 未执行:

  • 还没有通过真实 Chat/AIOps 会话观察 Agent 是否稳定按 contextPack.packedText 和 evidenceBlocks 引用证据。

风险:

  • 工具 JSON 契约是 L4 breaking change,prompt 已更新,但真实对话行为仍建议做一次端到端 demo。

后续建议

  • 增加一组 RAG eval cases,固定 query、期望 evidence source、期望 fallback path。
  • 将 MilvusConnectionTest 改成 Spring 配置驱动或 integration profile,避免配置源混用。
  • 后续可在评测数据足够后再考虑 model-based rerank 或 hybrid retrieval。