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
- Type of agent inputResponse
- Type of agent output
- 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
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final record
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected @Nullable TaskExecutionAgent
<Response, Evaluation> protected org.springframework.ai.chat.client.ChatClient
protected org.springframework.ai.chat.client.ChatClient
protected TaskExecutionAgent
<Request, Response> protected @Nullable TaskExecutionAgent
<EvaluatorOptimizerAgent.OptimizationInput<Response>, Response> Fields inherited from class com.javaaidev.agenticpatterns.taskexecution.TaskExecutionAgent
responseType
Fields inherited from class com.javaaidev.agenticpatterns.core.Agent
chatClient, observationRegistry
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
EvaluatorOptimizerAgent
(org.springframework.ai.chat.client.ChatClient generationChatClient, org.springframework.ai.chat.client.ChatClient evaluationChatClient) EvaluatorOptimizerAgent
(org.springframework.ai.chat.client.ChatClient generationChatClient, org.springframework.ai.chat.client.ChatClient evaluationChatClient, @Nullable io.micrometer.observation.ObservationRegistry observationRegistry) 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 Summary
Modifier and TypeMethodDescriptionprotected abstract TaskExecutionAgent
<Response, Evaluation> buildEvaluationAgent
(org.springframework.ai.chat.client.ChatClient chatClient, @Nullable io.micrometer.observation.ObservationRegistry observationRegistry) Build the agent to evaluate the resultprotected abstract TaskExecutionAgent
<Request, Response> buildInitialResultAgent
(org.springframework.ai.chat.client.ChatClient chatClient, @Nullable io.micrometer.observation.ObservationRegistry observationRegistry) Build the agent to generation initial resultprotected 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 resultprotected int
The maximum number of evaluation iterations, default to 3Methods inherited from class com.javaaidev.agenticpatterns.taskexecution.NoLLMTaskExecutionAgent
getPromptTemplate
Methods inherited from class com.javaaidev.agenticpatterns.taskexecution.TaskExecutionAgent
apply, getPromptContext, instrumentedCall, updateChatClientRequest
Methods inherited from class com.javaaidev.agenticpatterns.core.Agent
getName
-
Field Details
-
generationChatClient
protected org.springframework.ai.chat.client.ChatClient generationChatClient -
evaluationChatClient
protected org.springframework.ai.chat.client.ChatClient evaluationChatClient -
initialResultAgent
-
evaluationAgent
-
optimizationAgent
protected @Nullable TaskExecutionAgent<EvaluatorOptimizerAgent.OptimizationInput<Response>,Response> optimizationAgent
-
-
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
- Overrides:
call
in classTaskExecutionAgent<Request,
Response>
-