MemoryNode¶
Represents an entity in the knowledge graph.
Structured Data Import
You can directly create and add custom entities without LLM extraction. See the Structured Data Guide for complete examples.
Definition¶
@dataclass
class MemoryNode:
id: str
name: str
entity_type: str
description: str = ""
embedding: list[float] = None
importance: float = 1.0
access_count: int = 0
last_accessed: datetime = None
created_at: datetime = None
user_id: str = "default"
memory_id: str = "default"
aliases: list[str] = None
properties: dict = None
Fields¶
| Field | Type | Description |
|---|---|---|
id | str | Unique identifier |
name | str | Entity name |
entity_type | str | Type (Person, Company, etc.) |
description | str | Entity description |
embedding | list[float] | Vector embedding |
importance | float | Importance score (0-1) |
access_count | int | Number of times accessed |
last_accessed | datetime | Last access time |
created_at | datetime | Creation time |
user_id | str | Owner user ID |
memory_id | str | Memory context ID |
aliases | list[str] | Alternative names |
properties | dict | Additional properties |
Example¶
from graphmem.core.memory_types import MemoryNode, MemoryImportance
from datetime import datetime
node = MemoryNode(
id="elon_musk_001",
name="Elon Musk",
entity_type="Person",
description="CEO of Tesla and SpaceX",
importance=MemoryImportance.CRITICAL, # Key person, never decays
aliases={"Musk", "Elon", "E. Musk"}, # Set for alias matching
properties={
"title": "CEO",
"companies": ["Tesla", "SpaceX", "Neuralink"],
},
user_id="alice",
memory_id="chat",
)
Adding to GraphMem¶
from graphmem import GraphMem, MemoryConfig
# Initialize
memory = GraphMem(config, memory_id="my_agent", user_id="default")
memory._ensure_initialized()
# Add custom entity
memory._memory.add_node(node)
memory.save()
# Now you can query it!
response = memory.query("Who is the CEO of Tesla?")
Methods¶
to_dict()¶
Convert to dictionary.
from_dict()¶
Create from dictionary.