LlmTool

@Target(allowedTargets = [AnnotationTarget.FUNCTION])
annotation class LlmTool(val description: String = "", val name: String = "", val returnDirect: Boolean = false, val category: String = "")

Marks a method as a tool that can be invoked by an LLM. Use with com.embabel.agent.api.tool.Tool.Companion.fromInstance or com.embabel.agent.api.tool.Tool.Companion.fromMethod to create Tool instances.

Types

Link copied to clipboard
annotation class Param(val description: String, val required: Boolean = true)

Describes a tool parameter. Apply to method parameters. Parameters don't need to be annotated: If they are, the purpose is to provide description and required information.

Properties

Link copied to clipboard

Optional category for use with MatryoshkaTools. When the containing class has @MatryoshkaTools, tools with the same category are grouped together and exposed when that category is selected. Leave empty for tools that should always be exposed.

Link copied to clipboard

Description of what the tool does. Used by LLM to decide when to call it.

Link copied to clipboard

Tool name. Defaults to method name if empty.

Link copied to clipboard
val returnDirect: Boolean = false

Whether to return the result directly without further LLM processing.