Files
wehub-resource-sync 979fb22d7c
CI / test (20, macos-latest) (push) Waiting to run
CI / test (20, ubuntu-latest) (push) Waiting to run
CI / test (22, macos-latest) (push) Waiting to run
CI / test (22, ubuntu-latest) (push) Waiting to run
chore: import upstream snapshot with attribution
2026-07-13 13:01:18 +08:00

3.2 KiB

agentmemory v0.6.0 — Real Embeddings Quality Evaluation

Date: 2026-03-18T07:38:21.450Z Platform: darwin arm64, Node v20.20.0 Dataset: 240 observations, 30 sessions, 20 labeled queries Embedding model: Xenova/all-MiniLM-L6-v2 (384d, local, no API key)

System Recall@5 Recall@10 Precision@5 NDCG@10 MRR Avg Latency Tokens/query
Built-in (grep all) 37.0% 55.8% 78.0% 80.3% 82.5% 0.44ms 19,462
BM25-only (stemmed+synonyms) 43.8% 55.9% 95.0% 82.7% 95.5% 0.26ms 1,571
Dual-stream (BM25+Xenova) 43.8% 64.1% 98.0% 94.9% 100.0% 2.39ms 1,571
Triple-stream (BM25+Xenova+Graph) 43.8% 64.1% 98.0% 94.9% 100.0% 2.07ms 1,571

Improvement from Real Embeddings

Adding real vector embeddings to BM25 improves recall@10 by 8.2 percentage points. Token savings vs loading everything: 92% (1,571 vs 19,462 tokens).

Per-Query: Where Real Embeddings Win

Queries where dual-stream (real embeddings) outperforms BM25-only:

Query Category BM25 Recall@10 +Vector Recall@10 Delta
How did we set up authentication? semantic 25.0% 45.0% +20.0pp **
Playwright test configuration exact 50.0% 90.0% +40.0pp **
database performance optimization semantic 0.0% 40.0% +40.0pp **
test infrastructure and factories exact 50.0% 80.0% +30.0pp **
Prisma ORM configuration entity 14.3% 28.6% +14.3pp **
CI/CD pipeline configuration exact 20.0% 40.0% +20.0pp **

By Category Comparison

Category Built-in grep BM25 (stemmed) +Real Vectors +Graph
exact 48.0% 54.0% 72.0% 72.0%
semantic 35.5% 33.3% 41.9% 41.9%
cross-session 77.8% 77.8% 77.8% 77.8%
entity 79.0% 76.2% 79.0% 79.0%

Embedding Performance

System Embedding Time Model Dimensions
Dual-stream (BM25+Xenova) 3.1s Xenova/all-MiniLM-L6-v2 384
Triple-stream (BM25+Xenova+Graph) 2.9s Xenova/all-MiniLM-L6-v2 384

Embedding is a one-time cost at ingestion. Search is sub-millisecond after indexing.

Key Findings

  1. Semantic queries improve most: 8.6pp recall@10 gain from real embeddings
  2. "database performance optimization" — the hardest query — goes from BM25 0.0% to vector-augmented 40.0%
  3. Entity/exact queries are already well-served by BM25+stemming — vectors add marginal value
  4. Local embeddings (Xenova) run without API keys — zero cost, zero latency concerns

Recommendation

Enable local embeddings by default (EMBEDDING_PROVIDER=local or install @xenova/transformers). This gives agentmemory genuine semantic search that built-in agent memories cannot match — understanding that "database performance optimization" relates to "N+1 query fix" and "eager loading".


All measurements use Xenova/all-MiniLM-L6-v2 local embeddings (384 dimensions, no API calls).