Skip to Content

Memory API

The Memory API provides methods to manage conversation threads and message history in Mastra.

Get All Threads

Retrieve all memory threads for a specific resource:

const threads = await mastraClient.getMemoryThreads({ resourceId: "resource-1", agentId: "agent-1", });

Create a New Thread

Create a new memory thread:

const thread = await mastraClient.createMemoryThread({ title: "New Conversation", metadata: { category: "support" }, resourceId: "resource-1", agentId: "agent-1", });

Working with a Specific Thread

Get an instance of a specific memory thread:

const thread = mastraClient.getMemoryThread("thread-id", "agent-id");

Thread Methods

Get Thread Details

Retrieve details about a specific thread:

const details = await thread.get();

Update Thread

Update thread properties:

const updated = await thread.update({ title: "Updated Title", metadata: { status: "resolved" }, resourceid: "resource-1", });

Delete Thread

Delete a thread and its messages:

await thread.delete();

Message Operations

Save Messages

Save messages to memory:

const savedMessages = await mastraClient.saveMessageToMemory({ messages: [ { role: "user", content: "Hello!", id: "1", threadId: "thread-1", createdAt: new Date(), type: "text", }, ], agentId: "agent-1", });

Retrieve Thread Messages

Get messages associated with a memory thread:

// Get all messages in the thread const { messages } = await thread.getMessages(); // Limit the number of messages retrieved const { messages } = await thread.getMessages({ limit: 10 });

Delete a Message

Delete a specific message from a thread:

const result = await thread.deleteMessage("message-id"); // Returns: { success: true, message: "Message deleted successfully" }

Delete Multiple Messages

Delete multiple messages from a thread in a single operation:

const result = await thread.deleteMessages(["message-1", "message-2", "message-3"]); // Returns: { success: true, message: "3 messages deleted successfully" }

Get Memory Status

Check the status of the memory system:

const status = await mastraClient.getMemoryStatus("agent-id");