Skip to main content

Persistent dynamic memory engine with vector search and wave-field re-ranking

Project description

WaveMind is persistent dynamic memory for AI agents: vector search first, wave-field priority second, SQLite as the source of truth.

Python Tests License

Terminal Demo

$ python examples/demo.py
✓ Remembered: "Andrey is a trader who tracks market breakouts."
✓ Remembered: "Andrey prefers short practical answers about AI agents."

Query: "Andrey trader agent"
→ Result 1 (0.54): "Andrey is a trader who tracks market breakouts."
→ Result 2 (0.30): "Andrey prefers short practical answers about AI agents."

The demo is offline, keyless, and uses the built-in hash encoder.

Quick Start

python -m pip install -e .
wavemind remember "Andrey is a trader" --namespace demo
wavemind query "trader" --namespace demo

This creates wavemind.sqlite3 in your current working directory.

For sentence-transformer embeddings:

python -m pip install -e ".[sentence]"
wavemind --encoder sentence remember "Andrey is a trader" --namespace demo
wavemind --encoder sentence query "What does Andrey do?" --namespace demo

One-file setup scripts are also included:

sh install.sh
install.bat

Benchmark

Real Russian sentences from Tatoeba, 50 one-word queries, NumPy exact index.

metric hash sentence-transformers
precision@1 1.00 1.00
precision@3 1.00 1.00
avg query 0.49 ms 52.84 ms

Capacity check with the hash encoder:

memories precision@1 precision@3 avg query
200 1.00 1.00 0.49 ms
1000 0.88 1.00 1.50 ms
5000 0.72 0.88 5.68 ms

Run locally:

python benchmarks/ru_sentences_benchmark.py --sentences 200 --queries 50 --encoder hash --index numpy
python benchmarks/ru_sentences_benchmark.py --sentences 200 --queries 50 --encoder sentence --index numpy

Comparison

feature WaveMind Chroma Qdrant
Primary role Agent memory engine Embedding database Production vector database
Local SQLite persistence Yes Yes No, separate service/storage
HTTP API FastAPI included Included Included
Dynamic memory priority Wave-field hotness, TTL, priority Metadata/filter driven Payload/filter driven
Built-in forgetting TTL and explicit forget Manual delete/filtering Manual delete/filtering
Best fit Small to medium agent memory with dynamic recall Local RAG apps and prototypes Large-scale vector search
Scale target today Up to 1000 optimal on NumPy, FAISS recommended beyond 5000 Larger than WaveMind local mode Production scale

WaveMind is not trying to replace dedicated vector databases at scale. Its difference is dynamic priority: frequently used memories can become hotter while old or low-priority memories fade.

Known Limitations

  • Optimal capacity on the current NumPy exact index is up to 1000 records.
  • At 5000 records, one-word precision@1 is currently 0.72 with the hash encoder; many misses are ambiguous queries where another sentence containing the same word ranks first.
  • For N > 5000, use the FAISS backend with --index faiss or another production vector index.
  • sentence-transformers/paraphrase-multilingual-mpnet-base-v2 requires about 420 MB of model files and measured about 53 ms per query on the benchmark machine.
  • The bundled benchmark is a retrieval sanity check, not a full agent-memory benchmark against Chroma or Qdrant yet.

Roadmap

  • FAISS-first production index path with persisted index rebuilds.
  • Larger public benchmark against Chroma and Qdrant on agent-memory tasks.
  • Better semantic query expansion for short and ambiguous queries.
  • Namespace quotas, backups, and daemon hardening for SaaS use.
  • Webhook on recall for agent runtimes.
  • OHLCV pattern-memory experiments for market research and backtests.

License

MIT. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wavemind-2.0.0.tar.gz (25.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wavemind-2.0.0-py3-none-any.whl (20.8 kB view details)

Uploaded Python 3

File details

Details for the file wavemind-2.0.0.tar.gz.

File metadata

  • Download URL: wavemind-2.0.0.tar.gz
  • Upload date:
  • Size: 25.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for wavemind-2.0.0.tar.gz
Algorithm Hash digest
SHA256 2365d12c718c3747017038fa2e7e47ccb15896dd783ee35fff7a60292fec526e
MD5 2ef4a1fc4ed39f64c221ba509feedb11
BLAKE2b-256 90c7101a09dbbef3b75bc454cd5f21bd743fd1622dd2a68fe45d1ab10bf3f491

See more details on using hashes here.

Provenance

The following attestation bundles were made for wavemind-2.0.0.tar.gz:

Publisher: publish.yml on CaspianG/wavemind

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wavemind-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: wavemind-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 20.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for wavemind-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bef05a2cbb00ebd7f3ace488f475b970f680d73fd8c5086c4110cb681a4b3508
MD5 8f8461c60ca47b0f834812af2844f54c
BLAKE2b-256 05b1a1dba80b4cd8f03dce1f37c7a315a1a373e8d69466068ec7328c110e3113

See more details on using hashes here.

Provenance

The following attestation bundles were made for wavemind-2.0.0-py3-none-any.whl:

Publisher: publish.yml on CaspianG/wavemind

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page