langchain.js
    Preparing search index...

    Abstract base class for persistent key-value stores.

    Stores enable persistence and memory that can be shared across threads, scoped to user IDs, assistant IDs, or other arbitrary namespaces.

    Features:

    • Hierarchical namespaces for organization
    • Key-value storage with metadata
    • Vector similarity search (if configured)
    • Filtering and pagination

    Hierarchy (View Summary)

    Index

    Constructors

    Methods

    • Execute multiple operations in a single batch. This is more efficient than executing operations individually.

      Type Parameters

      Parameters

      • operations: Op

        Array of operations to execute

      Returns Promise<OperationResults<Op>>

      Promise resolving to results matching the operations

    • Delete an item from the store.

      Parameters

      • namespace: string[]

        Hierarchical path for the item

      • key: string

        Unique identifier within the namespace

      Returns Promise<void>

    • Retrieve a single item by its namespace and key.

      Parameters

      • namespace: string[]

        Hierarchical path for the item

      • key: string

        Unique identifier within the namespace

      Returns Promise<null | Item>

      Promise resolving to the item or null if not found

    • List and filter namespaces in the store. Used to explore data organization and navigate the namespace hierarchy.

      Parameters

      • options: {
            limit?: number;
            maxDepth?: number;
            offset?: number;
            prefix?: string[];
            suffix?: string[];
        } = {}

        Options for listing namespaces

      Returns Promise<string[][]>

      Promise resolving to list of namespace paths

      // List all namespaces under "documents"
      await store.listNamespaces({
      prefix: ["documents"],
      maxDepth: 2
      });

      // List namespaces ending with "v1"
      await store.listNamespaces({
      suffix: ["v1"],
      limit: 50
      });
    • Store or update an item.

      Parameters

      • namespace: string[]

        Hierarchical path for the item

      • key: string

        Unique identifier within the namespace

      • value: Record<string, any>

        Object containing the item's data

      • Optionalindex: false | string[]

        Optional indexing configuration

      Returns Promise<void>

      // Simple storage
      await store.put(["docs"], "report", { title: "Annual Report" });

      // With specific field indexing
      await store.put(
      ["docs"],
      "report",
      {
      title: "Q4 Report",
      chapters: [{ content: "..." }, { content: "..." }]
      },
      ["title", "chapters[*].content"]
      );
    • Search for items within a namespace prefix. Supports both metadata filtering and vector similarity search.

      Parameters

      • namespacePrefix: string[]

        Hierarchical path prefix to search within

      • options: {
            filter?: Record<string, any>;
            limit?: number;
            offset?: number;
            query?: string;
        } = {}

        Search options for filtering and pagination

      Returns Promise<SearchItem[]>

      Promise resolving to list of matching items with relevance scores

      // Search with filters
      await store.search(["documents"], {
      filter: { type: "report", status: "active" },
      limit: 5,
      offset: 10
      });

      // Vector similarity search
      await store.search(["users", "content"], {
      query: "technical documentation about APIs",
      limit: 20
      });
    • Start the store. Override if initialization is needed.

      Returns void | Promise<void>

    • Stop the store. Override if cleanup is needed.

      Returns void | Promise<void>