PulseDB
Collective memory for AI agents. Not message passing. Not RAG. A purpose-built embedded database for multi-agent coordination.
PulseDB is an embedded database purpose-built for agentic AI systems. It provides persistent collective memory for multi-agent systems where agents share experiences and learn from each other — without coordination overhead.
Features
- Experience-native storage — First-class support for agent experiences with importance, confidence, domain tags, and typed variants (insights, errors, patterns, decisions)
- Integrated vector search — Built-in HNSW approximate nearest neighbor search for semantic similarity (384-dimensional embeddings)
- Knowledge graph — Typed relations between experiences (Supports, Contradicts, Elaborates, Supersedes, Implies, RelatedTo)
- Real-time notifications — In-process watch streams via crossbeam channels (<100ns overhead per event) and cross-process change detection
- Context assembly — Single API call retrieves similar experiences, recent activity, insights, relations, and active agents
- SubstrateProvider — Async trait adapter for agent framework integration
- Optional ONNX embeddings — Built-in all-MiniLM-L6-v2 (384d) with automatic model download (
builtin-embeddingsfeature) - ACID transactions — redb-backed storage with crash safety via shadow paging
Quick Start
use ;
// Open or create a database
let db = open?;
// Create a collective (isolated namespace)
let collective = db.create_collective?;
// Record an experience
db.record_experience?;
// Search for relevant experiences
let query_embedding = vec!;
let results = db.search_similar?;
// Clean up
db.close?;
Installation
Add PulseDB to your Cargo.toml:
[]
= "0.1"
With built-in embedding generation (no external embedding service needed):
[]
= { = "0.1", = ["builtin-embeddings"] }
Performance
Measured on Apple Silicon (M-series), single-threaded:
| Operation | 1K experiences | Target (100K) |
|---|---|---|
record_experience |
5.5 ms | < 10 ms |
search_similar (k=20) |
95 us | < 50 ms |
get_context_candidates |
189 us | < 100 ms |
get_experience by ID |
1.3 us | — |
Run benchmarks yourself: cargo bench
Architecture
┌─────────────────────────────────────────────────────────────────┐
│ CONSUMER APPLICATIONS │
│ (Agent Frameworks, Custom Agent Systems, RAG Pipelines) │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────┐│
│ │ PulseDB Public API ││
│ │ record_experience() get_context_candidates() watch() ││
│ │ create_collective() store_relation() store_insight() ││
│ └─────────────────────────────────────────────────────────────┘│
│ │ │
│ ┌───────────────────────────┼───────────────────────────────┐ │
│ │ PULSEDB CORE │ │
│ │ │ │ │
│ │ ┌─────────────┐ ┌──────┴────────┐ ┌─────────────────┐ │ │
│ │ │ Embedding │ │ Query Engine │ │ Watch System │ │ │
│ │ │ Provider │ │ (candidates) │ │ (crossbeam) │ │ │
│ │ └─────────────┘ └───────────────┘ └─────────────────┘ │ │
│ │ │ │ │ │ │
│ │ ┌──────┴─────────────────┴───────────────────┴──────────┐│ │
│ │ │ Storage Layer ││ │
│ │ │ ┌─────────────┐ ┌─────────────────────┐ ││ │
│ │ │ │ redb │ │ HNSW Index │ ││ │
│ │ │ │ (KV store) │ │ (hnsw_rs) │ ││ │
│ │ │ └─────────────┘ └─────────────────────┘ ││ │
│ │ └────────────────────────────────────────────────────────┘│ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
Comparison
| Feature | PulseDB | pgvector | sqlite-vss | Qdrant | ChromaDB | LanceDB |
|---|---|---|---|---|---|---|
| Embedded (no server) | Yes | No | Yes | No | No | Yes |
| Experience-native model | Yes | No | No | No | No | No |
| Vector search | Yes | Yes | Yes | Yes | Yes | Yes |
| Knowledge graph | Yes | No | No | No | No | No |
| Real-time watch | Yes | No | No | No | No | No |
| Context assembly | Yes | No | No | No | No | No |
| ACID transactions | Yes | Yes | Yes | No | No | No |
| Language | Rust | SQL | C/SQL | Rust | Python | Rust |
PulseDB's unique position: The only embedded database with experience-native storage, integrated vector + graph search, and real-time awareness primitives — purpose-built for agentic AI.
Key Concepts
Collective
A collective is an isolated namespace for experiences, typically one per project. Each collective has its own vector index.
Experience
An experience is a unit of learned knowledge: content, embedding, importance, confidence, domain tags, and a typed variant (insight, error pattern, success pattern, etc.).
SubstrateProvider
The SubstrateProvider trait provides an async interface for integrating PulseDB with agent frameworks and orchestration layers. PulseDBSubstrate wraps sync operations with tokio::spawn_blocking for async compatibility.
Documentation
License
PulseDB is dual-licensed:
- Open Source: GNU Affero General Public License v3.0 (AGPL-3.0) — free for open-source projects and internal use. If you modify PulseDB and offer it as a network service, you must release your source code under AGPL-3.0.
- Commercial License: For proprietary use without AGPL obligations, contact us for a commercial license.
This ensures PulseDB remains free for the community while protecting against unauthorized commercial hosting.