Class EvaluatorOptimizerAgent<Request,Response>

java.lang.Object
com.javaaidev.agenticpatterns.core.Agent
com.javaaidev.agenticpatterns.taskexecution.TaskExecutionAgent<Request,Response>
com.javaaidev.agenticpatterns.taskexecution.NoLLMTaskExecutionAgent<Request,Response>
com.javaaidev.agenticpatterns.evaluatoroptimizer.EvaluatorOptimizerAgent<Request,Response>
Type Parameters:
Request -
Response -
All Implemented Interfaces:
Function<Request,Response>
Direct Known Subclasses:
PromptBasedEvaluatorOptimizerAgent

public abstract class EvaluatorOptimizerAgent<Request,Response> extends NoLLMTaskExecutionAgent<Request,Response>
Evaluator-Optimizer Agent, refer to the pattern
  • Field Details

  • Constructor Details

    • EvaluatorOptimizerAgent

      protected EvaluatorOptimizerAgent(org.springframework.ai.chat.client.ChatClient generationChatClient, org.springframework.ai.chat.client.ChatClient evaluationChatClient)
    • EvaluatorOptimizerAgent

      public EvaluatorOptimizerAgent(org.springframework.ai.chat.client.ChatClient generationChatClient, org.springframework.ai.chat.client.ChatClient evaluationChatClient, @Nullable io.micrometer.observation.ObservationRegistry observationRegistry)
    • EvaluatorOptimizerAgent

      protected EvaluatorOptimizerAgent(org.springframework.ai.chat.client.ChatClient generationChatClient, org.springframework.ai.chat.client.ChatClient evaluationChatClient, @Nullable Type responseType, @Nullable io.micrometer.observation.ObservationRegistry observationRegistry)
  • Method Details

    • getMaxIterations

      protected int getMaxIterations()
      The maximum number of evaluation iterations, default to 3
      Returns:
      Maximum number of iterations
    • buildInitialResultAgent

      protected abstract TaskExecutionAgent<Request,Response> buildInitialResultAgent(org.springframework.ai.chat.client.ChatClient chatClient, @Nullable io.micrometer.observation.ObservationRegistry observationRegistry)
      Build the agent to generation initial result
      Returns:
      the agent, see TaskExecutionAgent
    • buildEvaluationAgent

      protected abstract TaskExecutionAgent<Response,Evaluation> buildEvaluationAgent(org.springframework.ai.chat.client.ChatClient chatClient, @Nullable io.micrometer.observation.ObservationRegistry observationRegistry)
      Build the agent to evaluate the result
      Returns:
      the agent, see TaskExecutionAgent
    • buildOptimizationAgent

      protected abstract TaskExecutionAgent<EvaluatorOptimizerAgent.OptimizationInput<Response>,Response> buildOptimizationAgent(org.springframework.ai.chat.client.ChatClient chatClient, @Nullable io.micrometer.observation.ObservationRegistry observationRegistry)
      Build the agent to optimize the result
      Returns:
      the agent, see TaskExecutionAgent
    • call

      public Response call(@Nullable Request request)
      Overrides:
      call in class TaskExecutionAgent<Request,Response>