Class VariantSelector

java.lang.Object
com.tnsai.agents.variant.VariantSelector

public class VariantSelector extends Object
Intelligent variant selector for automatic quality tier selection.

Combines multiple factors to select the optimal variant:

  • Task Complexity: Analyzes input for complexity signals
  • Historical Performance: Tracks success/failure rates per variant
  • Cost Budget: Respects token budget constraints
  • User Preferences: Learns from explicit feedback
Author:
TnsAI Team
  • Method Details

    • builder

      public static VariantSelector.Builder builder()
      Creates a new builder.
      Returns:
      builder instance
    • defaults

      public static VariantSelector defaults()
      Creates a default selector with balanced settings.
      Returns:
      default selector
    • select

      public VariantSelector.SelectionResult select(String taskDescription)
      Selects the optimal variant for the given task.
      Parameters:
      taskDescription - the task description
      Returns:
      selected variant
    • select

      public VariantSelector.SelectionResult select(String taskDescription, AgentVariant override)
      Selects the optimal variant considering action metadata.
      Parameters:
      taskDescription - the task description
      override - explicit variant override (from @Variant annotation)
      Returns:
      selected variant
    • recordSuccess

      public void recordSuccess(AgentVariant variant, int tokensUsed)
      Records a successful execution for learning.
      Parameters:
      variant - the variant used
      tokensUsed - tokens consumed
    • recordFailure

      public void recordFailure(AgentVariant variant, int tokensUsed)
      Records a failed execution for learning.
      Parameters:
      variant - the variant used
      tokensUsed - tokens consumed before failure
    • getStats

      public VariantSelector.VariantStats getStats(AgentVariant variant)
      Gets statistics for a specific variant.
      Parameters:
      variant - the variant
      Returns:
      statistics
    • getAllStats

      Gets all variant statistics.
      Returns:
      map of variant to stats
    • getRemainingBudget

      public long getRemainingBudget()
      Gets remaining budget.
      Returns:
      remaining tokens, or -1 if no budget set
    • resetStats

      public void resetStats()
      Resets learning statistics.