Interface ProgressiveTool

  • All Implemented Interfaces:
    com.embabel.agent.api.tool.Tool , com.embabel.agent.api.tool.ToolInfo

    
    public interface ProgressiveTool
     implements Tool
                        

    A tool implementing progressive disclosure - reveals additional capabilities beyond its initial interface.

    Progressive tools present a simplified interface to the LLM initially, then reveal more specific tools when invoked. This reduces cognitive load and allows the LLM to discover capabilities on demand.

    Implementations may vary what tools are revealed based on the current agent process context (permissions, state, phase, etc.).

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
    • 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
      abstract List<Tool> innerTools(AgentProcess process) The inner tools available in this context.
      • 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

      • innerTools

         abstract List<Tool> innerTools(AgentProcess process)

        The inner tools available in this context.

        May vary based on process state, permissions, phase, etc. Implementations should return an empty list if no tools are available in the current context.

        Parameters:
        process - The current agent process context
        Returns:

        The tools available for this process