Skip to Content
ReferenceAgentsgetMemory()

Agent.getMemory()

The getMemory() method retrieves the memory system associated with an agent. This method is used to access the agent’s memory capabilities for storing and retrieving information across conversations.

Syntax

getMemory(): MastraMemory | undefined

Parameters

This method does not take any parameters.

Return Value

Returns a MastraMemory instance if a memory system is configured for the agent, or undefined if no memory system is configured.

Description

The getMemory() method is used to access the memory system associated with an agent. Memory systems allow agents to:

  • Store and retrieve information across multiple interactions
  • Maintain conversation history
  • Remember user preferences and context
  • Provide personalized responses based on past interactions

This method is often used in conjunction with hasOwnMemory() to check if an agent has a memory system before attempting to use it.

Examples

Basic Usage

import { Agent } from "@mastra/core/agent"; import { Memory } from "@mastra/memory"; import { openai } from '@ai-sdk/openai'; // Create a memory system const memory = new Memory(); // Create an agent with memory const agent = new Agent({ name: "memory-assistant", instructions: "You are a helpful assistant that remembers previous conversations.", model: openai("gpt-4o"), memory, }); // Get the memory system const agentMemory = agent.getMemory(); if (agentMemory) { // Use the memory system to retrieve thread messages const thread = await agentMemory.getThreadById({ resourceId: "user-123", threadId: "conversation-1", }); console.log("Retrieved thread:", thread); }

Checking for Memory Before Using

import { Agent } from "@mastra/core/agent"; import { openai } from '@ai-sdk/openai'; // Create an agent without memory const agent = new Agent({ name: "stateless-assistant", instructions: "You are a helpful assistant.", model: openai("gpt-4o"), }); // Check if the agent has memory before using it if (agent.hasOwnMemory()) { const memory = agent.getMemory(); // Use memory... } else { console.log("This agent does not have a memory system."); }

Using Memory in a Conversation

import { Agent } from "@mastra/core/agent"; import { Memory } from "@mastra/memory"; import { openai } from '@ai-sdk/openai'; // Create a memory system const memory = new Memory(); // Create an agent with memory const agent = new Agent({ name: "memory-assistant", instructions: "You are a helpful assistant that remembers previous conversations.", model: openai("gpt-4o"), memory, }); // First interaction - store information await agent.generate("My name is Alice.", { resourceId: "user-123", threadId: "conversation-1", }); // Later interaction - retrieve information const result = await agent.generate("What's my name?", { resourceId: "user-123", threadId: "conversation-1", }); console.log(result.text); // Should mention "Alice" // Access the memory system directly const agentMemory = agent.getMemory(); if (agentMemory) { // Retrieve messages from the thread const { messages } = await agentMemory.query({ resourceId: "user-123", threadId: "conversation-1", selectBy: { last: 10 // Get the last 10 messages } }); console.log("Retrieved messages:", messages); }