Class VariantManager

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

public class VariantManager extends Object
Manages agent variants and handles runtime switching.

The VariantManager provides:

  • Runtime variant switching
  • Automatic variant selection based on task complexity
  • Variant usage tracking and statistics
  • Event notification for variant changes

Usage


 VariantManager manager = new VariantManager(AgentVariant.MEDIUM);

 // Manual switching
 manager.setVariant(AgentVariant.HIGH);

 // Auto selection
 manager.setAutoMode(true);
 AgentVariant suggested = manager.suggestVariant("Refactor the authentication system");

 // Listen for changes
 manager.onVariantChange(event -> {
     System.out.println("Switched from " + event.previous() + " to " + event.current());
 });
 
  • Constructor Details

    • VariantManager

      public VariantManager()
      Creates a manager with the default MEDIUM variant.
    • VariantManager

      public VariantManager(AgentVariant initialVariant)
      Creates a manager with the specified initial variant.
  • Method Details

    • getCurrentVariant

      public AgentVariant getCurrentVariant()
      Gets the current variant.
    • getCurrentSpec

      public VariantSpec getCurrentSpec()
      Gets the current variant configuration.
    • setVariant

      public void setVariant(AgentVariant variant)
      Sets the variant.
    • setVariantSpec

      public void setVariantSpec(AgentVariant variant, VariantSpec config)
      Sets a custom configuration for a variant.
    • setAutoMode

      public void setAutoMode(boolean enabled)
      Enables or disables auto mode.
    • isAutoMode

      public boolean isAutoMode()
      Returns true if auto mode is enabled.
    • suggestVariant

      public AgentVariant suggestVariant(String taskDescription)
      Suggests a variant based on task description. If auto mode is enabled, also switches to the suggested variant.
    • recordTask

      public void recordTask(AgentVariant variant, long durationMs, boolean success)
      Records a completed task for statistics.
    • getStats

      public VariantManager.VariantStats getStats(AgentVariant variant)
      Gets statistics for a variant.
    • getAllStats

      Gets all statistics.
    • onVariantChange

      Registers a listener for variant changes.
      Parameters:
      listener - The listener to register
      Returns:
      A Registration that can be used to unregister the listener
    • removeVariantChangeListener

      public boolean removeVariantChangeListener(Consumer<VariantManager.VariantChangeEvent> listener)
      Removes a previously registered listener.
      Parameters:
      listener - The listener to remove
      Returns:
      true if the listener was removed