Beyond org-wide memory, each user has a personal namespace for preferences and
context. Use mem.user. The client must have a user_id.
user.remember
user.remember(key: str, value: str, confidence: float = 0.7) -> int
Store a per-user fact. confidence (0–1) weights it. Returns the node ID.
mem = Loom(org_id="lab", user_id="alice",
base_url="https://api.loom.getmetacognition.com", api_key="lk_live_...")
mem.user.remember("style", "concise plans with citations", confidence=0.9)
user.recall
user.recall(question: str, budget_tokens: int | None = None) -> list[dict[str, Any]]
Recall the user’s facts. Returns spans, just like org recall.
facts = mem.user.recall("how should I write plans?")
assert any("concise" in f["text"] for f in facts)
Per-user memory is isolated by user_id. Over HTTP, the user is taken from the
JWT (or the X-User-Id header); a missing user id is a 400.
Multi-tenancy
How orgs and users isolate memory.