# Class LoadMemoryTool

java.lang.Object
com.google.adk.tools.BaseTool
com.google.adk.tools.FunctionTool
com.google.adk.tools.LoadMemoryTool

public class LoadMemoryTool extends FunctionTool
A tool that loads memory for the current user.

NOTE: Currently this tool only uses text part from the memory.

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from class BaseTool

  `BaseTool.ToolArgsConfig, BaseTool.ToolConfig`
  Modifier and Type
  Class
  Description
  `static class`
  `BaseTool.ToolArgsConfig`
  Configuration class for tool arguments that allows arbitrary key-value pairs.
  `static class`
  `BaseTool.ToolConfig`
  Configuration class for a tool definition in YAML/JSON.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `LoadMemoryTool()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static io.reactivex.rxjava3.core.Single<LoadMemoryResponse>`
  `loadMemory(String query, ToolContext toolContext)`
  Loads the memory for the current user.
  `io.reactivex.rxjava3.core.Completable`
  `processLlmRequest(LlmRequest.Builder llmRequestBuilder, ToolContext toolContext)`
  Processes the outgoing `LlmRequest.Builder`.

  ### Methods inherited from class FunctionTool

  `callLive, create, create, create, create, create, create, create, create, create, create, create, create, declaration, func, isStreaming, runAsync`
  Modifier and Type
  Method
  Description
  `io.reactivex.rxjava3.core.Flowable<Map<String,Object>>`
  `callLive(Map<String,Object> args, ToolContext toolContext, InvocationContext invocationContext)`
  `static FunctionTool`
  `create(Class<?> cls, String methodName)`
  `static FunctionTool`
  `create(Class<?> cls, String methodName, boolean requireConfirmation)`
  `static FunctionTool`
  `create(Class<?> cls, String methodName, boolean requireConfirmation, boolean isLongRunning)`
  `static FunctionTool`
  `create(Object instance, Method func)`
  `static FunctionTool`
  `create(Object instance, Method func, boolean requireConfirmation)`
  `static FunctionTool`
  `create(Object instance, Method func, boolean requireConfirmation, boolean isLongRunning)`
  `static FunctionTool`
  `create(Object instance, String methodName)`
  `static FunctionTool`
  `create(Object instance, String methodName, boolean requireConfirmation)`
  `static FunctionTool`
  `create(Object instance, String methodName, boolean requireConfirmation, boolean isLongRunning)`
  `static FunctionTool`
  `create(Method func)`
  `static FunctionTool`
  `create(Method func, boolean requireConfirmation)`
  `static FunctionTool`
  `create(Method func, boolean requireConfirmation, boolean isLongRunning)`
  `Optional<com.google.genai.types.FunctionDeclaration>`
  `declaration()`
  Gets the `FunctionDeclaration` representation of this tool.
  `Method`
  `func()`
  Returns the underlying function `Method`.
  `boolean`
  `isStreaming()`
  Returns true if the wrapped function returns a Flowable and can be used for streaming.
  `io.reactivex.rxjava3.core.Single<Map<String,Object>>`
  `runAsync(Map<String,Object> args, ToolContext toolContext)`
  Calls a tool.

  ### Methods inherited from class BaseTool

  `customMetadata, description, fromConfig, longRunning, name, runAsync, runAsync, runAsync, runAsync, runAsync, runAsync, setCustomMetadata`
  Modifier and Type
  Method
  Description
  `com.google.common.collect.ImmutableMap<String,Object>`
  `customMetadata()`
  Returns a read-only view of the tool metadata.
  `String`
  `description()`
  `static BaseTool`
  `fromConfig(BaseTool.ToolConfig config, String configAbsPath)`
  Creates a tool instance from a config.
  `boolean`
  `longRunning()`
  `String`
  `name()`
  `final <I,O> io.reactivex.rxjava3.core.Single<O>`
  `runAsync(I args, ToolContext toolContext, com.fasterxml.jackson.core.type.TypeReference<? extends O> typeReference)`
  Calls a tool with generic arguments, returning the results converted to a specified type reference.
  `final <I,O> io.reactivex.rxjava3.core.Single<O>`
  `runAsync(I args, ToolContext toolContext, com.fasterxml.jackson.databind.ObjectMapper objectMapper, com.fasterxml.jackson.core.type.TypeReference<? extends O> typeReference)`
  Calls a tool with generic arguments and a custom `ObjectMapper`, returning the results converted to a specified type reference.
  `final <I,O> io.reactivex.rxjava3.core.Single<O>`
  `runAsync(I args, ToolContext toolContext, com.fasterxml.jackson.databind.ObjectMapper objectMapper, Class<? extends O> oClass)`
  Calls a tool with generic arguments and a custom `ObjectMapper`, returning the results converted to a specified class.
  `final <I,O> io.reactivex.rxjava3.core.Single<O>`
  `runAsync(I args, ToolContext toolContext, Class<? extends O> oClass)`
  Calls a tool with generic arguments, returning the results converted to a specified class.
  `final <T> io.reactivex.rxjava3.core.Single<Map<String,Object>>`
  `runAsync(T args, ToolContext toolContext)`
  Calls a tool with generic arguments and returns a map of results.
  `final <T> io.reactivex.rxjava3.core.Single<Map<String,Object>>`
  `runAsync(T args, ToolContext toolContext, com.fasterxml.jackson.databind.ObjectMapper objectMapper)`
  Calls a tool with generic arguments using a custom `ObjectMapper` and returns a map of results.
  `void`
  `setCustomMetadata(String key, Object value)`
  Sets custom metadata to the tool associated with a key.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### LoadMemoryTool

    public LoadMemoryTool()

- ## Method Details

  - ### loadMemory

    public static io.reactivex.rxjava3.core.Single<LoadMemoryResponse> loadMemory(String query, ToolContext toolContext)
    Loads the memory for the current user.
    Parameters:
      `query` - The query to load memory for.
    Returns:
      A list of memory results.

  - ### processLlmRequest

    public io.reactivex.rxjava3.core.Completable processLlmRequest(LlmRequest.Builder llmRequestBuilder, ToolContext toolContext)
    Description copied from class: `BaseTool`
    Processes the outgoing `LlmRequest.Builder`.

    This implementation adds the current tool's `BaseTool.declaration()` to the `GenerateContentConfig` within the builder. If a tool with function declarations already exists, the current tool's declaration is merged into it. Otherwise, a new tool definition with the current tool's declaration is created. The current tool itself is also added to the builder's internal list of tools. Override this method for processing the outgoing request.

    Overrides:
      `processLlmRequest` in class `BaseTool`