Skip to main content

Class: MemoryMergeTool

Defined in: packages/agentos/src/memory/tools/MemoryMergeTool.ts:91

ITool implementation that merges multiple memory traces into one.

Usage:

const tool = new MemoryMergeTool(brain);
const result = await tool.execute(
{
traceIds: ['mt_1_0', 'mt_2_0', 'mt_3_0'],
mergedContent: 'Consolidated insight from three related observations.',
},
context,
);
// result.output → { survivorId: 'mt_1_0', deletedIds: ['mt_2_0', 'mt_3_0'] }

Implements

  • ITool<MemoryMergeInput, MemoryMergeOutput>

Constructors

Constructor

new MemoryMergeTool(brain): MemoryMergeTool

Defined in: packages/agentos/src/memory/tools/MemoryMergeTool.ts:135

Parameters

brain

SqliteBrain

The agent's shared SQLite brain database connection.

Returns

MemoryMergeTool

Properties

category

readonly category: "memory" = 'memory'

Defined in: packages/agentos/src/memory/tools/MemoryMergeTool.ts:108

Logical category for discovery and grouping.

Implementation of

ITool.category


description

readonly description: string

Defined in: packages/agentos/src/memory/tools/MemoryMergeTool.ts:102

LLM-facing description.

Implementation of

ITool.description


displayName

readonly displayName: "Merge Memories" = 'Merge Memories'

Defined in: packages/agentos/src/memory/tools/MemoryMergeTool.ts:99

Human-readable display name.

Implementation of

ITool.displayName


hasSideEffects

readonly hasSideEffects: true = true

Defined in: packages/agentos/src/memory/tools/MemoryMergeTool.ts:111

This tool writes to the database.

Implementation of

ITool.hasSideEffects


id

readonly id: "memory-merge-v1" = 'memory-merge-v1'

Defined in: packages/agentos/src/memory/tools/MemoryMergeTool.ts:93

Globally unique tool identifier.

Implementation of

ITool.id


inputSchema

readonly inputSchema: JSONSchemaObject

Defined in: packages/agentos/src/memory/tools/MemoryMergeTool.ts:114

JSON schema for input validation and LLM tool-call construction.

Implementation of

ITool.inputSchema


name

readonly name: "memory_merge" = 'memory_merge'

Defined in: packages/agentos/src/memory/tools/MemoryMergeTool.ts:96

LLM-facing tool name.

Implementation of

ITool.name

Methods

execute()

execute(args, _context): Promise<ToolExecutionResult<MemoryMergeOutput>>

Defined in: packages/agentos/src/memory/tools/MemoryMergeTool.ts:157

Merge the specified traces into one survivor.

Steps:

  1. Validate that at least 2 trace IDs were supplied.
  2. Load all matching, non-deleted traces from the database.
  3. Pick survivor by highest retrieval_count; fallback to first found.
  4. Compute merged content (provided or concatenated).
  5. Union all tags, deduplicate.
  6. Update survivor: new content, cleared embedding, unioned tags.
  7. Soft-delete all non-survivor traces.

Parameters

args

MemoryMergeInput

Merge input (traceIds, optional mergedContent).

_context

ToolExecutionContext

Tool execution context (not used by this tool).

Returns

Promise<ToolExecutionResult<MemoryMergeOutput>>

{ survivorId, deletedIds } on success, or an error result.

Implementation of

ITool.execute