Areev Documentation
What is Areev?
Areev is a knowledge database that gives AI agents long-term, structured memory. It stores every piece of knowledge as an immutable, content-addressed grain in the .mg binary format.
Areev encrypts every grain at rest with AES-256-GCM, chains them into a tamper-evident audit trail, and verifies the database against 91 compliance checks spanning 7 regulations (GDPR, HIPAA, EU AI Act, CCPA, LGPD, PIPL, SOX). Each grain carries its own type, provenance, confidence score, and policy metadata.
Areev implements the Open Memory Specification (OMS) 1.2, which defines 10 grain types for classifying memories. The engine combines Fjall LSM storage, Tantivy BM25 full-text search, HNSW vector similarity, and a hexastore for graph traversal — fused into a single query path via Reciprocal Rank Fusion (RRF).
| Capability | Details |
|---|---|
| 10 grain types | Belief, Event, State, Workflow, Action, Observation, Goal, Reasoning, Consensus, Consent |
| 5 protocol interfaces | HTTP (194 endpoints), gRPC (65 methods), MCP (15 tools), A2A (15 skills), CLI (68 commands) |
| 91 compliance checks | GDPR, HIPAA, EU AI Act, CCPA, LGPD, PIPL, SOX |
| Encryption | AES-256-GCM per-user DEK, HKDF-SHA256 key derivation, HMAC blind indexes |
| Search | BM25 full-text + HNSW vector + hexastore graph + RRF hybrid fusion |
| 5 build profiles | dev (default), edge, node, cluster, cloud |
How do I create a memory database?
Start the Areev server and create a memory with your chosen compliance policy:
# Start the server
areev serve --port 3000
# Create a memory with GDPR policy
curl -X POST http://localhost:3000/api/memories \
-H "Authorization: Bearer $AREEV_KEY" \
-H "Content-Type: application/json" \
-d '{"id": "my-db", "policy": "gdpr"}'
The policy (gdpr, hipaa, ccpa, sox, ephemeral, permissive, etc.) determines which compliance checks run on every read and write. Once created, the memory is ready to accept grains from any SDK or protocol.
How do I store and recall memories?
Connect to the memory and use remember to store natural language, recall to retrieve:
Python:
from areev import Areev
mem = Areev("http://localhost:3000", memory_id="my-db", api_key="...")
result = mem.remember("John likes coffee", user_id="u1")
# result.source_hash, result.mode == "async", result.marker_status == "pending"
TypeScript:
const result = await mem.remember("John likes coffee", { user_id: "u1" });
Rust:
let result = mem.remember(RememberRequest {
text: "John likes coffee".into(),
user_id: Some("u1".into()),
..Default::default()
}).await?;
Recall uses hybrid search (BM25 + vector + graph) with Reciprocal Rank Fusion:
Python:
results = mem.recall("what does John like?", limit=5)
for hit in results:
print(hit.grain_type, hit.fields, hit.score)
HTTP:
POST /api/memories/my-db/recall
Authorization: Bearer ar_...
Content-Type: application/json
{"query": "what does John like?", "limit": 5}
How do I get started?
Follow the Quickstart to install Areev and store your first grain. The Installation guide covers all five build profiles — from the edge binary to the cloud profile with Raft consensus.
Related
- Quickstart: Install Areev and store your first grain
- Installation: All installation methods — cargo, Docker, Kubernetes
- Grain Types: The 10 OMS 1.2 memory types and when to use each
- HTTP / REST API: Complete reference for all 194 HTTP endpoints