Class PromptBasedEvaluatorOptimizerAgent<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>
com.javaaidev.agenticpatterns.evaluatoroptimizer.PromptBasedEvaluatorOptimizerAgent<Request,Response>
- Type Parameters:
Request
-Response
-
- All Implemented Interfaces:
Function<Request,
Response>
public abstract class PromptBasedEvaluatorOptimizerAgent<Request,Response>
extends EvaluatorOptimizerAgent<Request,Response>
A EvaluatorOptimizerAgent implementation uses prompts for subtask agents
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclass
class
class
Nested classes/interfaces inherited from class com.javaaidev.agenticpatterns.evaluatoroptimizer.EvaluatorOptimizerAgent
EvaluatorOptimizerAgent.OptimizationInput<Response>
-
Field Summary
Fields inherited from class com.javaaidev.agenticpatterns.evaluatoroptimizer.EvaluatorOptimizerAgent
evaluationAgent, evaluationChatClient, generationChatClient, initialResultAgent, optimizationAgent
Fields inherited from class com.javaaidev.agenticpatterns.taskexecution.TaskExecutionAgent
responseType
Fields inherited from class com.javaaidev.agenticpatterns.core.Agent
chatClient, observationRegistry
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
PromptBasedEvaluatorOptimizerAgent
(org.springframework.ai.chat.client.ChatClient generationChatClient, org.springframework.ai.chat.client.ChatClient evaluationChatClient) protected
PromptBasedEvaluatorOptimizerAgent
(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 TaskExecutionAgent
<Response, Evaluation> buildEvaluationAgent
(org.springframework.ai.chat.client.ChatClient chatClient, @Nullable io.micrometer.observation.ObservationRegistry observationRegistry) Build the agent to evaluate the resultbuildEvaluationPromptContext
(@Nullable Response response) Prepare for the values of variables in the prompt template to evaluate a resultprotected TaskExecutionAgent
<Request, Response> buildInitialResultAgent
(org.springframework.ai.chat.client.ChatClient chatClient, @Nullable io.micrometer.observation.ObservationRegistry observationRegistry) Build the agent to generation initial resultbuildInitialResultPromptContext
(@Nullable Request request) Prepare for the values of variables in the prompt template to generate initial resultbuildOptimizationAgent
(org.springframework.ai.chat.client.ChatClient chatClient, @Nullable io.micrometer.observation.ObservationRegistry observationRegistry) Build the agent to optimize the resultbuildOptimizationPromptContext
(@Nullable EvaluatorOptimizerAgent.OptimizationInput<Response> optimizationInput) Prepare for the values of variables in the prompt template to optimize a resultprotected abstract String
Prompt template for the agent to evaluate a resultprotected abstract String
Prompt template for the agent to generate initial resultprotected abstract String
Prompt template for the agent to optimize a resultMethods inherited from class com.javaaidev.agenticpatterns.evaluatoroptimizer.EvaluatorOptimizerAgent
call, getMaxIterations
Methods 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
-
Constructor Details
-
PromptBasedEvaluatorOptimizerAgent
protected PromptBasedEvaluatorOptimizerAgent(org.springframework.ai.chat.client.ChatClient generationChatClient, org.springframework.ai.chat.client.ChatClient evaluationChatClient) -
PromptBasedEvaluatorOptimizerAgent
protected PromptBasedEvaluatorOptimizerAgent(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
-
getInitialResultPromptTemplate
Prompt template for the agent to generate initial result- Returns:
- Prompt template
-
buildInitialResultPromptContext
Prepare for the values of variables in the prompt template to generate initial result- Parameters:
request
- Request- Returns:
- Values of variables
-
buildInitialResultAgent
protected TaskExecutionAgent<Request,Response> buildInitialResultAgent(org.springframework.ai.chat.client.ChatClient chatClient, @Nullable io.micrometer.observation.ObservationRegistry observationRegistry) Description copied from class:EvaluatorOptimizerAgent
Build the agent to generation initial result- Specified by:
buildInitialResultAgent
in classEvaluatorOptimizerAgent<Request,
Response> - Returns:
- the agent, see TaskExecutionAgent
-
getEvaluationPromptTemplate
Prompt template for the agent to evaluate a result- Returns:
- Prompt template
-
buildEvaluationPromptContext
Prepare for the values of variables in the prompt template to evaluate a result- Parameters:
response
- Response from a previous generation- Returns:
- Values of variables
-
buildEvaluationAgent
protected TaskExecutionAgent<Response,Evaluation> buildEvaluationAgent(org.springframework.ai.chat.client.ChatClient chatClient, @Nullable io.micrometer.observation.ObservationRegistry observationRegistry) Description copied from class:EvaluatorOptimizerAgent
Build the agent to evaluate the result- Specified by:
buildEvaluationAgent
in classEvaluatorOptimizerAgent<Request,
Response> - Returns:
- the agent, see TaskExecutionAgent
-
getOptimizationPromptTemplate
Prompt template for the agent to optimize a result- Returns:
- Prompt template
-
buildOptimizationPromptContext
protected @Nullable Map<String,Object> buildOptimizationPromptContext(@Nullable EvaluatorOptimizerAgent.OptimizationInput<Response> optimizationInput) Prepare for the values of variables in the prompt template to optimize a result- Parameters:
optimizationInput
- Input for optimization- Returns:
- Values of variables
-
buildOptimizationAgent
protected TaskExecutionAgent<EvaluatorOptimizerAgent.OptimizationInput<Response>,Response> buildOptimizationAgent(org.springframework.ai.chat.client.ChatClient chatClient, @Nullable io.micrometer.observation.ObservationRegistry observationRegistry) Description copied from class:EvaluatorOptimizerAgent
Build the agent to optimize the result- Specified by:
buildOptimizationAgent
in classEvaluatorOptimizerAgent<Request,
Response> - Returns:
- the agent, see TaskExecutionAgent
-