In-memory implementation of ToolRegistry.

Provides fast, synchronous tool management with metadata and search capabilities. Suitable for development, testing, and single-instance deployments.

const registry = new InMemoryToolRegistry();

// Register tools
await registry.register(new SearchTool(), {
category: 'knowledge',
tags: ['search', 'docs'],
version: '1.0.0'
});

await registry.register(new CalculatorTool(), {
category: 'math',
tags: ['calculator', 'compute']
});

// Search for tools
const results = await registry.search({
query: 'search',
limit: 5
});

// Get definitions for LLM
const definitions = await registry.getDefinitions();

Implements

  • ToolRegistry

Constructors

Methods

  • Register a tool in the registry

    Parameters

    • tool: AgentTool<unknown, unknown>

      The tool to register

    • Optionalmetadata: Partial<ToolMetadata>

      Optional metadata for the tool

    Returns Promise<void>

    If a tool with the same name already exists

  • Unregister a tool by name

    Parameters

    • name: string

      The tool name

    Returns Promise<boolean>

    true if tool was removed, false if not found

  • Get a tool by name

    Parameters

    • name: string

      The tool name

    Returns Promise<null | AgentTool<unknown, unknown>>

    The tool, or null if not found

  • Check if a tool is registered

    Parameters

    • name: string

      The tool name

    Returns Promise<boolean>

    true if registered

  • List all registered tools

    Returns Promise<AgentTool<unknown, unknown>[]>

    Array of all registered tools

  • Get metadata for a tool

    Parameters

    • name: string

      The tool name

    Returns Promise<null | ToolMetadata>

    Tool metadata, or null if not found

  • Search for tools matching criteria

    Parameters

    • options: ToolSearchOptions

      Search options

    Returns Promise<ToolSearchResult[]>

    Array of matching tools with scores

  • Get tool definitions for LLM function calling

    Parameters

    • Optionalnames: string[]

      Optional array of tool names to include (all if not specified)

    Returns Promise<ToolDefinition[]>

    Array of tool definitions

  • Get tools by category

    Parameters

    • category: string

      The category name

    Returns Promise<AgentTool<unknown, unknown>[]>

    Array of tools in the category

  • Get tools by tag

    Parameters

    • tag: string

      The tag name

    Returns Promise<AgentTool<unknown, unknown>[]>

    Array of tools with the tag