Metadata-Version: 2.5
Name: vantadb-crewai
Version: 0.5.0
Summary: CrewAI adapter for VantaDB — embedded vector memory for AI agents
Project-URL: Homepage, https://github.com/ness-e/Vantadb
Project-URL: Repository, https://github.com/ness-e/Vantadb
Project-URL: Documentation, https://github.com/ness-e/Vantadb/tree/main/integrations/crewai
Author: VantaDB Team
License: Apache-2.0
Keywords: ai-memory,crewai,rag,vantadb,vector-store
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Database
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.11
Requires-Dist: crewai<2,>=1.14
Requires-Dist: vantadb-py<0.9.0,>=0.6.1
Description-Content-Type: text/markdown

# VantaDB × CrewAI

CrewAI Tool adapter for [VantaDB](https://github.com/ness-e/Vantadb).

## Install

> **Not on PyPI yet.** The `vantadb-crewai` package builds and passes
> `twine check` locally; it will go live with the first `adapters-v*` tag
> release. Until then, install from source.

```bash
# Today, from a repo checkout
cd integrations/crewai && pip install .
```

### Install from PyPI (after first release)

```bash
pip install vantadb-crewai
```

## Quickstart

```python
from crewai import Agent, Task, Crew
from vantadb_crewai import VantaDBTool

rag_tool = VantaDBTool(
    name="Memory Search",
    description="Search stored documents in VantaDB",
    db_path="./my_data",
    namespace="docs",
)

agent = Agent(
    role="Assistant",
    goal="Answer questions using stored knowledge",
    tools=[rag_tool],
)
```

## API

- `VantaDBTool(name, description, db_path, namespace)` — CrewAI-compatible RAG tool
- `VantaDBMemoryBackend(db_path, namespace)` — `StorageBackend` for unified
  `Memory` (CrewAI ≥1.14): `save/search/delete/update/get_record/list_records/`
  `get_scope_info/list_scopes/list_categories/count/reset` + async
  `asave/asearch/adelete`

```python
from crewai import Memory
from vantadb_crewai import VantaDBMemoryBackend

memory = Memory(storage=VantaDBMemoryBackend(db_path="./my_data"))
memory.remember("We decided to use PostgreSQL.", scope="/project/decisions")
print(memory.recall("What database did we choose?"))
```

System fields live under reserved `__mem_*` metadata keys; your metadata is
untouched. Records without embeddings are invisible to vector `search`
(same as LanceDB).

## Why VantaDB?

- **Embedded & local-first:** the storage engine is a Rust library embedded
  in your process — no server to deploy, no network hop; data lives in your
  filesystem.
- **Persistent hybrid search:** vectors + BM25 text search out of the box,
  where CrewAI's native memory covers only short-term session recall.
- **Zero-setup alternative to hosted stacks:** unlike Zep (requires a server)
  or Cognee (spins up its own knowledge-graph runtime), VantaDB is a plain
  library you import.

## Development

```bash
pip install -e .
```
