memory
Documentation / agents/memory
SimpleMemory
Defined in: packages/ai-research-agent/src/agents/memory.js:57
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: packages/ai-research-agent/src/agents/memory.js:70
Initialize memory system for a user
Parameters
Parameter | Type | Description |
---|---|---|
|
| Unique user identifier |
|
| Database connection |
| { | Configuration options |
|
| Maximum memories to store |
|
| Messages before auto-summarization |
|
| Cache TTL in milliseconds |
|
| Enable vector-based search |
|
| Enable auto-summarization |
Returns
Properties
userId
userId: string;
Defined in: packages/ai-research-agent/src/agents/memory.js:75
db
db: any;
Defined in: packages/ai-research-agent/src/agents/memory.js:76
maxMemories
maxMemories: number;
Defined in: packages/ai-research-agent/src/agents/memory.js:77
summaryThreshold
summaryThreshold: number;
Defined in: packages/ai-research-agent/src/agents/memory.js:78
cacheExpiry
cacheExpiry: number;
Defined in: packages/ai-research-agent/src/agents/memory.js:79
batchSize
batchSize: any;
Defined in: packages/ai-research-agent/src/agents/memory.js:80
relevanceThreshold
relevanceThreshold: any;
Defined in: packages/ai-research-agent/src/agents/memory.js:81
enableVectorSearch
enableVectorSearch: boolean;
Defined in: packages/ai-research-agent/src/agents/memory.js:84
Feature flags
enableAutoSummarization
enableAutoSummarization: boolean;
Defined in: packages/ai-research-agent/src/agents/memory.js:85
recentMessages
recentMessages: any[];
Defined in: packages/ai-research-agent/src/agents/memory.js:88
State management
memoryCache
memoryCache: Map<any, any>;
Defined in: packages/ai-research-agent/src/agents/memory.js:89
isProcessing
isProcessing: boolean;
Defined in: packages/ai-research-agent/src/agents/memory.js:90
processingQueue
processingQueue: any[];
Defined in: packages/ai-research-agent/src/agents/memory.js:91
metrics
metrics: object;
Defined in: packages/ai-research-agent/src/agents/memory.js:94
Performance metrics
Name | Type | Default value | Defined in |
---|---|---|---|
|
|
| packages/ai-research-agent/src/agents/memory.js:95 |
|
|
| packages/ai-research-agent/src/agents/memory.js:96 |
|
|
| packages/ai-research-agent/src/agents/memory.js:97 |
|
|
| packages/ai-research-agent/src/agents/memory.js:98 |
|
|
| packages/ai-research-agent/src/agents/memory.js:99 |
summarizeTimeout
summarizeTimeout: Timeout;
Defined in: packages/ai-research-agent/src/agents/memory.js:162
Methods
addMessage()
addMessage(
role: string,
content: string,
metadata: any): boolean;
Defined in: packages/ai-research-agent/src/agents/memory.js:115
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!');
debouncedSummarize()
debouncedSummarize(): void;
Defined in: packages/ai-research-agent/src/agents/memory.js:157
Debounced summarization to prevent excessive processing
Returns
void
storeFact()
storeFact(
content: string,
importance: number,
category: string,
metadata: any): Promise<string>;
Defined in: packages/ai-research-agent/src/agents/memory.js:183
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 });
findSimilarFacts()
findSimilarFacts(content: string): Promise<any[]>;
Defined in: packages/ai-research-agent/src/agents/memory.js:244
Find similar facts using content similarity
Parameters
Parameter | Type | Description |
---|---|---|
|
| Content to find similar facts for |
Returns
Promise
<any
[]>
- Similar facts
updateMemory()
updateMemory(id: string, updates: any): Promise<void>;
Defined in: packages/ai-research-agent/src/agents/memory.js:275
Update memory record
Parameters
Parameter | Type | Description |
---|---|---|
|
| Memory ID |
|
| Fields to update |
Returns
Promise
<void
>
recallRelevantMemories()
recallRelevantMemories(
query: string,
limit: number,
options: any): Promise<any[]>;
Defined in: packages/ai-research-agent/src/agents/memory.js:303
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
});
fetchMemoriesFromDB()
fetchMemoriesFromDB(
query: any,
limit: any,
options: any): Promise<any>;
Defined in: packages/ai-research-agent/src/agents/memory.js:365
Fetch memories from database with filtering
Parameters
Parameter | Type |
---|---|
|
|
|
|
|
|
Returns
Promise
<any
>
applyVectorSearch()
applyVectorSearch(
query: any,
memories: any,
options: any): Promise<any>;
Defined in: packages/ai-research-agent/src/agents/memory.js:395
Apply vector search to memories
Parameters
Parameter | Type |
---|---|
|
|
|
|
|
|
Returns
Promise
<any
>
updateRelevanceScores()
updateRelevanceScores(memories: any, sentencesByRelevance: any): Promise<void>;
Defined in: packages/ai-research-agent/src/agents/memory.js:427
Update relevance scores for memories
Parameters
Parameter | Type |
---|---|
|
|
|
|
Returns
Promise
<void
>
summarizeAndStore()
summarizeAndStore(): Promise<boolean>;
Defined in: packages/ai-research-agent/src/agents/memory.js:452
Improved summarization with error handling and batch processing
Returns
Promise
<boolean
>
- Success status
extractFactsFromConversation()
extractFactsFromConversation(conversationText: any): Promise<any[]>;
Defined in: packages/ai-research-agent/src/agents/memory.js:494
Extract facts from conversation using LLM
Parameters
Parameter | Type |
---|---|
|
|
Returns
Promise
<any
[]>
processFactsInBatches()
processFactsInBatches(factsResponse: any): Promise<void>;
Defined in: packages/ai-research-agent/src/agents/memory.js:515
Process facts in batches to avoid overwhelming the database
Parameters
Parameter | Type |
---|---|
|
|
Returns
Promise
<void
>
clearCache()
clearCache(): void;
Defined in: packages/ai-research-agent/src/agents/memory.js:549
Clear cache utility
Returns
void
getMemoryContext()
getMemoryContext(
query: string,
includeRecent: boolean,
options: any): Promise<string>;
Defined in: packages/ai-research-agent/src/agents/memory.js:567
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: packages/ai-research-agent/src/agents/memory.js:609
Get performance metrics
Returns
object
Name | Type | Default value | Defined in |
---|---|---|---|
|
| ‐ | packages/ai-research-agent/src/agents/memory.js:612 |
|
| ‐ | packages/ai-research-agent/src/agents/memory.js:613 |
|
| ‐ | packages/ai-research-agent/src/agents/memory.js:614 |
|
|
| packages/ai-research-agent/src/agents/memory.js:95 |
|
|
| packages/ai-research-agent/src/agents/memory.js:96 |
|
|
| packages/ai-research-agent/src/agents/memory.js:97 |
|
|
| packages/ai-research-agent/src/agents/memory.js:98 |
|
|
| packages/ai-research-agent/src/agents/memory.js:99 |
MemoryAgent
Defined in: packages/ai-research-agent/src/agents/memory.js:631
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: packages/ai-research-agent/src/agents/memory.js:645
Initialize memory agent
Parameters
Parameter | Type | Description |
---|---|---|
|
| User identifier |
|
| Database connection |
| { | Configuration options |
|
| Memory system options |
|
| Default LLM provider |
|
| Default API key |
|
| Default model |
|
| Rate limiting configuration |
|
| LLM provider configurations |
Returns
Properties
memory
memory: SimpleMemory;
Defined in: packages/ai-research-agent/src/agents/memory.js:650
defaultProvider
defaultProvider: string;
Defined in: packages/ai-research-agent/src/agents/memory.js:651
defaultApiKey
defaultApiKey: string;
Defined in: packages/ai-research-agent/src/agents/memory.js:652
defaultModel
defaultModel: string;
Defined in: packages/ai-research-agent/src/agents/memory.js:653
rateLimiter
rateLimiter: Map<any, any>;
Defined in: packages/ai-research-agent/src/agents/memory.js:656
Rate limiting
rateLimitConfig
rateLimitConfig: any;
Defined in: packages/ai-research-agent/src/agents/memory.js:657
providers
providers: any;
Defined in: packages/ai-research-agent/src/agents/memory.js:663
LLM providers
sessionId
sessionId: string;
Defined in: packages/ai-research-agent/src/agents/memory.js:666
Session management
conversationHistory
conversationHistory: any[];
Defined in: packages/ai-research-agent/src/agents/memory.js:667
analytics
analytics: object;
Defined in: packages/ai-research-agent/src/agents/memory.js:670
Analytics
Name | Type | Default value | Defined in |
---|---|---|---|
|
|
| packages/ai-research-agent/src/agents/memory.js:671 |
|
|
| packages/ai-research-agent/src/agents/memory.js:672 |
|
|
| packages/ai-research-agent/src/agents/memory.js:673 |
|
|
| packages/ai-research-agent/src/agents/memory.js:674 |
|
| ‐ | packages/ai-research-agent/src/agents/memory.js:675 |
Methods
getDefaultProviders()
getDefaultProviders(): object;
Defined in: packages/ai-research-agent/src/agents/memory.js:682
Get default LLM providers
Returns
object
Name | Type | Defined in |
---|---|---|
| ( | packages/ai-research-agent/src/agents/memory.js:684 |
| ( | packages/ai-research-agent/src/agents/memory.js:690 |
generateSessionId()
generateSessionId(): string;
Defined in: packages/ai-research-agent/src/agents/memory.js:702
Generate unique session ID
Returns
string
checkRateLimit()
checkRateLimit(
key: string,
maxRequests: number,
windowMs: number): boolean;
Defined in: packages/ai-research-agent/src/agents/memory.js:714
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
chat()
chat(message: string, options: any): Promise<any>;
Defined in: packages/ai-research-agent/src/agents/memory.js:758
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);
}
generateResponse()
generateResponse(prompt: any, options: any): Promise<any>;
Defined in: packages/ai-research-agent/src/agents/memory.js:838
Generate LLM response with timeout and error handling
Parameters
Parameter | Type |
---|---|
|
|
|
|
Returns
Promise
<any
>
buildPrompt()
buildPrompt(
message: any,
memoryContext: any,
options: any): string;
Defined in: packages/ai-research-agent/src/agents/memory.js:864
Build enhanced prompt with context
Parameters
Parameter | Type |
---|---|
|
|
|
|
|
|
Returns
string
updateAnalytics()
updateAnalytics(tokensUsed: any, responseTime: any): void;
Defined in: packages/ai-research-agent/src/agents/memory.js:894
Update analytics
Parameters
Parameter | Type |
---|---|
|
|
|
|
Returns
void
remember()
remember(
fact: string,
importance: number,
category: string,
metadata: any): Promise<string>;
Defined in: packages/ai-research-agent/src/agents/memory.js:921
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
});
getMemories()
getMemories(
query: string,
limit: number,
options: any): Promise<any[]>;
Defined in: packages/ai-research-agent/src/agents/memory.js:949
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);
forceStoreSummary()
forceStoreSummary(): Promise<boolean>;
Defined in: packages/ai-research-agent/src/agents/memory.js:956
Force store summary of current conversation
Returns
Promise
<boolean
>
healthCheck()
healthCheck(): Promise<any>;
Defined in: packages/ai-research-agent/src/agents/memory.js:965
Health check for the agent
Returns
Promise
<any
>
- Health status
getAnalytics()
getAnalytics(): object;
Defined in: packages/ai-research-agent/src/agents/memory.js:991
Get analytics and performance metrics
Returns
object
Name | Type | Default value | Defined in |
---|---|---|---|
| {
| ‐ | packages/ai-research-agent/src/agents/memory.js:994 |
|
| ‐ | packages/ai-research-agent/src/agents/memory.js:995 |
|
| ‐ | packages/ai-research-agent/src/agents/memory.js:996 |
|
|
| packages/ai-research-agent/src/agents/memory.js:671 |
|
|
| packages/ai-research-agent/src/agents/memory.js:672 |
|
|
| packages/ai-research-agent/src/agents/memory.js:673 |
|
|
| packages/ai-research-agent/src/agents/memory.js:674 |
|
| ‐ | packages/ai-research-agent/src/agents/memory.js:675 |
resetSession()
resetSession(): void;
Defined in: packages/ai-research-agent/src/agents/memory.js:1003
Reset session and clear conversation history
Returns
void
MEMORY_CONFIG
const MEMORY_CONFIG: object;
Defined in: packages/ai-research-agent/src/agents/memory.js:21
Configuration constants for memory management
Type declaration
Name | Type | Default value | Defined in |
---|---|---|---|
|
| packages/ai-research-agent/src/agents/memory.js:22 | |
|
| packages/ai-research-agent/src/agents/memory.js:23 | |
| ‐ | packages/ai-research-agent/src/agents/memory.js:24 | |
|
| packages/ai-research-agent/src/agents/memory.js:25 | |
|
| packages/ai-research-agent/src/agents/memory.js:26 | |
{
| ‐ | packages/ai-research-agent/src/agents/memory.js:27 | |
{
| ‐ | packages/ai-research-agent/src/agents/memory.js:28 | |
|
| packages/ai-research-agent/src/agents/memory.js:29 | |
|
| packages/ai-research-agent/src/agents/memory.js:30 | |
|
| packages/ai-research-agent/src/agents/memory.js:31 |
MEMORY_TYPES
const MEMORY_TYPES: object;
Defined in: packages/ai-research-agent/src/agents/memory.js:37
Memory types for categorization
Type declaration
Name | Type | Default value | Defined in |
---|---|---|---|
|
| packages/ai-research-agent/src/agents/memory.js:38 | |
|
| packages/ai-research-agent/src/agents/memory.js:39 | |
|
| packages/ai-research-agent/src/agents/memory.js:40 | |
|
| packages/ai-research-agent/src/agents/memory.js:41 | |
|
| packages/ai-research-agent/src/agents/memory.js:42 | |
|
| packages/ai-research-agent/src/agents/memory.js:43 |
createMemorySchema()
function createMemorySchema(db: any): any;
Defined in: packages/ai-research-agent/src/agents/memory.js:1016
Database schema for memory system
Parameters
Parameter | Type | Description |
---|---|---|
|
| Database instance |
Returns
any
- Schema definition
exampleUsage()
function exampleUsage(db: any): Promise<void>;
Defined in: packages/ai-research-agent/src/agents/memory.js:1038
Comprehensive usage example with error handling
Parameters
Parameter | Type | Description |
---|---|---|
|
| Database connection |
Returns
Promise
<void
>