You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
SelfLearningRvfBackend feedback and contrastive learning are disconnected from retrieval #14
Create SelfLearningRvfBackend with learning: true.
Insert two vectors.
Call searchAsync().
Call recordFeedback(firstHit.id, 1.0), using the returned document ID.
Inspect getLearningStats().
Observed:
Returned hits expose only id, distance, similarity, and metadata; there is no query or trajectory handle.
Feedback using the returned hit ID records zero trajectories.
Guessing the hidden internal ID q_0 records one trajectory, proving the trajectory exists but its identifier is unreachable through the public result.
Feeding one low-quality and one high-quality trajectory through guessed q_N identifiers still creates zero contrastive samples and zero training batches.
forceLearn() does not change that result.
Root cause
There are three independent breaks in the loop:
searchAsync() creates a private q_N key but never returns it or accepts a caller-owned correlation key.
recordFeedback() does not assign the matching recentSearches[].quality, while contrastive sample creation requires that value.
ContrastiveTrainer.project() is not called by the search path, so even trained projection weights cannot affect retrieval.
Impact
The advertised self-learning path can collect neither normal asynchronous feedback safely nor use contrastive training to change rankings. Applications may believe retrieval is learning when it is effectively unchanged.
Requested fix
Accept a caller-provided opaque feedbackId in search options, with duplicate-ID validation.
Link feedback quality to the matching recent search.
Apply the trained projection to retrieval only after a trained batch exists.
Add concurrent and out-of-order feedback tests.
Add an end-to-end held-out test showing that feedback measurably changes ranking.
Activity
fix: bump @ruvector/rvf to 0.2.3, wire feedback correlation to retrie…
chore: bump agentdb to 3.0.0-alpha.18