Skip to main content

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
ParameterTypeDescription

userId

string

Unique user identifier

db

any

Database connection

options

{ maxMemories: number; summaryThreshold: number; cacheExpiry: number; enableVectorSearch: boolean; enableAutoSummarization: boolean; }

Configuration options

options.maxMemories

number

Maximum memories to store

options.summaryThreshold

number

Messages before auto-summarization

options.cacheExpiry

number

Cache TTL in milliseconds

options.enableVectorSearch

boolean

Enable vector-based search

options.enableAutoSummarization

boolean

Enable auto-summarization

Returns

SimpleMemory

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

NameTypeDefault valueDefined in

cacheHits

number

0

packages/ai-research-agent/src/agents/memory.js:95

cacheMisses

number

0

packages/ai-research-agent/src/agents/memory.js:96

vectorSearches

number

0

packages/ai-research-agent/src/agents/memory.js:97

summarizations

number

0

packages/ai-research-agent/src/agents/memory.js:98

errors

number

0

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
ParameterTypeDescription

role

string

Message role ('user' or 'assistant')

content

string

Message content

metadata

any

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
ParameterTypeDefault valueDescription

content

string

undefined

Fact content

importance

number

1

Importance score (0-10)

category

string

MEMORY_TYPES.FACT

Memory category

metadata

any

{}

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
ParameterTypeDescription

content

string

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
ParameterTypeDescription

id

string

Memory ID

updates

any

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
ParameterTypeDefault valueDescription

query

string

''

Search query

limit

number

10

Maximum results

options

any

{}

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
ParameterType

query

any

limit

any

options

any

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
ParameterType

query

any

memories

any

options

any

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
ParameterType

memories

any

sentencesByRelevance

any

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
ParameterType

conversationText

any

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
ParameterType

factsResponse

any

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
ParameterTypeDefault valueDescription

query

string

''

Context query

includeRecent

boolean

true

Include recent messages

options

any

{}

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

NameTypeDefault valueDefined in

cacheSize

number

packages/ai-research-agent/src/agents/memory.js:612

recentMessagesCount

number

packages/ai-research-agent/src/agents/memory.js:613

isProcessing

boolean

packages/ai-research-agent/src/agents/memory.js:614

cacheHits

number

0

packages/ai-research-agent/src/agents/memory.js:95

cacheMisses

number

0

packages/ai-research-agent/src/agents/memory.js:96

vectorSearches

number

0

packages/ai-research-agent/src/agents/memory.js:97

summarizations

number

0

packages/ai-research-agent/src/agents/memory.js:98

errors

number

0

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
ParameterTypeDescription

userId

string

User identifier

db

any

Database connection

options

{ memoryOptions: any; defaultProvider: string; defaultApiKey: string; defaultModel: string; rateLimit: any; providers: any; }

Configuration options

options.memoryOptions

any

Memory system options

options.defaultProvider

string

Default LLM provider

options.defaultApiKey

string

Default API key

options.defaultModel

string

Default model

options.rateLimit

any

Rate limiting configuration

options.providers

any

LLM provider configurations

Returns

MemoryAgent

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

NameTypeDefault valueDefined in

totalMessages

number

0

packages/ai-research-agent/src/agents/memory.js:671

totalTokens

number

0

packages/ai-research-agent/src/agents/memory.js:672

averageResponseTime

number

0

packages/ai-research-agent/src/agents/memory.js:673

errorCount

number

0

packages/ai-research-agent/src/agents/memory.js:674

sessionStartTime

number

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

NameTypeDefined in

groq()

(apiKey: any, model: any, temperature: any) => object

packages/ai-research-agent/src/agents/memory.js:684

openai()

(apiKey: any, model: any, temperature: any) => object

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
ParameterTypeDefault valueDescription

key

string

undefined

Rate limit key

maxRequests

number

null

Maximum requests per window

windowMs

number

null

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
ParameterTypeDescription

message

string

User message

options

any

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
ParameterType

prompt

any

options

any

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
ParameterType

message

any

memoryContext

any

options

any

Returns

string

updateAnalytics()

updateAnalytics(tokensUsed: any, responseTime: any): void;

Defined in: packages/ai-research-agent/src/agents/memory.js:894

Update analytics

Parameters
ParameterType

tokensUsed

any

responseTime

any

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
ParameterTypeDefault valueDescription

fact

string

undefined

Fact to remember

importance

number

1

Importance score

category

string

MEMORY_TYPES.MANUAL

Memory category

metadata

any

{}

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
ParameterTypeDefault valueDescription

query

string

''

Search query

limit

number

10

Maximum results

options

any

{}

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

NameTypeDefault valueDefined in

memory

{ cacheSize: number; recentMessagesCount: number; isProcessing: boolean; cacheHits: number; cacheMisses: number; vectorSearches: number; summarizations: number; errors: number; }

packages/ai-research-agent/src/agents/memory.js:994

sessionId

string

packages/ai-research-agent/src/agents/memory.js:995

uptime

number

packages/ai-research-agent/src/agents/memory.js:996

totalMessages

number

0

packages/ai-research-agent/src/agents/memory.js:671

totalTokens

number

0

packages/ai-research-agent/src/agents/memory.js:672

averageResponseTime

number

0

packages/ai-research-agent/src/agents/memory.js:673

errorCount

number

0

packages/ai-research-agent/src/agents/memory.js:674

sessionStartTime

number

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

NameTypeDefault valueDefined in

DEFAULT_MAX_MEMORIES

number

100

packages/ai-research-agent/src/agents/memory.js:22

DEFAULT_SUMMARY_THRESHOLD

number

10

packages/ai-research-agent/src/agents/memory.js:23

DEFAULT_CACHE_EXPIRY

number

packages/ai-research-agent/src/agents/memory.js:24

DEFAULT_BATCH_SIZE

number

5

packages/ai-research-agent/src/agents/memory.js:25

DEFAULT_RELEVANCE_THRESHOLD

number

0.3

packages/ai-research-agent/src/agents/memory.js:26

DEFAULT_IMPORTANCE_RANGE

{ min: number; max: number; }

packages/ai-research-agent/src/agents/memory.js:27

DEFAULT_RATE_LIMIT

{ requests: number; windowMs: number; }

packages/ai-research-agent/src/agents/memory.js:28

DEFAULT_TIMEOUT

number

30000

packages/ai-research-agent/src/agents/memory.js:29

VECTOR_SEARCH_ENABLED

boolean

true

packages/ai-research-agent/src/agents/memory.js:30

AUTO_SUMMARIZATION_ENABLED

boolean

true

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

NameTypeDefault valueDefined in

FACT

string

'fact'

packages/ai-research-agent/src/agents/memory.js:38

CONVERSATION

string

'conversation'

packages/ai-research-agent/src/agents/memory.js:39

PREFERENCE

string

'preference'

packages/ai-research-agent/src/agents/memory.js:40

PERSONAL

string

'personal'

packages/ai-research-agent/src/agents/memory.js:41

WORK

string

'work'

packages/ai-research-agent/src/agents/memory.js:42

MANUAL

string

'manual'

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

ParameterTypeDescription

db

any

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

ParameterTypeDescription

db

any

Database connection

Returns

Promise<void>