Capture, surface, synthesize, list, and delete memories from your xysq vault.
The memory namespace is the episodic layer of xysq — it stores captures from conversations, decisions, and preferences, and makes them retrievable across sessions, agents, and time.
from xysq import Xysqwith Xysq() as client: client.memory.capture("...") client.memory.surface("...") client.memory.synthesize("...")
result = client.memory.capture( content="Team decided to use PostgreSQL for the main database", context="Architecture review — 2026-04-15", tags=["architecture", "database"], significance="high",)print(result.document_id) # cluster ID — echo on subsequent captures in same topicprint(result.status) # "processing" | "completed"print(result.applied_tags)print(result.available_tags)
Parameters
Parameter
Type
Default
Description
content
str
required
The memory text to store
context
str
None
Free-text context (session, task, source)
tags
list[str]
None
Tags for filtering and organisation
significance
str
"normal"
"low" | "normal" | "high"
scope
str
"permanent"
"permanent" | "session"
document_id
str
None
Omit on first capture in a conversation; the server mints and returns one. Echo it on subsequent captures in the same topic to cluster them. Omit again on topic drift to start a fresh document.
Answer a natural language question from your memory bank. Uses your stored memories as the source of truth.
result = client.memory.synthesize( "What are the team's engineering standards?", budget="mid", write_back=False,)print(result.answer)print(result.confidence) # "high" | "medium" | "low"print(result.sources) # list of memory IDs used
Every method has an async equivalent on AsyncXysq:
from xysq import AsyncXysqasync with AsyncXysq() as client: await client.memory.capture("async-captured memory") memories = await client.memory.surface("async patterns") result = await client.memory.synthesize("What do I know about async?")