feat: add spring ai retrieval sidecar

This commit is contained in:
aruo
2026-07-05 03:22:03 +08:00
parent 5197712719
commit b9ec07de57
21 changed files with 944 additions and 0 deletions
@@ -82,3 +82,27 @@ The system SHALL persist compact evidence block summaries in `tool_invocation.re
#### Scenario: Full content is not duplicated into retrieval details
- **WHEN** evidence block summaries are persisted
- **THEN** full evidence content SHALL be omitted or truncated so the trace record remains compact
### Requirement: Knowledge retrieval SHALL support a disabled-by-default Spring AI sidecar
The retrieval system SHALL allow a Spring AI VectorStore retrieval path to be wired as a sidecar without changing the default `lookup_knowledge` runtime path.
#### Scenario: Sidecar disabled by default
- **WHEN** the application starts without explicit sidecar enablement
- **THEN** `lookup_knowledge` SHALL continue using the existing retrieval path
- **AND** Chat and AIOps runtime behavior SHALL not depend on the sidecar
#### Scenario: Sidecar failure does not break main retrieval
- **WHEN** the Spring AI sidecar is enabled but cannot initialize or query successfully
- **THEN** the existing retrieval path SHALL remain usable
- **AND** the failure SHALL be reported as sidecar status rather than as a main retrieval failure
### Requirement: Knowledge retrieval SHALL normalize sidecar results for comparison
The sidecar retrieval path SHALL expose results in a comparable structure aligned with the current retrieval result shape.
#### Scenario: Comparable result metadata
- **WHEN** sidecar retrieval returns candidates
- **THEN** each comparable result SHALL include source or doc id, title when available, breadcrumb when available, category when available, rank, content preview, and the sidecar score label/value
#### Scenario: Score semantics are explicit
- **WHEN** current retrieval and sidecar retrieval scores are compared
- **THEN** the report SHALL label score semantics by path instead of assuming direct numeric equivalence