Logo
Classes

Memory

Defined in: packages/core/src/memory/memory.ts:36

Type Parameters

TAdapters

TAdapters extends Record<string, MessageAdapter<unknown, TMessageOptions>> = Record<string, never>

TMessageOptions

TMessageOptions extends object = object

Constructors

Constructor

new Memory<TAdapters, TMessageOptions>(messages, options): Memory<TAdapters, TMessageOptions>

Defined in: packages/core/src/memory/memory.ts:69

Parameters

messages

MemoryMessage<TMessageOptions>[] = []

options

MemoryOptions<TMessageOptions> = {}

Returns

Memory<TAdapters, TMessageOptions>

Methods

add()

add(message): Promise<void>

Defined in: packages/core/src/memory/memory.ts:91

Add a message to the memory

Parameters

message

unknown

The message to add to the memory

Returns

Promise<void>


get()

get<K>(options): Promise<K extends keyof TAdapters | keyof BuiltinAdapters<TMessageOptions> ? ReturnType<TAdapters & BuiltinAdapters<TMessageOptions>[K<K>]["fromMemory"]>[] : never>

Defined in: packages/core/src/memory/memory.ts:119

Get the messages of specific type from the memory

Type Parameters

K

K extends string | number | symbol = "llamaindex"

Parameters

options

The options for the get method

type?

K

transientMessages?

ChatMessage<TMessageOptions>[]

Returns

Promise<K extends keyof TAdapters | keyof BuiltinAdapters<TMessageOptions> ? ReturnType<TAdapters & BuiltinAdapters<TMessageOptions>[K<K>]["fromMemory"]>[] : never>

The messages of specific type


getLLM()

getLLM(llm?, transientMessages?): Promise<ChatMessage[]>

Defined in: packages/core/src/memory/memory.ts:167

Get the messages from the memory, optionally including transient messages. only return messages that are within context window of the LLM

Parameters

llm?

LLM<object, object>

To fit the result messages to the context window of the LLM. If not provided, the default token limit will be used.

transientMessages?

ChatMessage<TMessageOptions>[]

Optional transient messages to include.

Returns

Promise<ChatMessage[]>

The messages from the memory, optionally including transient messages.


manageMemoryBlocks()

manageMemoryBlocks(): Promise<void>

Defined in: packages/core/src/memory/memory.ts:294

Manage the memory blocks This method processes new messages into memory blocks when short-term memory exceeds its token limit. It uses a cursor system to track which messages have already been processed into long-term memory.

Returns

Promise<void>


clear()

clear(): Promise<void>

Defined in: packages/core/src/memory/memory.ts:365

Clear all the messages in the memory

Returns

Promise<void>


snapshot()

snapshot(): string

Defined in: packages/core/src/memory/memory.ts:376

Creates a snapshot of the current memory state Note: Memory blocks are not included in snapshots as they may contain non-serializable content. Memory blocks should be recreated when loading from snapshot.

Returns

string

A JSON-serializable object containing the memory state