In-Memory Storage
VoltAgent's core package (@voltagent/core
) includes InMemoryStorage
, a simple memory provider that stores conversation history directly in the application's memory.
Overview
- Use Case: Development, testing, demos, or any scenario where persistent memory across application restarts is not required.
- Pros: Zero external dependencies, extremely fast, easy to use.
- Cons: All stored data (conversation history, agent state) is lost when the application stops or restarts.
- Availability: Included directly in
@voltagent/core
.
Configuration
Initialize InMemoryStorage
and pass it to your Agent
configuration. It accepts optional configuration for limiting storage and enabling debugging.
import { Agent, InMemoryStorage } from "@voltagent/core";
import { VercelAIProvider } from "@voltagent/vercel-ai";
import { openai } from "@ai-sdk/openai";
// Initialize InMemoryStorage
const memory = new InMemoryStorage({
// Optional: Limit the number of messages stored per conversation thread
storageLimit: 100, // Defaults to no limit if not specified
// Optional: Enable verbose debug logging from the memory provider
debug: true, // Defaults to false
});
const agent = new Agent({
name: "Ephemeral Agent",
description: "An agent using in-memory storage (history resets on restart).",
llm: new VercelAIProvider(),
model: openai("gpt-4o"),
memory: memory, // Assign the InMemoryStorage instance
});
// Interactions with this agent will use the in-memory store.
// await agent.generateText("Remember this info.", { userId: "user1", conversationId: "conv1" });
// // If the app restarts here, the above message is lost.
// await agent.generateText("Do you remember?", { userId: "user1", conversationId: "conv1" });
Configuration Options:
storageLimit
(number, optional): The maximum number of messages to retain per uniqueuserId
/conversationId
pair. When the limit is reached, the oldest messages are discarded to make room for new ones. Defaults toInfinity
(no limit).debug
(boolean, optional): Enables detailed logging from theInMemoryStorage
provider to the console, useful for understanding memory operations during development. Defaults tofalse
.
When to Use
- Development & Testing: Quickly test agent logic without setting up a database.
- Stateless Use Cases: When conversation history is not needed between sessions or application runs.
- Demos & Examples: Simple setup for showcasing agent capabilities.
- Caching Layers: Could potentially be used as a short-term cache in more complex memory strategies (though not its primary design).
Avoid using InMemoryStorage
in production environments where conversation history needs to be persistent.