Memory Systems
Pluggable memory backends for conversation history and state persistence. Choose from in-memory, Redis, or Postgres backends.
Available Backends
| Backend | Use Case | Persistence |
|---|---|---|
| InMemory | Development, testing, single-instance | None (process memory) |
| Redis | Multi-instance, fast access | Optional (depends on Redis config) |
| Postgres | Full persistence, audit requirements | Full (database) |
createMemoryStorage
Factory function to create memory backends:
typescript
import { createMemoryStorage } from '@sekuire/sdk';
// In-memory (default)
const memory = createMemoryStorage({ type: 'memory' });
// Redis
const redisMemory = createMemoryStorage({
type: 'redis',
url: 'redis://localhost:6379',
keyPrefix: 'agent:conversations:'
});
// Postgres
const pgMemory = createMemoryStorage({
type: 'postgres',
connectionString: process.env.DATABASE_URL,
tableName: 'agent_memory'
});Using with Agents
typescript
import { getAgent, createMemoryStorage } from '@sekuire/sdk';
const memory = createMemoryStorage({
type: 'redis',
url: 'redis://localhost:6379'
});
const agent = await getAgent('assistant', { memory });
// Conversations persist across agent restarts
await agent.chat('Hello!');
// Later...
const history = await memory.getHistory('session_123');Memory API
typescript
// Store a message
await memory.store('session_123', {
role: 'user',
content: 'Hello!'
});
// Get full history
const history = await memory.getHistory('session_123');
// Get last N messages
const recent = await memory.getHistory('session_123', { limit: 10 });
// Clear session
await memory.clear('session_123');
// Clear all (use with caution)
await memory.clearAll();