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 class MatryoshkaTool.Companion

      Companion 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)
      )
    • Field Summary

      Fields 
      Modifier and Type Field Description
    • Constructor Summary

      Constructors 
      Constructor Description
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • 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
    • Constructor Detail

    • Method Detail