MatryoshkaTools

@Target(allowedTargets = [AnnotationTarget.CLASS])
annotation class MatryoshkaTools(val name: String, val description: String, val removeOnInvoke: Boolean = true, val categoryParameter: String = "category", val childToolUsageNotes: String = "")

Deprecated

Use @UnfoldingTools instead

Replace with

import com.embabel.agent.api.annotation.UnfoldingTools
UnfoldingTools

Marks a class as an UnfoldingTool container for progressive tool disclosure.

See also

Properties

Link copied to clipboard

Name of the category parameter if using category-based selection. Only used when @LlmTool methods have category specified. Default is "category".

Link copied to clipboard

Optional usage notes to guide the LLM on when and how to use the child tools. These notes are included in the context tool created when the MatryoshkaTool is invoked.

Link copied to clipboard

Description of the MatryoshkaTool. Should explain what category of tools this contains and instruct the LLM to invoke it to see specific options.

Link copied to clipboard

Name of the MatryoshkaTool facade. This is the tool name the LLM will see initially.

Link copied to clipboard

Whether to remove this tool after invocation. Default is true - the facade is replaced by its inner tools. Set to false to keep the facade available for re-invocation.