Package com.embabel.agent.api.tool
Interface MatryoshkaTool
-
- All Implemented Interfaces:
-
com.embabel.agent.api.tool.Tool,com.embabel.agent.api.tool.ToolInfo,com.embabel.agent.api.tool.progressive.ProgressiveTool,com.embabel.agent.api.tool.progressive.UnfoldingTool
@Deprecated(message = "Use UnfoldingTool instead", replaceWith = @ReplaceWith(imports = {"com.embabel.agent.api.tool.progressive.UnfoldingTool"}, expression = "UnfoldingTool")) public interface MatryoshkaTool implements UnfoldingTool
A tool that contains other tools, enabling progressive tool disclosure.
Named after Russian nesting dolls, a MatryoshkaTool presents a high-level description to the LLM. When invoked, its inner tools become available and (optionally) the MatryoshkaTool itself is removed.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public classMatryoshkaTool.CompanionCompanion object that extends UnfoldingTool.Factory to provide factory methods. All factory methods from UnfoldingTool are available.
Example:
val tool = MatryoshkaTool.of( name = "spotify_search", description = "Search Spotify for music data", innerTools = listOf(vectorSearchTool, textSearchTool) )
-
Method Summary
Modifier and Type Method Description -
Methods inherited from class com.embabel.agent.api.tool.progressive.UnfoldingTool
getChildToolUsageNotes, getIncludeContextTool, getInnerTools, getRemoveOnInvoke, innerTools, selectTools, withToolObject, withTools -
Methods inherited from class com.embabel.agent.api.tool.Tool
call, withDescription, withName, withNote -
Methods inherited from class com.embabel.agent.api.tool.ToolInfo
getDefinition, getMetadata -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-