Annotation Tool
-
- All Implemented Interfaces:
-
java.lang.annotation.Annotation
@Retention(value = RUNTIME)@Target(value = {}) 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. When used together withAiServices
, 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 the LLM decides to call the tool, the arguments will be parsed, and the method will be called automatically. If the return type of the method annotated with@Tool
is String, the returned value will be sent to the LLM as-is. If the return type isvoid
, "Success" string will be sent to the LLM. In all other cases, the returned value will be serialized into a JSON string and sent to the LLM.