Class TaskExecutionAgent<Request,Response>

java.lang.Object
com.javaaidev.agenticpatterns.core.Agent
com.javaaidev.agenticpatterns.taskexecution.TaskExecutionAgent<Request,Response>
Type Parameters:
Request - Type of agent input
Response - Type of agent output
All Implemented Interfaces:
Function<Request,Response>

public abstract class TaskExecutionAgent<Request,Response> extends Agent implements Function<Request,Response>
Task Execution Agent, refer to the pattern
  • Field Details

    • responseType

      protected @Nullable Type responseType
    • promptTemplate

      protected String promptTemplate
    • promptTemplateContextProvider

      protected @Nullable Function<Request,Map<String,Object>> promptTemplateContextProvider
    • chatClientRequestSpecUpdater

      protected @Nullable Consumer<org.springframework.ai.chat.client.ChatClient.ChatClientRequestSpec> chatClientRequestSpecUpdater
    • name

      protected String name
  • Constructor Details

    • TaskExecutionAgent

      protected TaskExecutionAgent(org.springframework.ai.chat.client.ChatClient chatClient)
    • TaskExecutionAgent

      protected TaskExecutionAgent(org.springframework.ai.chat.client.ChatClient chatClient, @Nullable Type responseType)
    • TaskExecutionAgent

      protected TaskExecutionAgent(org.springframework.ai.chat.client.ChatClient chatClient, @Nullable io.micrometer.observation.ObservationRegistry observationRegistry)
    • TaskExecutionAgent

      protected TaskExecutionAgent(org.springframework.ai.chat.client.ChatClient chatClient, @Nullable Type responseType, @Nullable io.micrometer.observation.ObservationRegistry observationRegistry)
    • TaskExecutionAgent

      protected TaskExecutionAgent(org.springframework.ai.chat.client.ChatClient chatClient, String promptTemplate, @Nullable Type responseType, @Nullable Function<Request,Map<String,Object>> promptTemplateContextProvider, @Nullable Consumer<org.springframework.ai.chat.client.ChatClient.ChatClientRequestSpec> chatClientRequestSpecUpdater, @Nullable String name, @Nullable io.micrometer.observation.ObservationRegistry observationRegistry)
  • Method Details

    • getPromptTemplate

      protected String getPromptTemplate()
      Get the prompt template
      Returns:
      prompt template
    • getPromptContext

      protected @Nullable Map<String,Object> getPromptContext(@Nullable Request request)
      Prepare for the values of variables in the prompt template
      Parameters:
      request - Task input
      Returns:
      Values of values
    • updateChatClientRequest

      protected void updateChatClientRequest(org.springframework.ai.chat.client.ChatClient.ChatClientRequestSpec spec)
      Customize request sent to LLM
      Parameters:
      spec - ChatClient.ChatClientRequestSpec from Spring AI
    • getName

      protected String getName()
      Overrides:
      getName in class Agent
    • apply

      public Response apply(Request request)
      Specified by:
      apply in interface Function<Request,Response>
    • call

      public Response call(@Nullable Request request)
    • instrumentedCall

      protected Response instrumentedCall(@Nullable Request request, Function<Request,Response> action)
    • defaultBuilder

      public static <Req, Res> DefaultTaskExecutionAgentBuilder<Req,Res> defaultBuilder()