Class: MemorySearchTool
Defined in: packages/agentos/src/memory/tools/MemorySearchTool.ts:99
ITool implementation that searches the agent's memory traces using FTS5.
Usage:
const tool = new MemorySearchTool(brain);
const result = await tool.execute(
{ query: 'dark mode preference', scope: 'user', limit: 5 },
context,
);
// result.output.results → [{ id, content, type, scope, strength, tags }, ...]
Implements
ITool<MemorySearchInput,MemorySearchOutput>
Constructors
Constructor
new MemorySearchTool(
brain):MemorySearchTool
Defined in: packages/agentos/src/memory/tools/MemorySearchTool.ts:153
Parameters
brain
The agent's shared SQLite brain database connection.
Returns
MemorySearchTool
Properties
category
readonlycategory:"memory"='memory'
Defined in: packages/agentos/src/memory/tools/MemorySearchTool.ts:116
Logical category for discovery and grouping.
Implementation of
description
readonlydescription:string
Defined in: packages/agentos/src/memory/tools/MemorySearchTool.ts:110
LLM-facing description.
Implementation of
displayName
readonlydisplayName:"Search Memory"='Search Memory'
Defined in: packages/agentos/src/memory/tools/MemorySearchTool.ts:107
Human-readable display name.
Implementation of
hasSideEffects
readonlyhasSideEffects:false=false
Defined in: packages/agentos/src/memory/tools/MemorySearchTool.ts:119
This tool only reads from the database — no side effects.
Implementation of
id
readonlyid:"memory-search-v1"='memory-search-v1'
Defined in: packages/agentos/src/memory/tools/MemorySearchTool.ts:101
Globally unique tool identifier.
Implementation of
inputSchema
readonlyinputSchema:JSONSchemaObject
Defined in: packages/agentos/src/memory/tools/MemorySearchTool.ts:122
JSON schema for input validation and LLM tool-call construction.
Implementation of
name
readonlyname:"memory_search"='memory_search'
Defined in: packages/agentos/src/memory/tools/MemorySearchTool.ts:104
LLM-facing tool name.
Implementation of
Methods
execute()
execute(
args,_context):Promise<ToolExecutionResult<MemorySearchOutput>>
Defined in: packages/agentos/src/memory/tools/MemorySearchTool.ts:183
Run a full-text search against memory_traces_fts and join back to
memory_traces for metadata.
The SQL pattern:
SELECT mt.id, mt.content, mt.type, mt.scope, mt.strength, mt.tags
FROM memory_traces_fts fts
JOIN memory_traces mt ON mt.rowid = fts.rowid
WHERE fts.memory_traces_fts MATCH ?
AND mt.deleted = 0
[AND mt.type = ?] -- when type filter provided
[AND mt.scope = ?] -- when scope filter provided
ORDER BY rank -- FTS5 BM25 relevance (lower = more relevant)
LIMIT ?
Tags are stored as JSON arrays; they are parsed and returned as string[]. Malformed tag JSON returns an empty array rather than throwing.
Parameters
args
MemorySearchInput
Search input (query, optional type/scope/limit).
_context
Tool execution context (not used by this tool).
Returns
Promise<ToolExecutionResult<MemorySearchOutput>>
{ results } array on success, or an error result.