31 lines
1.5 KiB
Markdown
31 lines
1.5 KiB
Markdown
## Why
|
|
|
|
The current `lookup_knowledge` implementation treats a unique L0 keyword hit as high confidence and skips L1 semantic retrieval. That makes L0 too authoritative for the RAG refactor target: L0 should provide domain/entity hints, metadata-filter intent, and explainability while final evidence still comes from the retrieval pipeline.
|
|
|
|
## What Changes
|
|
|
|
- Change L0 from final retrieval decision maker to domain/entity hint provider.
|
|
- Add structured L0 hint output that includes matched keywords, domains, entities, and matched titles.
|
|
- Make `lookup_knowledge` run L1 semantic retrieval by default even when L0 has a unique hit.
|
|
- Use L0 domain hints to pass category metadata filters into L1 when a single clear domain is detected.
|
|
- Persist L0 hint details in `tool_invocation.retrieval_details`.
|
|
- Keep `lookup_knowledge` as the explicit Agent tool entry point.
|
|
- No Spring AI VectorStore migration in this change.
|
|
|
|
## Capabilities
|
|
|
|
### New Capabilities
|
|
|
|
- `rag-knowledge-retrieval`: Defines runtime behavior for the explicit RAG knowledge retrieval tool, including L0 hinting and L1 retrieval cooperation.
|
|
|
|
### Modified Capabilities
|
|
|
|
- None.
|
|
|
|
## Impact
|
|
|
|
- Affects `KnowledgeIndexService`, `LookupKnowledgeTool`, and `ToolInvocationRecorder`.
|
|
- May affect retrieval latency because L1 is no longer skipped for unique L0 hits.
|
|
- Improves traceability by recording L0 matched keywords/entities/domains in retrieval details.
|
|
- Does not change document upload, chunking, Milvus schema, or Agent flow.
|