Skip to main content

Class: MemoryMergeTool

Defined in: packages/agentos/src/cognition/memory/io/tools/MemoryMergeTool.ts:90

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/cognition/memory/io/tools/MemoryMergeTool.ts:134

Parameters​

brain​

Brain

The agent's shared SQLite brain database connection.

Returns​

MemoryMergeTool

Properties​

category​

readonly category: "memory" = 'memory'

Defined in: packages/agentos/src/cognition/memory/io/tools/MemoryMergeTool.ts:107

Logical category for discovery and grouping.

Implementation of​

ITool.category


description​

readonly description: string

Defined in: packages/agentos/src/cognition/memory/io/tools/MemoryMergeTool.ts:101

LLM-facing description.

Implementation of​

ITool.description


displayName​

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

Defined in: packages/agentos/src/cognition/memory/io/tools/MemoryMergeTool.ts:98

Human-readable display name.

Implementation of​

ITool.displayName


hasSideEffects​

readonly hasSideEffects: true = true

Defined in: packages/agentos/src/cognition/memory/io/tools/MemoryMergeTool.ts:110

This tool writes to the database.

Implementation of​

ITool.hasSideEffects


id​

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

Defined in: packages/agentos/src/cognition/memory/io/tools/MemoryMergeTool.ts:92

Globally unique tool identifier.

Implementation of​

ITool.id


inputSchema​

readonly inputSchema: JSONSchemaObject

Defined in: packages/agentos/src/cognition/memory/io/tools/MemoryMergeTool.ts:113

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/cognition/memory/io/tools/MemoryMergeTool.ts:95

LLM-facing tool name.

Implementation of​

ITool.name

Methods​

execute()​

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

Defined in: packages/agentos/src/cognition/memory/io/tools/MemoryMergeTool.ts:156

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