Skip to content

Commit f47d899

Browse files
committed
refactor task execution agent example
1 parent 083c36d commit f47d899

File tree

6 files changed

+36
-16
lines changed

6 files changed

+36
-16
lines changed

examples/src/main/java/com/javaaidev/agenticpatterns/examples/taskexecution/UserGenerationAgent.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.javaaidev.agenticpatterns.examples.taskexecution;
22

33
import com.javaaidev.agenticpatterns.core.AgentUtils;
4-
import com.javaaidev.agenticpatterns.examples.taskexecution.UserGenerationAgent.UserGenerationRequest;
54
import com.javaaidev.agenticpatterns.taskexecution.TaskExecutionAgent;
65
import io.micrometer.observation.ObservationRegistry;
76
import java.util.List;
@@ -23,7 +22,4 @@ protected String getPromptTemplate() {
2322
return AgentUtils.loadPromptTemplateFromClasspath("prompt_template/generate-user.st");
2423
}
2524

26-
public record UserGenerationRequest(int count) {
27-
28-
}
2925
}
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.javaaidev.agenticpatterns.examples.taskexecution;
22

3-
import com.javaaidev.agenticpatterns.examples.taskexecution.UserGenerationAgent.UserGenerationRequest;
4-
import java.util.List;
3+
import com.javaaidev.agenticpatterns.taskexecution.TaskExecutionAgent;
54
import org.springframework.web.bind.annotation.PostMapping;
65
import org.springframework.web.bind.annotation.RequestBody;
76
import org.springframework.web.bind.annotation.RequestMapping;
@@ -11,14 +10,15 @@
1110
@RequestMapping("/users_generation")
1211
public class UserGenerationAgentController {
1312

14-
private final UserGenerationAgent userGenerationAgent;
13+
private final TaskExecutionAgent<UserGenerationRequest, UserGenerationResponse> userGenerationAgent;
1514

16-
public UserGenerationAgentController(UserGenerationAgent userGenerationAgent) {
15+
public UserGenerationAgentController(
16+
TaskExecutionAgent<UserGenerationRequest, UserGenerationResponse> userGenerationAgent) {
1717
this.userGenerationAgent = userGenerationAgent;
1818
}
19-
19+
2020
@PostMapping
21-
public List<User> generateUsers(@RequestBody UserGenerationRequest request) {
21+
public UserGenerationResponse generateUsers(@RequestBody UserGenerationRequest request) {
2222
return userGenerationAgent.call(request);
2323
}
2424
}
Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package com.javaaidev.agenticpatterns.examples.taskexecution;
22

3+
import com.javaaidev.agenticpatterns.core.AgentUtils;
4+
import com.javaaidev.agenticpatterns.taskexecution.TaskExecutionAgent;
35
import io.micrometer.observation.ObservationRegistry;
46
import org.springframework.ai.chat.client.ChatClient;
57
import org.springframework.ai.chat.client.advisor.SimpleLoggerAdvisor;
8+
import org.springframework.beans.factory.annotation.Qualifier;
69
import org.springframework.context.annotation.Bean;
710
import org.springframework.context.annotation.Configuration;
811
import org.springframework.context.annotation.Description;
@@ -11,12 +14,21 @@
1114
public class UserGenerationConfiguration {
1215

1316
@Bean
14-
@Description("Generate test user")
15-
public UserGenerationAgent userGenerationAgent(
17+
@Description("Generate test users")
18+
@Qualifier("userGenerationAgent")
19+
public TaskExecutionAgent<UserGenerationRequest, UserGenerationResponse> userGenerationAgent(
1620
ChatClient.Builder chatClientBuilder,
1721
SimpleLoggerAdvisor simpleLoggerAdvisor,
18-
ObservationRegistry observationRegistry) {
19-
return new UserGenerationAgent(
20-
chatClientBuilder.defaultAdvisors(simpleLoggerAdvisor).build(), observationRegistry);
22+
ObservationRegistry observationRegistry
23+
) {
24+
var chatClient = chatClientBuilder.defaultAdvisors(simpleLoggerAdvisor).build();
25+
return TaskExecutionAgent.<UserGenerationRequest, UserGenerationResponse>defaultBuilder()
26+
.chatClient(chatClient)
27+
.responseType(UserGenerationResponse.class)
28+
.promptTemplate(
29+
AgentUtils.loadPromptTemplateFromClasspath("prompt_template/generate-user.st"))
30+
.name("UserGeneration")
31+
.observationRegistry(observationRegistry)
32+
.build();
2133
}
2234
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.javaaidev.agenticpatterns.examples.taskexecution;
2+
3+
public record UserGenerationRequest(int count) {
4+
5+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.javaaidev.agenticpatterns.examples.taskexecution;
2+
3+
import java.util.List;
4+
5+
public record UserGenerationResponse(List<User> users) {
6+
7+
}

patterns/task-execution/src/main/java/com/javaaidev/agenticpatterns/taskexecution/TaskExecutionAgent.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ private Response doCall(@Nullable Request request) {
171171
throw new AgentExecutionException("Invalid type " + type);
172172
}
173173
if (output == null) {
174-
throw new RuntimeException("Empty or bad response from LLM");
174+
throw new AgentExecutionException("Empty or bad response from LLM");
175175
}
176176
return output;
177177
}

0 commit comments

Comments
 (0)