Memory Vectors
advancedLow-level vector API: store, query, retrieve, compose, and manage patterns directly with embedding vectors.
Store pattern
/v1/memory/storeStore a key-value pattern in the tenant's memory space.
keyarray[number]requiredEmbedding vector (key) — any dimension accepted.
valuearray[number]requiredValue vector — any dimension accepted.
metadataobject | nullArbitrary metadata to attach to the pattern.
source_diminteger | nullOriginal embedding dimension (for inverse projection on query results).
{
"success": true,
"pattern_id": "pat_a1b2c3",
"patterns_used": 1524,
"patterns_limit": 100000
}Query memory
/v1/memory/queryQuery the memory with an embedding vector. Returns raw matches ranked by confidence.
embeddingarray[number]requiredQuery embedding — any dimension accepted.
top_kintegerDefault: 1Number of results to return (1–100).
return_native_dimbooleanDefault: falseIf true, unproject results back to the query's original dimension.
{
"results": [
{
"value": [
0.12,
-0.34,
0.56,
"..."
],
"confidence": 0.92,
"pathway": "exact"
}
],
"latency_ms": 3.2
}Retrieve intelligent
/v1/memory/retrieveIntelligent retrieval with Active Inference + semantic re-ranking + metadata.
embeddingarray[number]requiredQuery embedding vector.
top_kintegerDefault: 5Number of results to return (1–100).
{
"results": [
{
"confidence": 0.94,
"metadata": {
"source": "user_input",
"category": "science"
},
"was_reranked": true,
"semantic_score": 0.89
}
],
"info": {
"boosted": true,
"n_candidates": 12,
"original_top_score": 0.87,
"boosted_top_score": 0.94
},
"latency_ms": 8.1
}Compose patterns
/v1/memory/composeCompose multiple patterns via compositional retrieval.
keysarray[array[number]] | nullPatterns to compose as embedding vectors (2–10 items).
textsarray[string] | nullPatterns to compose as text strings, auto-embedded (2–10 items).
weightsarray[number] | nullComposition weights (must match length of keys/texts).
{
"result": [
0.23,
-0.45,
0.67,
"..."
],
"confidence": 0.85
}Provide either keys (raw embeddings) or texts (auto-embedded server-side), not both.
Compose fractional (SLERP)
/v1/memory/compose/fractionalSLERP interpolation between two patterns with continuous alpha blending.
key_aarray[number] | nullFirst pattern embedding.
key_barray[number] | nullSecond pattern embedding.
text_astring | nullFirst pattern as text (auto-embedded).
text_bstring | nullSecond pattern as text (auto-embedded).
pattern_a_idstring | nullFirst pattern ID (looked up from metadata store).
pattern_b_idstring | nullSecond pattern ID (looked up from metadata store).
alphanumberDefault: 0.5Blend ratio: 0.0 = A pure, 1.0 = B pure (0.0–1.0).
{
"result": [
0.34,
-0.12,
0.78,
"..."
],
"confidence": 0.91,
"info": {
"geodesic_distance": 0.42,
"blend_type": "slerp",
"alpha_used": 0.5
}
}Specify patterns via one of: key_a/key_b, text_a/text_b, or pattern_a_id/pattern_b_id.
Update pattern
/v1/memory/patternUpdate the value of an existing pattern without delete/recreate.
keyarray[number]requiredKey of the pattern to update.
new_valuearray[number]requiredNew value vector.
metadataobject | nullUpdated metadata.
{
"message": "Pattern updated"
}Delete pattern
/v1/memory/patternForget a pattern (GDPR-compliant deletion).
The request body is a raw JSON array containing the key vector identifying the pattern to forget.
{
"message": "Pattern forgotten"
}curl -X DELETE https://api.engramma-memory.com/v1/memory/pattern \
-H "X-API-Key: $ENGRAMMA_API_KEY" \
-H "Content-Type: application/json" \
-d '[0.12, -0.34, 0.56, 0.78]'Get pattern by index
/v1/memory/pattern/{pattern_idx}Retrieve a specific pattern by its internal index.
pattern_idxintegerrequiredPattern index (path parameter).
{
"key": [
0.12,
-0.34,
"..."
],
"value": [
0.56,
0.78,
"..."
],
"metadata": {}
}Semantic query (deprecated)
/v1/memory/query/semanticQuery with semantic re-ranking. Deprecated — use POST /v1/memory/retrieve instead.
embeddingarray[number]requiredQuery embedding.
top_kintegerDefault: 5Number of results (1–50).
This endpoint is deprecated. Migrate to POST /v1/memory/retrieve which provides Active Inference + semantic re-ranking.
Batch store
/v1/memory/batch/storeStore multiple patterns in a single request.
patternsarray[BatchPatternItem]requiredArray of patterns to store.
Each BatchPatternItem:
| Field | Type | Required | Description |
|---|---|---|---|
key | array[number] | Yes | Embedding vector |
value | array[number] | Yes | Value vector |
metadata | object | null | No | Metadata |
{
"stored": 10,
"failed": 0
}Batch retrieve
/v1/memory/batch/retrieveRetrieve multiple patterns in a single request.
queriesarray[BatchQueryItem]requiredArray of query items.
Each BatchQueryItem:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
embedding | array[number] | Yes | — | Query embedding |
top_k | integer | No | 1 | Results per query (1–100) |
{
"results": [
[{"value": [...], "confidence": 0.92, "pathway": "exact"}],
[{"value": [...], "confidence": 0.87, "pathway": "energy"}]
]
}Sleep consolidation
/v1/memory/sleepTrigger a sleep/consolidation cycle (LTP/LTD + composition discovery).
batch_sizeintegerDefault: 5Compositions to explore during sleep (1–20).
{
"consolidated": 3,
"compositions_discovered": 2,
"patterns_strengthened": 5,
"patterns_weakened": 1
}Get brain state
/v1/memory/brainGet full brain/XAI state — regime, surprise, head weights, temporal predictions.
{
"regime": "normal",
"surprise": 0.23,
"head_weights": [
0.4,
0.35,
0.25
],
"temporal_predictions": [],
"patterns_total": 1524,
"consolidation_status": "idle"
}Next steps
- Memory Text API — High-level text interface
- Consolidation & Engine — Semantic, explorer, consolidation
- Causal Reasoning — Causal inference on patterns