Class ParallelizationWorkflowAgent<Request,Response>
java.lang.Object
com.javaaidev.agenticpatterns.core.Agent
com.javaaidev.agenticpatterns.taskexecution.TaskExecutionAgent<Request,Response>
com.javaaidev.agenticpatterns.parallelizationworkflow.ParallelizationWorkflowAgent<Request,Response>
- Type Parameters:
Request
-Response
-
- All Implemented Interfaces:
Function<Request,
Response>
- Direct Known Subclasses:
DirectAssembling
,PromptBasedAssembling
public abstract class ParallelizationWorkflowAgent<Request,Response>
extends TaskExecutionAgent<Request,Response>
Parallelization Workflow agent, refer to doc
-
Field Summary
FieldsFields inherited from class com.javaaidev.agenticpatterns.taskexecution.TaskExecutionAgent
responseType
Fields inherited from class com.javaaidev.agenticpatterns.core.Agent
chatClient, observationRegistry
-
Constructor Summary
ConstructorsConstructorDescriptionParallelizationWorkflowAgent
(org.springframework.ai.chat.client.ChatClient chatClient, @Nullable io.micrometer.observation.ObservationRegistry observationRegistry) ParallelizationWorkflowAgent
(org.springframework.ai.chat.client.ChatClient chatClient, @Nullable Type responseType, @Nullable io.micrometer.observation.ObservationRegistry observationRegistry) -
Method Summary
Modifier and TypeMethodDescriptionprotected <TaskRequest,
TaskResponse>
voidaddSubtask
(String taskId, TaskExecutionAgent<TaskRequest, TaskResponse> subtask, Function<Request, TaskRequest> requestTransformer) Add new subtaskprotected @Nullable List
<SubtaskCreationRequest<Request>> createTasks
(@Nullable Request request) Create a list of subtasks from request.protected Duration
Max duration of a subtask executionprotected ExecutorService
Create the ExecutorService to execute subtasks.protected TaskExecutionResults
runSubtasks
(@Nullable Request request) Methods inherited from class com.javaaidev.agenticpatterns.taskexecution.TaskExecutionAgent
apply, call, getPromptContext, getPromptTemplate, instrumentedCall, updateChatClientRequest
Methods inherited from class com.javaaidev.agenticpatterns.core.Agent
getName
-
Field Details
-
subtasks
-
-
Constructor Details
-
ParallelizationWorkflowAgent
public ParallelizationWorkflowAgent(org.springframework.ai.chat.client.ChatClient chatClient, @Nullable io.micrometer.observation.ObservationRegistry observationRegistry) -
ParallelizationWorkflowAgent
public ParallelizationWorkflowAgent(org.springframework.ai.chat.client.ChatClient chatClient, @Nullable Type responseType, @Nullable io.micrometer.observation.ObservationRegistry observationRegistry)
-
-
Method Details
-
addSubtask
protected <TaskRequest,TaskResponse> void addSubtask(String taskId, TaskExecutionAgent<TaskRequest, TaskResponse> subtask, Function<Request, TaskRequest> requestTransformer) Add new subtask- Type Parameters:
TaskRequest
- Task input typeTaskResponse
- Task output type- Parameters:
taskId
- Task idsubtask
- Subtask implemented as TaskExecutionAgentrequestTransformer
- Transform request to task's input
-
getMaxTaskExecutionDuration
Max duration of a subtask execution- Returns:
- Max duration
-
createTasks
Create a list of subtasks from request. Subtasks added by addSubtask(String, TaskExecutionAgent, Function) will be merged into this list.- Parameters:
request
- Request- Returns:
- Subtasks
-
getTaskExecutorService
Create the ExecutorService to execute subtasks.The default executor service uses virtual threads.
- Returns:
- executor service
-
runSubtasks
-