Memories
The Memories resource handles episodic memory from conversations. Add conversations to extract facts automatically, and retrieve relevant context for new interactions.
client.memories.add()POST /v1/memoriesAdd a conversation to memory. Facts are extracted asynchronously and stored in the knowledge graph.
Parameters
group_idstrRequiredUnique identifier for the user or group. Convention: "user:123" or "org:acme".
messageslist[Message | dict]RequiredList of messages to add to memory. Each message should have content, role_type, and optionally role.
entity_typeslist[EntityTypeConfig]OptionalCustom entity types to extract from the conversation.
link_to_org_graphboolOptionalDefault: TrueWhether to link extracted entities to the organization graph.
link_to_ontologyboolOptionalDefault: FalseWhether to link entities to the ontology graph.
map_to_ontologyboolOptionalDefault: FalseMap extracted facts to ontology concepts.
ontology_domainstrOptionalDomain to use for ontology mapping (required if map_to_ontology=True).
ontology_confidence_thresholdfloatOptionalDefault: 0.7Minimum confidence score for ontology mapping.
Returns
AddMessagesResponse with message and success fields.
Example
from memoair import MemoAir, Message client = MemoAir() # Add a conversationresponse = client.memories.add( group_id="user:john", messages=[ Message( content="I'm a Python developer working on AI projects", role_type="user", role="John" ), Message( content="That's great! What frameworks do you use?", role_type="assistant" ), Message( content="Mainly FastAPI for backends and PyTorch for ML", role_type="user", role="John" ), ], link_to_org_graph=True, # Connect to organization knowledge) print(response.message)# "Messages added successfully. Facts will be extracted asynchronously."client.memories.get()POST /v1/memories/retrieveRetrieve relevant context from memory for the current conversation.
Parameters
group_idstrRequiredThe group ID to retrieve memory for.
messageslist[Message | dict]RequiredCurrent conversation context to find relevant memories.
max_factsintOptionalDefault: 10Maximum number of facts to retrieve.
center_node_uuidstrOptionalUUID of a node to center the memory retrieval around.
Returns
GetMemoryResponse with facts: list[FactResult] and a to_prompt_context() helper method.
Example
from memoair import MemoAir, Message client = MemoAir() # Retrieve context for a new querycontext = client.memories.get( group_id="user:john", messages=[ Message(content="What frameworks should I use?", role_type="user") ], max_facts=10,) # Print retrieved factsfor fact in context.facts: print(f"- {fact.fact}") # Use in your LLM promptprompt = f"""You are a helpful assistant. What you know about this user:{context.to_prompt_context()} User: What frameworks should I use?"""client.memories.delete_group()DELETE /v1/memories/group/{group_id}Delete all memories for a group. Useful for GDPR compliance.
Parameters
group_idstrRequiredThe group ID to delete all memories for.
Example
# GDPR: Delete all user dataresult = client.memories.delete_group(group_id="user:john") if result.success: print("All user memories deleted")