@agenticc/storage-memory
v1.0.0
Published
In-memory storage adapter for @agenticc/core - for development and testing
Maintainers
Readme
@ai-agent/storage-memory
In-memory storage adapter for the AI Agent framework. This package provides simple, fast storage for conversation sessions and messages, suitable for development, testing, and simple applications.
Installation
npm install @ai-agent/storage-memoryUsage
Session Management
import { Agent } from '@ai-agent/core';
import { SessionManager } from '@ai-agent/storage-memory';
// Create agent
const agent = new Agent(config);
// Create session manager
const sessionManager = new SessionManager();
// Create a new session
const sessionId = sessionManager.createSession({
metadata: { userId: '123' }
});
// Process a message
const userMessage = 'Hello, agent!';
sessionManager.addUserMessage(sessionId, userMessage);
const response = await agent.chat(userMessage, {
sessionId,
history: sessionManager.getHistory(sessionId)
});
// Store the response
sessionManager.addAssistantMessage(sessionId, response);Message Storage
import { MessageStore } from '@ai-agent/storage-memory';
// Create message store
const messageStore = new MessageStore();
// Store messages
messageStore.storeUserMessage(sessionId, 'Hello!');
const response = await agent.chat('Hello!', { sessionId });
messageStore.storeAssistantMessage(sessionId, response);
// Query messages
const history = messageStore.getSessionHistory(sessionId);
const recentMessages = messageStore.queryMessages({
sessionId,
limit: 10,
order: 'desc'
});
// Query tool calls
const toolCalls = messageStore.queryToolCalls({
sessionId,
toolName: 'search',
success: true
});Features
- Fast: All data stored in memory for instant access
- Simple: No database setup required
- Flexible: Rich query API for messages and tool calls
- Type-safe: Full TypeScript support
Limitations
- Not persistent: Data is lost when the process exits
- Memory-bound: Not suitable for large-scale applications
- Single-process: Cannot share data across multiple processes
For production applications, consider:
@ai-agent/storage-prisma- SQL database support@ai-agent/storage-mongodb- MongoDB support@ai-agent/storage-redis- Redis support
API Reference
SessionManager
Manages conversation sessions with message history.
Methods
createSession(options?)- Create a new sessiongetSession(sessionId)- Get session by IDgetOrCreateSession(sessionId, options?)- Get or create sessionhasSession(sessionId)- Check if session existsquerySessions(options?)- Query sessions with filtersgetHistory(sessionId)- Get conversation historyaddUserMessage(sessionId, content, metadata?)- Add user messageaddAssistantMessage(sessionId, response, metadata?)- Add assistant messageaddSystemMessage(sessionId, content)- Add system messagecloseSession(sessionId)- Mark session as inactivedeleteSession(sessionId)- Delete sessionclearSession(sessionId)- Clear all messages in sessionupdateMetadata(sessionId, metadata)- Update session metadata
MessageStore
Provides persistent storage for messages with rich query capabilities.
Methods
storeUserMessage(sessionId, content, metadata?)- Store user messagestoreAssistantMessage(sessionId, response, metadata?)- Store assistant messagestoreSystemMessage(sessionId, content)- Store system messagegetMessage(messageId)- Get message by IDqueryMessages(options?)- Query messages with filtersgetSessionHistory(sessionId)- Get conversation historyqueryToolCalls(options?)- Query tool calls with filtersgetToolCallsForMessage(messageId)- Get tool calls for a messagedeleteMessage(messageId)- Delete a messagedeleteSessionMessages(sessionId)- Delete all messages in sessiongetMessageCount(sessionId)- Get message count for sessiongetTotalMessageCount()- Get total message countgetTotalToolCallCount()- Get total tool call countclear()- Clear all data
License
MIT
