Store text into episodic memory (Qdrant) and semantic memory (Neo4j knowledge graph).
/brain/ingestProcesses a piece of text through the full ingestion pipeline:
use_llm_extraction: true)session_id provided)| Field | Type | Required | Default | Description |
|---|---|---|---|---|
text | string | ✓ | — | The text to ingest. Minimum 1 character. |
persona | string | "shared" | Memory sub-namespace within your user account. | |
source | string | "user" | Origin label: "user", "assistant", or "document". Affects confidence scoring. | |
session_id | string | null | Enables working memory update for this session. | |
use_llm_extraction | boolean | false | Use LLMGraphTransformer (GPT-4.1) instead of spaCy for richer graph extraction. Costs more. | |
metadata | object | null | Arbitrary key-value pairs stored alongside the memory. |
| Field | Type | Description |
|---|---|---|
facts_ingested | int | Number of graph relationships stored in Neo4j. |
episodic_chunks | int | Number of vector chunks stored in Qdrant. |
entities_extracted | int | Number of entity nodes created or updated. |
triples_extracted | int | Same as facts_ingested. |
working_memory_updated | boolean | Whether the session topic vector was updated. |
latency_ms | float | Total processing time in milliseconds. |
POST /brain/ingest/batchFor ingesting multiple texts efficiently in one call.
| Tier | Max batch size |
|---|---|
| Free | 5 |
| Starter | 20 |
| Pro | 50 |
| Scale / Enterprise | 100 |
Enable use_llm_extraction: true for long-form documents (technical specs, architecture docs, meeting notes) where entity relationships are complex. Keep it disabled for short conversational turns — spaCy is sufficient and much faster.
Memories stored with source: "user" have higher confidence than source: "assistant" in conflict resolution. When two memories contradict each other for the same slot, the user-sourced one wins.
Any fields in metadata are stored alongside the vector. You can use them for custom filtering in direct API calls.