Quick Start
This host factory explicitly supplies both key-value and graph storage. It makes no provider calls until the caller runs the Agent.userId and tenantId values when running the Agent. The host owns backend scope and credentials. Drain Agent work before closing its storage and separately owned graph resources.
Neo4j Backend
Neo4jGraphStore is a persistent adapter; follow the graph-store setup for connection fields and optional dependencies. InMemoryGraphStore is suitable for local fixtures and loses state on close. Neither backend choice authenticates a caller.
Auto-Extraction from Conversations
WithautoExtract: true, the memory layer can ask a model to extract entities and relationships. This adds provider work. It tags extracted records with user ownership; it skips extraction without a user ID. Extracted relationships are model-generated claims, so review them before using them as authoritative business data.
Graph Traversal and Search
The standalone store exposesaddNode, addEdge, search, traverse, and related operations. This local example demonstrates a graph relationship without a model:
_userId property and filters owned nodes/edges. Raw backend queries and unified MemoryManager.recall() are not interchangeable with that filtered path.
Temporal Awareness
Nodes and edges include validity metadata.traverse() accepts includeInvalid; set it intentionally when inspecting historical data. Applications own the meaning of a relationship change and any audit trail they require.
Configuration
The built-in memory-context traversal uses depth 2. There is no
memory.graph.maxDepth field; maxDepth belongs to direct traversal options.