Project releases
LionAGI 0.35.5 adds an optional RuVector memory backend for agent retrieval
LionAGI 0.35.5 ships an opt-in RuVector backend. Your application supplies the embeddings, unfiltered searches use a native HNSW index, filtered searches rank exactly, and everything stays in process memory.
GitHub activity: · Published:
Two ways to rank
No filter: approximate search. With tags or filters: an exact ranking over the records that qualify.
Explanatory diagram · not live telemetryYour embeddings
Supplied by the application
RuVector memory store
In process, not persisted
No filter: HNSW
Approximate cosine search
Tags or filters
Exact cosine over eligible records
Ranked memories
Read-only search tool
What changed
LionAGI is a Python framework for building agent workflows. Version 0.35.5, released on October 12, adds an optional RuVector backend for agent memory and retrieval. It is opt-in: you install the ruvector extra and import it explicitly from lionagi.integrations.ruvector. A plain import lionagi does not load it.
- RuVectorMemoryStore implements LionAGI's MemoryStore protocol, so a Branch can use it as its memory.
- Your application supplies the embeddings. The backend does not call any embedding provider on its own.
- Searches without tags or filters use RuVector's native HNSW index, which is approximate. Searches with tags or metadata filters rank every eligible record exactly by cosine similarity. A record matches if it has any of the requested tags and all of the requested metadata filters.
- RuVectorStore.as_tool gives a branch a read-only ruvector_search tool.
- The index lives in process memory. There is no persistence, so its contents are lost when the process ends.
What the published package contains
PyPI lists lionagi 0.35.5 with a py3-none-any wheel uploaded at 2026-10-12T02:27:43Z and a source distribution at 02:27:45Z, neither yanked. The SHA-256 of each downloaded file matches PyPI's published digest. The wheel contains lionagi/integrations/ruvector with __init__.py, memory.py and store.py. Its metadata declares a ruvector extra that requires ruvector >=0.1.2,<0.2 and numpy >=1.24,<3. Python 3.10 or later is required.
PR #3451 was merged at 2026-10-11T23:28:31Z, and the GitHub release was published at 02:10:25Z the next day.
Get started
Use Python 3.10 or later in a fresh virtual environment. Install the release with its ruvector extra, then import the backend. The import should succeed silently. Without the extra, the package raises an ImportError that names the missing extra.
Documentation-verified only. We inspected the published wheel but did not install it, run these commands or execute any search.
pip install 'lionagi[ruvector]==0.35.5'
python -c "from lionagi.integrations.ruvector import RuVectorMemoryStore"
The project's own text uses uv add 'lionagi[ruvector]' for the same extra. This release adds no MCP server or skills setup.
Use it today
Input: short notes plus embeddings from the model your application already uses. Workflow: store them through RuVectorMemoryStore on a Branch, then search with a tag such as a project name. Output: the most similar tagged notes, ranked exactly. Give the agent the read-only ruvector_search tool when it should look things up but never write.
Experimental commentary — acceptance test
Separate open proposals, LionAGI draft #3454 and RuVector PR #1190, explore persistence and bounded relevance feedback. They are not part of this release, and nothing here learns or trains a model. A future persistence acceptance test should verify that stored identifiers and payloads survive a process restart. Approximate search rankings may differ after an index rebuild. This release keeps memory only until the process exits.
Limits and verification
- Sources: release notes, the merged PR, the pinned source, and the PyPI metadata and wheel, inspected read-only on 2026-10-12.
- The pull request includes a small synthetic benchmark run by its author, in which exact NumPy search was faster. We do not quote its figures, and the newsroom ran no benchmark.
- HNSW search is approximate. Use a filtered query when you need an exact ranking over a known subset.