Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -524,10 +524,12 @@ loopback, and production evidence.
| Direct Memory OS public runs | LoCoMo 1977 queries; LongMemEval-S 470 queries; LongMemEval-V2 Small 451 questions |
| Strict production evidence | 5/8 requirements |
| LongMemEval evidence retrieval | WaveMind recall@5 `0.782` |
| Real LoCoMo memory systems | WaveMind recall@5 `0.548`; Mem0 OSS `0.500`; Hindsight OSS `0.316` |
| Large-N profiles | 10M Qdrant, 10M sharded Qdrant, 10M pgvector, 50M FAISS |

These results do not claim universal vector-database leadership or completed
remote 100M/multi-region proof. See the full [Benchmark Guide](docs/BENCHMARKS.md),
[real public memory-system report](benchmarks/PUBLIC_MEMORY_COMPETITORS.md),
[living dashboard](https://caspiang.github.io/wavemind/), and
[Benchmark Brief](docs/BENCHMARK_BRIEF.md) for methods, commands, limitations,
and machine-readable artifacts.
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/AGENT_IMPACT.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# WaveMind Agent Impact Leaderboard

Generated: `2026-07-28T17:57:37Z`.
Generated: `2026-07-28T22:43:41Z`.

Agent-impact rows come from checked-in benchmark artifacts. They show behavioral lift on the configured tasks; they do not claim general agent success outside the listed scenarios.

Expand Down
6 changes: 3 additions & 3 deletions benchmarks/BENCHMARK_LEADERBOARD.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# WaveMind Benchmark Leaderboard

Generated from `benchmarks/benchmark_matrix_results.json`.
Last refresh: `2026-07-28T17:57:37Z` from `d011eb848e03`.
Last refresh: `2026-07-28T22:43:41Z` from `4b6d7dd3e938`.

This is a compact reader-facing view of checked-in benchmark results. It is not a universal vector-database leaderboard: each row uses the primary quality metric for that benchmark, and latency is shown separately so quality wins are not confused with speed wins.

Expand All @@ -17,7 +17,7 @@ This is a compact reader-facing view of checked-in benchmark results. It is not
| Long-term memory evidence | long-term-agent-memory | evidence recall@k | WaveMind: 1 / 6.103 ms | Static vector: 1 / 0.648 ms | Quality tie; WaveMind slower |
| BEIR-style open retrieval runner | retrieval | precision@1 | WaveMind: 0.24 / 117.0 ms | Chroma: 0.243 / 1.794 ms | Baseline leads on quality |
| [NoMIRACL Russian retrieval](https://huggingface.co/datasets/miracl/nomiracl) | multilingual-retrieval | precision@1 | WaveMind: 0.41 / 10.2 ms | Chroma: 0.41 / 2.603 ms | Quality tie; WaveMind slower |
| [LoCoMo evidence retrieval runner](https://github.com/snap-research/locomo) | long-term-conversation-memory | evidence recall@k | WaveMind sentence: 0.547 / 3.438 ms | Qdrant sentence: 0.409 / 124.3 ms | WaveMind leads on quality |
| [LoCoMo evidence retrieval runner](https://github.com/snap-research/locomo) | long-term-conversation-memory | evidence recall@k | WaveMind current public protocol: 0.548 / 4.876 ms | Mem0 OSS: 0.5 / 270.2 ms | WaveMind leads on quality |
| [LongMemEval evidence retrieval](https://github.com/xiaowu0162/LongMemEval) | long-term-agent-memory | evidence recall@k | WaveMind: 0.782 / 7.274 ms | Static vector: 0.52 / 0.083 ms | WaveMind leads on quality |
| [LongMemEval evidence 50-query smoke](https://github.com/xiaowu0162/LongMemEval) | long-term-agent-memory | evidence recall@k | WaveMind: 0.92 / 15.3 ms | Static vector: 0.6 / 0.337 ms | WaveMind leads on quality |
| [ANN index latency curve](https://github.com/erikbern/ann-benchmarks) | index-latency | Recall@k | WaveMind numpy: 1 / 1.988 ms | Qdrant local: 1 / 33.8 ms | Quality tie; WaveMind faster |
Expand All @@ -37,7 +37,7 @@ This is a compact reader-facing view of checked-in benchmark results. It is not

| area | current source | claim status | next action |
|---|---|---|---|
| Artifact freshness | local matrix refresh at `2026-07-28T17:57:37Z` | source `d011eb848e03`; audit gate enforced by `validate_benchmark_artifacts.py` | Keep weekly refresh green before public claims. |
| Artifact freshness | local matrix refresh at `2026-07-28T22:43:41Z` | source `4b6d7dd3e938`; audit gate enforced by `validate_benchmark_artifacts.py` | Keep weekly refresh green before public claims. |
| Serverless telemetry | loopback API pool; `loopback-api-capacity-estimate`; 4 measured replicas | observed SLO `True`; loopback evidence, not a managed-serverless claim | Run `.github/workflows/serverless-observed-telemetry.yml` against deployed API nodes. |
| External HTTP cluster load | kubernetes-kind-non-loopback-ci; `kubernetes-pod-dns-physical-node-drill`; 4 nodes | SLO `True`; non-loopback Kubernetes pod-DNS evidence | Run `.github/workflows/external-http-cluster-load.yml` with a remote node manifest. |
| External HTTP active-active loopback | local-loopback; `loopback-api-regions`; 3 regions | SLO `True`; external URL contract over local API regions | Run `.github/workflows/external-http-active-active.yml` with remote regions for production evidence. |
Expand Down
4 changes: 2 additions & 2 deletions benchmarks/BENCHMARK_REPORT.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# WaveMind Benchmark Report

This report is generated from `benchmarks/benchmark_matrix_results.json`.
Last refresh: `2026-07-28T17:57:37Z` from `d011eb848e03`.
Last refresh: `2026-07-28T22:43:41Z` from `4b6d7dd3e938`.
It separates completed local runs from runner-ready public benchmarks and planned external evaluations.

Planned rows are not claimed wins. They are the public proof path WaveMind must complete before stronger production claims.
Expand All @@ -20,7 +20,7 @@ Planned rows are not claimed wins. They are the public proof path WaveMind must
| Long-term memory evidence | long-term-agent-memory | implemented | WaveMind: evidence recall@k 1.00, precision@1 1.00, stale suppression 1.00, context saved 0.87, avg latency 6.10, p95 latency 8.99<br>Static vector: evidence recall@k 1.00, precision@1 0.57, stale suppression 0.00, context saved 0.88, avg latency 0.65, p95 latency 0.94 | Use public LoCoMo and LongMemEval for external claims; keep this synthetic scenario for fast regression testing. |
| BEIR-style open retrieval runner | retrieval | implemented | WaveMind: nDCG@k 0.35, Recall@k 0.48, MRR@k 0.32, precision@1 0.24, avg latency 117.0, p95 latency 256.6<br>Chroma: nDCG@k 0.35, Recall@k 0.47, MRR@k 0.32, precision@1 0.24, avg latency 1.79, p95 latency 2.39<br>Qdrant: nDCG@k 0.35, Recall@k 0.48, MRR@k 0.32, precision@1 0.24, avg latency 17.7, p95 latency 23.3 | Add sentence-transformers runs for SciFact, then add NFCorpus as the second BEIR dataset. |
| [NoMIRACL Russian retrieval](https://huggingface.co/datasets/miracl/nomiracl) | multilingual-retrieval | implemented | WaveMind: nDCG@k 0.43, Recall@k 0.52, MRR@k 0.49, precision@1 0.41, avg latency 10.2, p95 latency 15.5<br>Chroma: nDCG@k 0.44, Recall@k 0.52, MRR@k 0.49, precision@1 0.41, avg latency 2.60, p95 latency 3.44<br>Qdrant: nDCG@k 0.43, Recall@k 0.52, MRR@k 0.49, precision@1 0.41, avg latency 18.9, p95 latency 24.1 | Run sentence-transformers on the same NoMIRACL Russian split and then add the full MIRACL Russian corpus profile when disk/service capacity allows it. |
| [LoCoMo evidence retrieval runner](https://github.com/snap-research/locomo) | long-term-conversation-memory | implemented | WaveMind: evidence recall@k 0.39, precision@1 0.24, MRR@k 0.31, context saved 0.00, avg latency 3.95, p95 latency 7.44<br>Static vector: evidence recall@k 0.26, precision@1 0.13, MRR@k 0.19, context saved 0.00, avg latency 1.94, p95 latency 3.87<br>Chroma static: evidence recall@k 0.26, precision@1 0.13, MRR@k 0.18, context saved 0.00, avg latency 7.03, p95 latency 9.74<br>Qdrant static: evidence recall@k 0.26, precision@1 0.13, MRR@k 0.19, context saved 0.00, avg latency 147.6, p95 latency 210.2<br>WaveMind sentence: evidence recall@k 0.55, precision@1 0.33, MRR@k 0.43, context saved 0.00, avg latency 3.44, p95 latency 5.56<br>Chroma sentence: evidence recall@k 0.41, precision@1 0.22, MRR@k 0.30, context saved 0.00, avg latency 4.97, p95 latency 6.30<br>Qdrant sentence: evidence recall@k 0.41, precision@1 0.22, MRR@k 0.31, context saved 0.00, avg latency 124.3, p95 latency 149.7<br>WaveMind Core direct: context saved 0.00, avg latency 4.61, p95 latency 7.61<br>WaveMind + Memory OS direct: context saved 0.00, avg latency 5.14, p95 latency 8.50 | The current direct Memory OS run is admitted but slightly below Core on recall; tune feedback-free policies before claiming LoCoMo uplift. |
| [LoCoMo evidence retrieval runner](https://github.com/snap-research/locomo) | long-term-conversation-memory | implemented | WaveMind: evidence recall@k 0.39, precision@1 0.24, MRR@k 0.31, context saved 0.00, avg latency 3.95, p95 latency 7.44<br>Static vector: evidence recall@k 0.26, precision@1 0.13, MRR@k 0.19, context saved 0.00, avg latency 1.94, p95 latency 3.87<br>Chroma static: evidence recall@k 0.26, precision@1 0.13, MRR@k 0.18, context saved 0.00, avg latency 7.03, p95 latency 9.74<br>Qdrant static: evidence recall@k 0.26, precision@1 0.13, MRR@k 0.19, context saved 0.00, avg latency 147.6, p95 latency 210.2<br>WaveMind sentence: evidence recall@k 0.55, precision@1 0.33, MRR@k 0.43, context saved 0.00, avg latency 3.44, p95 latency 5.56<br>Chroma sentence: evidence recall@k 0.41, precision@1 0.22, MRR@k 0.30, context saved 0.00, avg latency 4.97, p95 latency 6.30<br>Qdrant sentence: evidence recall@k 0.41, precision@1 0.22, MRR@k 0.31, context saved 0.00, avg latency 124.3, p95 latency 149.7<br>WaveMind Core direct: context saved 0.00, avg latency 4.61, p95 latency 7.61<br>WaveMind + Memory OS direct: context saved 0.00, avg latency 5.14, p95 latency 8.50<br>WaveMind current public protocol: evidence recall@k 0.55, precision@1 0.33, MRR@k 0.43, avg latency 4.88, p95 latency 7.67, ingest avg ms 0.61<br>WaveMind + Memory OS current public protocol: evidence recall@k 0.55, precision@1 0.33, MRR@k 0.43, avg latency 5.99, p95 latency 8.67, ingest avg ms 0.49<br>Mem0 OSS: evidence recall@k 0.50, precision@1 0.26, MRR@k 0.37, avg latency 270.2, p95 latency 293.1, ingest avg ms 217.9<br>Hindsight OSS: evidence recall@k 0.32, precision@1 0.05, MRR@k 0.15, avg latency 320.6, p95 latency 463.1, ingest avg ms 62.3 | Repeat the real-system protocol on LongMemEval-S and add pinned answer-quality readers without presenting retrieval evidence as final answer quality. |
| [LongMemEval evidence retrieval](https://github.com/xiaowu0162/LongMemEval) | long-term-agent-memory | implemented | WaveMind: evidence recall@k 0.78, precision@1 0.70, MRR@k 0.76, context saved 0.87, avg latency 7.27, p95 latency 9.14<br>Chroma static: evidence recall@k 0.52, precision@1 0.36, MRR@k 0.46, context saved 0.89, avg latency 16.0, p95 latency 18.7<br>Static vector: evidence recall@k 0.52, precision@1 0.36, MRR@k 0.46, context saved 0.89, avg latency 0.08, p95 latency 0.10<br>Qdrant static: evidence recall@k 0.52, precision@1 0.36, MRR@k 0.46, context saved 0.89, avg latency 398.5, p95 latency 432.9<br>WaveMind Core direct: context saved 0.99, avg latency 8.26, p95 latency 12.6<br>WaveMind + Memory OS direct: context saved 0.99, avg latency 8.89, p95 latency 12.4 | The direct run now matches Core retrieval quality; improve maintenance amortization before enabling more aggressive adaptive policies on this dataset. |
| [LongMemEval evidence 50-query smoke](https://github.com/xiaowu0162/LongMemEval) | long-term-agent-memory | implemented | WaveMind: evidence recall@k 0.92, precision@1 0.76, MRR@k 0.83, context saved 0.87, avg latency 15.3, p95 latency 42.9<br>Chroma static: evidence recall@k 0.60, precision@1 0.26, MRR@k 0.39, context saved 0.89, avg latency 13.3, p95 latency 26.0<br>Static vector: evidence recall@k 0.60, precision@1 0.26, MRR@k 0.39, context saved 0.89, avg latency 0.34, p95 latency 2.14<br>Qdrant static: evidence recall@k 0.60, precision@1 0.26, MRR@k 0.39, context saved 0.89, avg latency 180.2, p95 latency 296.7 | Speed up full LongMemEval reruns by reusing per-question candidate indexes or adding a streaming runner mode. |
| [ANN index latency curve](https://github.com/erikbern/ann-benchmarks) | index-latency | implemented | WaveMind numpy: Recall@k 1.00, avg latency 1.99, p95 latency 1.45, p99 latency 1.63, build ms 395.1<br>WaveMind quantized: Recall@k 0.93, avg latency 16.3, p95 latency 20.1, p99 latency 28.2, build ms 1019.3<br>WaveMind annoy: Recall@k 0.73, avg latency 3.21, p95 latency 4.17, p99 latency 4.41, build ms 2300.3<br>WaveMind faiss: Recall@k 1.00, avg latency 80.5, p95 latency 2.42, p99 latency 3.87, build ms 458.3<br>Qdrant local: Recall@k 1.00, avg latency 33.8, p95 latency 39.2, p99 latency 44.4, build ms 8336.8 | Tune quantized search kernels, add FAISS on Linux/macOS CI, and test Qdrant service-mode curves beyond 50000 vectors. |
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/CLUSTER_AUTOSCALE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# WaveMind Cluster Autoscale Report

Generated: `2026-07-27T10:52:52Z`.
Generated: `2026-07-27T13:29:25Z`.

Cluster autoscale evidence is extracted from the checked-in scale-readiness artifact. It proves deterministic shard placement, failure-domain availability, autoscale planning, rebalance planning, operator reconciliation, quorum safety, active-active convergence, field-state CRDT behavior, and the 100M capacity envelope on these fixtures. It is not a real 100M vector-query latency benchmark, managed Kubernetes production run, or independent multi-region SLO.

Expand Down
8 changes: 4 additions & 4 deletions benchmarks/COST_EFFICIENCY.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# WaveMind Cost Efficiency Leaderboard

Generated: `2026-07-27T10:53:35Z`.
Generated: `2026-07-28T22:43:41Z`.

Measured rows come from checked-in load artifacts. Planned rows are capacity and cost contracts only; they do not unlock production latency or recall claims until the matching benchmark result exists.

Expand All @@ -17,9 +17,9 @@ Measured rows come from checked-in load artifacts. Planned rows are capacity and

| rank | profile | target class | engine | memories | recall | p99 ms | SLO | cost / 1M queries | monthly cost | source |
|---:|---|---|---|---:|---:|---:|---|---:|---:|---|
| 1 | sub_100k-wavemind-numpy-streaming-production_streaming_load_smoke_results | sub_100k | WaveMind numpy-streaming | 10,000 | 1 | 0.515 | pass | $0.694 | $182.5 | `benchmarks/production_streaming_load_smoke_results.json` |
| 2 | sub_100k-qdrant-sharded-service-streaming-production_streaming_load_qdrant_sharded_smoke_results | sub_100k | Qdrant sharded service streaming | 5,000 | 1 | 3.619 | pass | $0.694 | $182.5 | `benchmarks/production_streaming_load_qdrant_sharded_smoke_results.json` |
| 3 | sub_100k-wavemind-pgvector-streaming-production_streaming_load_pgvector_smoke_results | sub_100k | WaveMind pgvector streaming | 1,000 | 1 | 7.624 | pass | $0.694 | $182.5 | `benchmarks/production_streaming_load_pgvector_smoke_results.json` |
| 1 | sub_100k-wavemind-numpy-streaming-production_streaming_load_smoke_results | sub_100k | WaveMind numpy-streaming | 10,000 | 1 | 0.459 | pass | $0.694 | $182.5 | `benchmarks/production_streaming_load_smoke_results.json` |
| 2 | sub_100k-wavemind-pgvector-streaming-production_streaming_load_pgvector_smoke_results | sub_100k | WaveMind pgvector streaming | 1,000 | 1 | 7.624 | pass | $0.694 | $182.5 | `benchmarks/production_streaming_load_pgvector_smoke_results.json` |
| 3 | sub_100k-qdrant-sharded-service-streaming-production_streaming_load_qdrant_sharded_smoke_results | sub_100k | Qdrant sharded service streaming | 5,000 | 1 | 16.02 | pass | $1.389 | $365 | `benchmarks/production_streaming_load_qdrant_sharded_smoke_results.json` |
| 4 | sub_100k-qdrant-service-streaming-production_streaming_load_qdrant_smoke_results | sub_100k | Qdrant service streaming | 1,000 | 1 | 17.9 | pass | $1.389 | $365 | `benchmarks/production_streaming_load_qdrant_smoke_results.json` |
| 5 | 100k-qdrant-service-production_load_qdrant_100k_tuned_results | 100k | Qdrant service | 100,000 | 1 | 21.26 | pass | $1.389 | $365.02 | `benchmarks/production_load_qdrant_100k_tuned_results.json` |
| 6 | 1m-qdrant-service-streaming-production_streaming_load_qdrant_1m_tuned_results | 1m | Qdrant service streaming | 1,000,000 | 1 | 26.37 | pass | $2.083 | $547.74 | `benchmarks/production_streaming_load_qdrant_1m_tuned_results.json` |
Expand Down
24 changes: 24 additions & 0 deletions benchmarks/PUBLIC_MEMORY_COMPETITORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Public Memory Competitors

Official LoCoMo: **5,882 memories**, **1,977 evidence queries**, top-5.

| Engine | Recall@5 | Precision@1 | MRR@5 | Query avg | Query p95 | Ingest avg | Ingest scope |
|---|---:|---:|---:|---:|---:|---:|---|
| WaveMind | 0.548 | 0.333 | 0.432 | 4.88 ms | 7.67 ms | 0.61 ms | index_and_persistence_from_precomputed_embeddings |
| WaveMind + Memory OS | 0.548 | 0.332 | 0.431 | 5.99 ms | 8.67 ms | 0.49 ms | index_and_persistence_from_precomputed_embeddings |
| Chroma static | 0.408 | 0.219 | 0.305 | 4.12 ms | 4.86 ms | 0.75 ms | local_index_write_from_precomputed_embeddings |
| Qdrant static | 0.409 | 0.219 | 0.305 | 103.27 ms | 111.45 ms | 0.63 ms | local_index_write_from_precomputed_embeddings |
| Mem0 OSS | 0.500 | 0.263 | 0.369 | 270.24 ms | 293.08 ms | 217.91 ms | end_to_end_native_embedding_and_persistence |
| Hindsight OSS | 0.316 | 0.052 | 0.148 | 320.61 ms | 463.14 ms | 62.33 ms | end_to_end_native_embedding_and_persistence |

## Verdict

- Quality winner: **WaveMind** at recall@5 `0.548`.
- Fastest average local query: **Chroma static** at `4.12 ms`.

## Boundaries

- WaveMind, Chroma, and Qdrant ingest starts from shared precomputed embeddings. Mem0 and Hindsight ingest includes their native embedding and persistence work.
- This is LoCoMo retrieval evidence on one local machine. It is not final answer quality, hosted-service throughput, or an architecture-only comparison because real systems use their pinned native embedding stacks.
- Source commit: `4b6d7dd3e938dc04663bd7ba2c2356d5e7d1fe62`.
- Dataset SHA-256: `79fa87e90f04081343b8c8debecb80a9a6842b76a7aa537dc9fdf651ea698ff4`.
4 changes: 2 additions & 2 deletions benchmarks/agent_impact_results.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"schema": "wavemind.agent_impact_leaderboard.v1",
"generated_at": "2026-07-28T17:57:37Z",
"source_ref": "d011eb848e03",
"generated_at": "2026-07-28T22:43:41Z",
"source_ref": "4b6d7dd3e938",
"claim_boundary": "Agent-impact rows come from checked-in benchmark artifacts. They show behavioral lift on the configured tasks; they do not claim general agent success outside the listed scenarios.",
"summary": {
"benchmark_count": 8,
Expand Down
8 changes: 4 additions & 4 deletions benchmarks/benchmark_artifact_audit.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
{
"schema": "wavemind.benchmark_artifact_audit.v1",
"status": "pass",
"checked_at": "2026-07-28T17:57:38Z",
"generated_at": "2026-07-28T17:57:37Z",
"source_ref": "d011eb848e03",
"checked_at": "2026-07-28T22:43:43Z",
"generated_at": "2026-07-28T22:43:41Z",
"source_ref": "4b6d7dd3e938",
"workflow_run_id": null,
"refresh_profile": "local",
"max_age_days": 8.0,
"age_days": 1.5496840277777777e-05,
"age_days": 2.698244212962963e-05,
"implemented_count": 45,
"runner_ready_count": 3,
"planned_count": 5,
Expand Down
Loading
Loading