Skip to main content

Class: ConsolidationLoop

Defined in: packages/agentos/src/memory/consolidation/ConsolidationLoop.ts:101

Self-improving background consolidation loop with 6 ordered steps: prune, merge, strengthen, derive, compact, re-index.

All database operations use the synchronous better-sqlite3 API through the shared SqliteBrain connection. The run() method is async to accommodate the LLM-backed derive step.

Constructors

Constructor

new ConsolidationLoop(brain, memoryGraph, options?): ConsolidationLoop

Defined in: packages/agentos/src/memory/consolidation/ConsolidationLoop.ts:114

Parameters

brain

SqliteBrain

The agent's SQLite brain database connection.

memoryGraph

IMemoryGraph

The memory association graph for co-activation and clustering.

options?

Optional LLM invoker and embedding function for derive and merge steps respectively.

embedFn?

(texts) => Promise<number[][]>

Embedding function for computing trace similarity.

llmInvoker?

(prompt) => Promise<string>

LLM function for deriving insights from memory clusters.

Returns

ConsolidationLoop

Accessors

isRunning

Get Signature

get isRunning(): boolean

Defined in: packages/agentos/src/memory/consolidation/ConsolidationLoop.ts:182

Whether consolidation is currently running. Useful for callers to check before scheduling a new run.

Returns

boolean

Methods

run()

run(config?): Promise<MemoryConsolidationResult>

Defined in: packages/agentos/src/memory/consolidation/ConsolidationLoop.ts:138

Run one full consolidation cycle.

The mutex prevents concurrent runs — if _running is already true, returns immediately with a zero-count result.

Parameters

config?

Partial<ExtendedConsolidationConfig>

Optional overrides for consolidation thresholds.

Returns

Promise<MemoryConsolidationResult>

Consolidation statistics (pruned, merged, derived, compacted, durationMs).