Build
MemorySpaces
Select user-private or tenant-shared durable memory independently from Agent behavior and Conversation continuity.
A MemorySpace is the durable identity for agent memory. It is selected by scope and namespace, independently from the Agent, Conversation, and actor.
User memory
const answer = await agent.text("Remember my preferred report format.", {
tenant: "acme",
user: "alice",
memory: { scope: "user", namespace: "reports" },
});User memory requires an actor user and resolves inside that exact
(tenant, user, namespace) scope.
Shared tenant memory
await agent.text("Remember this team's escalation policy.", {
tenant: "acme",
user: "alice",
memory: { scope: "tenant", namespace: "support-team" },
});Any authorized caller may intentionally select the same tenant namespace. The shared MemorySpace does not prove user membership and does not erase actor attribution from the Turn.
Agent defaults and one-Turn selection
An Agent revision may declare a default memory scope. A Turn can select an
allowed scope and namespace explicitly, or disable memory with
{ scope: "none" }. Inline behavior requires explicit namespaces for user or
tenant memory because it has no stored Agent identity from which to derive one.
Inspect and erase
Use client.raw().memorySpaces or the console to resolve, list, read, and
delete MemorySpaces. Deleting a MemorySpace erases its retained memory content;
historical Turn facts can keep the former MemorySpace ID so usage and
observability remain honest.