Annotation Interface Tool


@Retention(RUNTIME) @Target(METHOD) public @interface Tool
Java methods annotated with @Tool are considered tools/functions that language model can execute/call. Tool/function calling LLM capability (e.g., see OpenAI function calling documentation) is used under the hood. A low-level ToolSpecification will be automatically created from the method signature (e.g. method name, method parameters (names and types), @Tool and @P annotations, etc.) and will be sent to the LLM. If LLM decides to call the tool, the arguments are automatically parsed and injected as method arguments.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    Name of the tool.
    Description of the tool.
  • Element Details

    • name

      String name
      Name of the tool. If not provided, method name will be used.
      Returns:
      name of the tool.
      Default:
      ""
    • value

      String[] value
      Description of the tool. It should be clear and descriptive to allow language model to understand the tool's purpose and its intended use.
      Returns:
      description of the tool.
      Default:
      {""}