Files
SuperBizAgent-java/mvp/issues/rag-spring-ai-document-postprocessor.md
T

61 lines
1.7 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.
# RAG 使用 DocumentPostProcessor 做后处理
**状态**:待规划
**严重程度**:中
**发现时间**:2026-07-05
**范围**:检索后处理、去重、上下文打包、轻量 rerank
---
## 背景
当前检索结果返回给 Agent 前,主要依赖 `LookupKnowledgeTool` 自己拼接内容。系统还缺少统一的后处理阶段。
Spring AI RAG 流程中可以使用 DocumentPostProcessor 类能力,在文档进入模型上下文前做过滤、去重、压缩或 rerank。
---
## 问题
当前检索后处理不足:
1. L1 topK 候选没有被充分利用。
2. 同文档或同章节结果可能重复。
3. 命中 chunk 后没有统一处理前后文扩展。
4. 证据块缺少统一格式,后续 verifier / evaluator 不容易复用。
---
## 改造方向
建立一个轻量后处理链:
```text
retrieved documents
-> deduplicate
-> optional neighbor / section expansion
-> score / reason annotation
-> token budget packing
-> evidence blocks
```
优先做规则型后处理,不急于引入 cross-encoder 或 LLM rerank。
---
## 验收标准
- 同一个 docId/chunkIndex 不重复进入 Agent 上下文。
- 最终返回内容包含 source、title、breadcrumb、score、hitReason。
- 可以限制单次工具调用返回的最大 token 或最大字符数。
- 后处理前后的候选数量、去重数量、最终 evidence 数量记录到 `tool_invocation`。
---
## 相关文件
- `src/main/java/com/superbiz/agent/tool/LookupKnowledgeTool.java`
- `src/main/java/com/superbiz/agent/service/VectorSearchService.java`
- `src/main/java/com/superbiz/agent/service/DocumentChunkService.java`
- `src/main/java/com/superbiz/agent/service/ToolInvocationRecorder.java`