Memory
ai-research-agent / agents/memory
MemoryAgent
Defined in: src/agents/memory.js:630
Enhanced Memory Agent with better error handling and features
Features:
- Rate limiting
- Multiple LLM provider support
- Health monitoring
- Conversation management
- Memory analytics
Constructors
Constructor
new MemoryAgent(
userId: string,
db: any,
options: object): MemoryAgent;Defined in: src/agents/memory.js:644
Initialize memory agent
Parameters
| Parameter | Type | Description |
|---|---|---|
|
| User identifier |
|
| Database connection |
| { | Configuration options |
|
| Default API key |
|
| Default model |
|
| Default LLM provider |
|
| Memory system options |
|
| LLM provider configurations |
|
| Rate limiting configuration |
Returns
Properties
analytics
analytics: object;Defined in: src/agents/memory.js:669
| Name | Type | Default value | Defined in |
|---|---|---|---|
|
|
| |
|
|
| |
|
| ‐ | |
|
|
| |
|
|
|
conversationHistory
conversationHistory: any[];Defined in: src/agents/memory.js:666
defaultApiKey
defaultApiKey: string;Defined in: src/agents/memory.js:651
defaultModel
defaultModel: string;Defined in: src/agents/memory.js:652
defaultProvider
defaultProvider: string;Defined in: src/agents/memory.js:650
memory
memory: SimpleMemory;Defined in: src/agents/memory.js:649
providers
providers: any;Defined in: src/agents/memory.js:662
rateLimitConfig
rateLimitConfig: any;Defined in: src/agents/memory.js:656
rateLimiter
rateLimiter: Map<any, any>;Defined in: src/agents/memory.js:655
sessionId
sessionId: string;Defined in: src/agents/memory.js:665
Methods
buildPrompt()
buildPrompt(
message: any,
memoryContext: any,
options: any): string;Defined in: src/agents/memory.js:863
Build enhanced prompt with context
Parameters
| Parameter | Type |
|---|---|
|
|
|
|
|
|
Returns
string
chat()
chat(message: string, options: any): Promise<any>;Defined in: src/agents/memory.js:757
Main chat method with comprehensive error handling
Parameters
| Parameter | Type | Description |
|---|---|---|
|
| User message |
|
| Chat options |
Returns
Promise<any>
- Chat response
Example
const response = await agent.chat("Hello, I'm John", {
provider: 'groq',
model: 'mixtral-8x7b-32768',
temperature: 0.7,
systemPrompt: 'You are a helpful assistant.'
});
if (response.success) {
console.log('Response:', response.content);
console.log('Memory context:', response.memoryContext);
console.log('Tokens used:', response.tokensUsed);
} else {
console.error('Error:', response.error);
}checkRateLimit()
checkRateLimit(
key: string,
maxRequests: number,
windowMs: number): boolean;Defined in: src/agents/memory.js:713
Rate limiting check with sliding window
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
|
|
| Rate limit key |
|
|
| Maximum requests per window |
|
|
| Window size in milliseconds |
Returns
boolean
- Whether request is allowed
forceStoreSummary()
forceStoreSummary(): Promise<boolean>;Defined in: src/agents/memory.js:955
Force store summary of current conversation
Returns
Promise<boolean>
generateResponse()
generateResponse(prompt: any, options: any): Promise<any>;Defined in: src/agents/memory.js:837
Generate LLM response with timeout and error handling
Parameters
| Parameter | Type |
|---|---|
|
|
|
|
Returns
Promise<any>
generateSessionId()
generateSessionId(): string;Defined in: src/agents/memory.js:701
Generate unique session ID
Returns
string
getAnalytics()
getAnalytics(): object;Defined in: src/agents/memory.js:990
Get analytics and performance metrics
Returns
object
| Name | Type | Default value | Defined in |
|---|---|---|---|
|
|
| |
|
|
| |
| {
| ‐ | |
|
| ‐ | |
|
| ‐ | |
|
|
| |
|
|
| |
|
| ‐ |
getDefaultProviders()
getDefaultProviders(): object;Defined in: src/agents/memory.js:681
Get default LLM providers
Returns
object
| Name | Type | Defined in |
|---|---|---|
| ( | |
| ( |
getMemories()
getMemories(
query: string,
limit: number,
options: any): Promise<any[]>;Defined in: src/agents/memory.js:948
Get memories with filtering
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
|
|
| Search query |
|
|
| Maximum results |
|
|
| Search options |
Returns
Promise<any[]>
- Memories
Example
// Get all work-related memories
const workMemories = await agent.getMemories('', 20, { memoryType: 'work' });
// Search for meeting memories
const meetingMemories = await agent.getMemories('meeting', 10);healthCheck()
healthCheck(): Promise<any>;Defined in: src/agents/memory.js:964
Health check for the agent
Returns
Promise<any>
- Health status
remember()
remember(
fact: string,
importance: number,
category: string,
metadata: any): Promise<string>;Defined in: src/agents/memory.js:920
Remember a fact manually
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
|
|
| Fact to remember |
|
|
| Importance score |
|
|
| Memory category |
|
|
| Additional metadata |
Returns
Promise<string>
- Memory ID
Example
await agent.remember("User prefers meetings in the morning", 8, 'preference', {
source: 'manual',
confidence: 0.9
});resetSession()
resetSession(): void;Defined in: src/agents/memory.js:1002
Reset session and clear conversation history
Returns
void
updateAnalytics()
updateAnalytics(tokensUsed: any, responseTime: any): void;Defined in: src/agents/memory.js:893
Update analytics
Parameters
| Parameter | Type |
|---|---|
|
|
|
|
Returns
void
SimpleMemory
Defined in: src/agents/memory.js:56
Simple Memory Class - Core memory management functionality
Features:
- Message deduplication
- Automatic summarization
- Vector-based relevance search
- Caching with TTL
- Batch processing
- Conflict resolution
Constructors
Constructor
new SimpleMemory(
userId: string,
db: any,
options: object): SimpleMemory;Defined in: src/agents/memory.js:69
Initialize memory system for a user
Parameters
| Parameter | Type | Description |
|---|---|---|
|
| Unique user identifier |
|
| Database connection |
| { | Configuration options |
|
| Cache TTL in milliseconds |
|
| Enable auto-summarization |
|
| Enable vector-based search |
|
| Maximum memories to store |
|
| Messages before auto-summarization |
Returns
Properties
batchSize
batchSize: any;Defined in: src/agents/memory.js:79
cacheExpiry
cacheExpiry: number;Defined in: src/agents/memory.js:78
db
db: any;Defined in: src/agents/memory.js:75
enableAutoSummarization
enableAutoSummarization: boolean;Defined in: src/agents/memory.js:84
enableVectorSearch
enableVectorSearch: boolean;Defined in: src/agents/memory.js:83
isProcessing
isProcessing: boolean;Defined in: src/agents/memory.js:89
maxMemories
maxMemories: number;Defined in: src/agents/memory.js:76
memoryCache
memoryCache: Map<any, any>;Defined in: src/agents/memory.js:88
metrics
metrics: object;Defined in: src/agents/memory.js:93
| Name | Type | Default value | Defined in |
|---|---|---|---|
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
|
processingQueue
processingQueue: any[];Defined in: src/agents/memory.js:90
recentMessages
recentMessages: any[];Defined in: src/agents/memory.js:87
relevanceThreshold
relevanceThreshold: any;Defined in: src/agents/memory.js:80
summarizeTimeout
summarizeTimeout: Timeout;Defined in: src/agents/memory.js:161
summaryThreshold
summaryThreshold: number;Defined in: src/agents/memory.js:77
userId
userId: string;Defined in: src/agents/memory.js:74
Methods
addMessage()
addMessage(
role: string,
content: string,
metadata: any): boolean;Defined in: src/agents/memory.js:114
Add a message to current session with intelligent deduplication
Parameters
| Parameter | Type | Description |
|---|---|---|
|
| Message role ('user' or 'assistant') |
|
| Message content |
|
| Additional message metadata |
Returns
boolean
- Whether message was added
Example
memory.addMessage('user', 'Hello, how are you?', { timestamp: Date.now() });
memory.addMessage('assistant', 'I am doing well, thank you!');applyVectorSearch()
applyVectorSearch(
query: any,
memories: any,
options: any): Promise<any>;Defined in: src/agents/memory.js:394
Apply vector search to memories
Parameters
| Parameter | Type |
|---|---|
|
|
|
|
|
|
Returns
Promise<any>
clearCache()
clearCache(): void;Defined in: src/agents/memory.js:548
Clear cache utility
Returns
void
debouncedSummarize()
debouncedSummarize(): void;Defined in: src/agents/memory.js:156
Debounced summarization to prevent excessive processing
Returns
void
extractFactsFromConversation()
extractFactsFromConversation(conversationText: any): Promise<any[]>;Defined in: src/agents/memory.js:493
Extract facts from conversation using LLM
Parameters
| Parameter | Type |
|---|---|
|
|
Returns
Promise<any[]>
fetchMemoriesFromDB()
fetchMemoriesFromDB(
query: any,
limit: any,
options: any): Promise<any>;Defined in: src/agents/memory.js:364
Fetch memories from database with filtering
Parameters
| Parameter | Type |
|---|---|
|
|
|
|
|
|
Returns
Promise<any>
findSimilarFacts()
findSimilarFacts(content: string): Promise<any[]>;Defined in: src/agents/memory.js:243
Find similar facts using content similarity
Parameters
| Parameter | Type | Description |
|---|---|---|
|
| Content to find similar facts for |
Returns
Promise<any[]>
- Similar facts
getMemoryContext()
getMemoryContext(
query: string,
includeRecent: boolean,
options: any): Promise<string>;Defined in: src/agents/memory.js:566
Get memory context with better formatting and relevance
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
|
|
| Context query |
|
|
| Include recent messages |
|
|
| Context options |
Returns
Promise<string>
- Formatted context
Example
const context = await memory.getMemoryContext('work meeting', true, {
maxMemories: 5,
minImportance: 3
});getMetrics()
getMetrics(): object;Defined in: src/agents/memory.js:608
Get performance metrics
Returns
object
| Name | Type | Default value | Defined in |
|---|---|---|---|
|
|
| |
|
|
| |
|
| ‐ | |
|
|
| |
|
| ‐ | |
|
| ‐ | |
|
|
| |
|
|
|
processFactsInBatches()
processFactsInBatches(factsResponse: any): Promise<void>;Defined in: src/agents/memory.js:514
Process facts in batches to avoid overwhelming the database
Parameters
| Parameter | Type |
|---|---|
|
|
Returns
Promise<void>
recallRelevantMemories()
recallRelevantMemories(
query: string,
limit: number,
options: any): Promise<any[]>;Defined in: src/agents/memory.js:302
Enhanced memory recall with caching and vector search
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
|
|
| Search query |
|
|
| Maximum results |
|
|
| Search options |
Returns
Promise<any[]>
- Relevant memories
Example
// Search for work-related memories
const workMemories = await memory.recallRelevantMemories('work', 10);
// Get most important memories
const importantMemories = await memory.recallRelevantMemories('', 5);
// Search with specific options
const recentMemories = await memory.recallRelevantMemories('meeting', 10, {
minImportance: 5,
includeMetadata: true
});storeFact()
storeFact(
content: string,
importance: number,
category: string,
metadata: any): Promise<string>;Defined in: src/agents/memory.js:182
Store important facts with validation and conflict resolution
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
|
|
| Fact content |
|
|
| Importance score (0-10) |
|
|
| Memory category |
|
|
| Additional metadata |
Returns
Promise<string>
- Memory ID
Example
await memory.storeFact('User prefers dark mode', 8, 'preference', { source: 'conversation' });
await memory.storeFact('User works at Google', 9, 'personal', { confidence: 0.95 });summarizeAndStore()
summarizeAndStore(): Promise<boolean>;Defined in: src/agents/memory.js:451
Improved summarization with error handling and batch processing
Returns
Promise<boolean>
- Success status
updateMemory()
updateMemory(id: string, updates: any): Promise<void>;Defined in: src/agents/memory.js:274
Update memory record
Parameters
| Parameter | Type | Description |
|---|---|---|
|
| Memory ID |
|
| Fields to update |
Returns
Promise<void>
updateRelevanceScores()
updateRelevanceScores(memories: any, sentencesByRelevance: any): Promise<void>;Defined in: src/agents/memory.js:426
Update relevance scores for memories
Parameters
| Parameter | Type |
|---|---|
|
|
|
|
Returns
Promise<void>
MEMORY_CONFIG
const MEMORY_CONFIG: object;Defined in: src/agents/memory.js:20
Configuration constants for memory management
Type Declaration
| Name | Type | Default value | Defined in |
|---|---|---|---|
|
| ||
|
| ||
| ‐ | ||
{
| ‐ | ||
|
| ||
{
| ‐ | ||
|
| ||
|
| ||
|
| ||
|
|
MEMORY_TYPES
const MEMORY_TYPES: object;Defined in: src/agents/memory.js:36
Memory types for categorization
Type Declaration
| Name | Type | Default value | Defined in |
|---|---|---|---|
|
| ||
|
| ||
|
| ||
|
| ||
|
| ||
|
|
createMemorySchema()
function createMemorySchema(db: any): any;Defined in: src/agents/memory.js:1015
Database schema for memory system
Parameters
| Parameter | Type | Description |
|---|---|---|
|
| Database instance |
Returns
any
- Schema definition
exampleUsage()
function exampleUsage(db: any): Promise<void>;Defined in: src/agents/memory.js:1037
Comprehensive usage example with error handling
Parameters
| Parameter | Type | Description |
|---|---|---|
|
| Database connection |
Returns
Promise<void>