From e6d7d3c784bd205a08b5b277971a340d40120b04 Mon Sep 17 00:00:00 2001 From: Fu Cheng Date: Mon, 25 May 2026 20:03:14 +1200 Subject: [PATCH 1/4] Start version 2.0.0 --- core/pom.xml | 2 +- examples/pom.xml | 2 +- patterns/chain-workflow/pom.xml | 2 +- patterns/evaluator-optimizer/pom.xml | 2 +- patterns/parallelization-workflow/pom.xml | 2 +- patterns/pom.xml | 2 +- patterns/routing-workflow/pom.xml | 2 +- patterns/task-execution/pom.xml | 2 +- pom.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/core/pom.xml b/core/pom.xml index 9c73983..ff8a6db 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -6,7 +6,7 @@ com.javaaidev.agenticpatterns agentic-patterns - 1.0.0 + 2.0.0 core diff --git a/examples/pom.xml b/examples/pom.xml index f59f9f1..f9a58f6 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -6,7 +6,7 @@ com.javaaidev.agenticpatterns agentic-patterns - 1.0.0 + 2.0.0 examples diff --git a/patterns/chain-workflow/pom.xml b/patterns/chain-workflow/pom.xml index 299d411..0b6b7dc 100644 --- a/patterns/chain-workflow/pom.xml +++ b/patterns/chain-workflow/pom.xml @@ -6,7 +6,7 @@ com.javaaidev.agenticpatterns patterns - 1.0.0 + 2.0.0 chain-workflow diff --git a/patterns/evaluator-optimizer/pom.xml b/patterns/evaluator-optimizer/pom.xml index 06288fa..6895cb0 100644 --- a/patterns/evaluator-optimizer/pom.xml +++ b/patterns/evaluator-optimizer/pom.xml @@ -6,7 +6,7 @@ com.javaaidev.agenticpatterns patterns - 1.0.0 + 2.0.0 evaluator-optimizer diff --git a/patterns/parallelization-workflow/pom.xml b/patterns/parallelization-workflow/pom.xml index 2c61225..da7ea42 100644 --- a/patterns/parallelization-workflow/pom.xml +++ b/patterns/parallelization-workflow/pom.xml @@ -6,7 +6,7 @@ com.javaaidev.agenticpatterns patterns - 1.0.0 + 2.0.0 parallelization-workflow diff --git a/patterns/pom.xml b/patterns/pom.xml index 35c2722..315af28 100644 --- a/patterns/pom.xml +++ b/patterns/pom.xml @@ -6,7 +6,7 @@ com.javaaidev.agenticpatterns agentic-patterns - 1.0.0 + 2.0.0 patterns diff --git a/patterns/routing-workflow/pom.xml b/patterns/routing-workflow/pom.xml index 28f9119..1fe05da 100644 --- a/patterns/routing-workflow/pom.xml +++ b/patterns/routing-workflow/pom.xml @@ -6,7 +6,7 @@ com.javaaidev.agenticpatterns patterns - 1.0.0 + 2.0.0 routing-workflow diff --git a/patterns/task-execution/pom.xml b/patterns/task-execution/pom.xml index 5b641d5..5f728a2 100644 --- a/patterns/task-execution/pom.xml +++ b/patterns/task-execution/pom.xml @@ -6,7 +6,7 @@ com.javaaidev.agenticpatterns patterns - 1.0.0 + 2.0.0 task-execution diff --git a/pom.xml b/pom.xml index 073c738..70399fc 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.javaaidev.agenticpatterns agentic-patterns - 1.0.0 + 2.0.0 pom Agentic Patterns Agentic Patterns implementation using Spring AI From 33fba12abd2e8b7d7c503277f946918f81ce6394 Mon Sep 17 00:00:00 2001 From: Fu Cheng Date: Mon, 25 May 2026 21:09:19 +1200 Subject: [PATCH 2/4] Upgrade to Spring AI 2.0.0 --- .../agenticpatterns/core/AgentUtils.java | 18 +++++++++-------- examples/pom.xml | 13 +++++++----- .../chainworkflow/ChainStepAgent.java | 8 ++++---- .../DefaultResponseAssembler.java | 8 ++++---- .../AbstractTaskExecutionAgentBuilder.java | 8 ++++---- .../DefaultTaskExecutionAgentBuilder.java | 2 +- .../taskexecution/TaskExecutionAgent.java | 20 +++++++++---------- .../TaskExecutionAgentBuilderTest.java | 7 +------ pom.xml | 6 +++--- 9 files changed, 45 insertions(+), 45 deletions(-) diff --git a/core/src/main/java/com/javaaidev/agenticpatterns/core/AgentUtils.java b/core/src/main/java/com/javaaidev/agenticpatterns/core/AgentUtils.java index d4481bb..3709c04 100644 --- a/core/src/main/java/com/javaaidev/agenticpatterns/core/AgentUtils.java +++ b/core/src/main/java/com/javaaidev/agenticpatterns/core/AgentUtils.java @@ -1,9 +1,5 @@ package com.javaaidev.agenticpatterns.core; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.HashMap; @@ -12,11 +8,17 @@ import java.util.function.Function; import org.jspecify.annotations.Nullable; import org.springframework.core.io.ClassPathResource; +import tools.jackson.core.JacksonException; +import tools.jackson.core.type.TypeReference; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.SerializationFeature; +import tools.jackson.databind.json.JsonMapper; public class AgentUtils { - private static final ObjectMapper objectMapper = new ObjectMapper().enable( - SerializationFeature.INDENT_OUTPUT); + private static final ObjectMapper objectMapper = JsonMapper.builder() + .enable(SerializationFeature.INDENT_OUTPUT) + .build(); /** * Load prompt template from classpath by name @@ -68,7 +70,7 @@ public static String toJson(@Nullable Object input) { } try { return objectMapper.writeValueAsString(input); - } catch (JsonProcessingException e) { + } catch (JacksonException e) { return "{}"; } } @@ -87,7 +89,7 @@ public static Map objectToMap(@Nullable Object object) { try { return objectMapper.readValue(json, new TypeReference<>() { }); - } catch (JsonProcessingException e) { + } catch (JacksonException e) { return new HashMap<>(); } } diff --git a/examples/pom.xml b/examples/pom.xml index f9a58f6..a345c99 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -18,8 +18,8 @@ 21 21 UTF-8 - 1.1.1 - 3.5.9 + 2.0.0-M7 + 4.0.6 @@ -41,7 +41,7 @@ io.opentelemetry.instrumentation opentelemetry-instrumentation-bom - 2.15.0 + 2.28.1 pom import @@ -90,15 +90,18 @@ org.springframework.boot spring-boot-starter-actuator + + org.springframework.ai + spring-ai-starter-mcp-client + org.springdoc springdoc-openapi-starter-webmvc-ui - 2.8.9 + 3.0.3 io.micrometer micrometer-registry-otlp - 1.15.5 io.micrometer diff --git a/patterns/chain-workflow/src/main/java/com/javaaidev/agenticpatterns/chainworkflow/ChainStepAgent.java b/patterns/chain-workflow/src/main/java/com/javaaidev/agenticpatterns/chainworkflow/ChainStepAgent.java index 6efa18a..bc767b7 100644 --- a/patterns/chain-workflow/src/main/java/com/javaaidev/agenticpatterns/chainworkflow/ChainStepAgent.java +++ b/patterns/chain-workflow/src/main/java/com/javaaidev/agenticpatterns/chainworkflow/ChainStepAgent.java @@ -1,6 +1,5 @@ package com.javaaidev.agenticpatterns.chainworkflow; -import com.fasterxml.jackson.databind.ObjectMapper; import com.javaaidev.agenticpatterns.core.McpClientConfiguration; import com.javaaidev.agenticpatterns.taskexecution.AbstractTaskExecutionAgentBuilder; import com.javaaidev.agenticpatterns.taskexecution.TaskExecutionAgent; @@ -14,6 +13,7 @@ import org.springframework.ai.chat.client.ChatClient; import org.springframework.ai.chat.client.ChatClient.ChatClientRequestSpec; import org.springframework.util.Assert; +import tools.jackson.databind.json.JsonMapper; /** * A step in the chain implemented as a {@linkplain TaskExecutionAgent} @@ -44,11 +44,11 @@ public ChainStepAgent(ChatClient chatClient, @Nullable Predicate toolFilter, @Nullable String name, @Nullable ObservationRegistry observationRegistry, - @Nullable ObjectMapper objectMapper) { + @Nullable JsonMapper jsonMapper) { super(chatClient, promptTemplate, responseType, promptTemplateContextProvider, chatClientRequestSpecUpdater, mcpClientConfiguration, toolFilter, - name, observationRegistry, objectMapper); + name, observationRegistry, jsonMapper); } public static Builder builder() { @@ -86,7 +86,7 @@ public ChainStepAgent build() { toolFilter, name, observationRegistry, - objectMapper) { + jsonMapper) { @Override public Response call(Request request, Map context, WorkflowChain chain) { diff --git a/patterns/parallelization-workflow/src/main/java/com/javaaidev/agenticpatterns/parallelizationworkflow/DefaultResponseAssembler.java b/patterns/parallelization-workflow/src/main/java/com/javaaidev/agenticpatterns/parallelizationworkflow/DefaultResponseAssembler.java index ec67f61..06f2d9a 100644 --- a/patterns/parallelization-workflow/src/main/java/com/javaaidev/agenticpatterns/parallelizationworkflow/DefaultResponseAssembler.java +++ b/patterns/parallelization-workflow/src/main/java/com/javaaidev/agenticpatterns/parallelizationworkflow/DefaultResponseAssembler.java @@ -1,6 +1,5 @@ package com.javaaidev.agenticpatterns.parallelizationworkflow; -import com.fasterxml.jackson.databind.ObjectMapper; import com.javaaidev.agenticpatterns.core.McpClientConfiguration; import com.javaaidev.agenticpatterns.parallelizationworkflow.DefaultResponseAssembler.AssemblingInput; import com.javaaidev.agenticpatterns.taskexecution.AbstractTaskExecutionAgentBuilder; @@ -14,6 +13,7 @@ import org.jspecify.annotations.Nullable; import org.springframework.ai.chat.client.ChatClient; import org.springframework.ai.chat.client.ChatClient.ChatClientRequestSpec; +import tools.jackson.databind.json.JsonMapper; /** * A {@linkplain ResponseAssembler} implemented using {@linkplain TaskExecutionAgent} @@ -33,11 +33,11 @@ public DefaultResponseAssembler(ChatClient chatClient, @Nullable Predicate toolFilter, @Nullable String name, @Nullable ObservationRegistry observationRegistry, - @Nullable ObjectMapper objectMapper) { + @Nullable JsonMapper jsonMapper) { super(chatClient, promptTemplate, responseType, promptTemplateContextProvider, chatClientRequestSpecUpdater, mcpClientConfiguration, toolFilter, - name, observationRegistry, objectMapper); + name, observationRegistry, jsonMapper); } @Override @@ -68,7 +68,7 @@ public DefaultResponseAssembler build() { toolFilter, name, observationRegistry, - objectMapper + jsonMapper ); } } diff --git a/patterns/task-execution/src/main/java/com/javaaidev/agenticpatterns/taskexecution/AbstractTaskExecutionAgentBuilder.java b/patterns/task-execution/src/main/java/com/javaaidev/agenticpatterns/taskexecution/AbstractTaskExecutionAgentBuilder.java index 8d434b0..690045a 100644 --- a/patterns/task-execution/src/main/java/com/javaaidev/agenticpatterns/taskexecution/AbstractTaskExecutionAgentBuilder.java +++ b/patterns/task-execution/src/main/java/com/javaaidev/agenticpatterns/taskexecution/AbstractTaskExecutionAgentBuilder.java @@ -1,6 +1,5 @@ package com.javaaidev.agenticpatterns.taskexecution; -import com.fasterxml.jackson.databind.ObjectMapper; import com.javaaidev.agenticpatterns.core.McpClientConfiguration; import io.micrometer.observation.ObservationRegistry; import java.lang.reflect.Type; @@ -12,6 +11,7 @@ import org.springframework.ai.chat.client.ChatClient; import org.springframework.ai.chat.client.ChatClient.ChatClientRequestSpec; import org.springframework.util.Assert; +import tools.jackson.databind.json.JsonMapper; public abstract class AbstractTaskExecutionAgentBuilder> implements TaskExecutionAgent.Builder { @@ -25,7 +25,7 @@ public abstract class AbstractTaskExecutionAgentBuilder chatClientRequestSpecUpdater; protected @Nullable McpClientConfiguration mcpClientConfiguration; protected @Nullable Predicate toolFilter; - protected @Nullable ObjectMapper objectMapper; + protected @Nullable JsonMapper jsonMapper; @SuppressWarnings("unchecked") protected T self() { @@ -85,8 +85,8 @@ public T toolFilter(Predicate toolFilter) { } @Override - public T objectMapper(ObjectMapper objectMapper) { - this.objectMapper = objectMapper; + public T jsonMapper(JsonMapper jsonMapper) { + this.jsonMapper = jsonMapper; return self(); } } diff --git a/patterns/task-execution/src/main/java/com/javaaidev/agenticpatterns/taskexecution/DefaultTaskExecutionAgentBuilder.java b/patterns/task-execution/src/main/java/com/javaaidev/agenticpatterns/taskexecution/DefaultTaskExecutionAgentBuilder.java index b38b75f..6f3b5f4 100644 --- a/patterns/task-execution/src/main/java/com/javaaidev/agenticpatterns/taskexecution/DefaultTaskExecutionAgentBuilder.java +++ b/patterns/task-execution/src/main/java/com/javaaidev/agenticpatterns/taskexecution/DefaultTaskExecutionAgentBuilder.java @@ -18,7 +18,7 @@ public TaskExecutionAgent build() { toolFilter, name, observationRegistry, - objectMapper) { + jsonMapper) { }; } } diff --git a/patterns/task-execution/src/main/java/com/javaaidev/agenticpatterns/taskexecution/TaskExecutionAgent.java b/patterns/task-execution/src/main/java/com/javaaidev/agenticpatterns/taskexecution/TaskExecutionAgent.java index cfaba55..7a16be4 100644 --- a/patterns/task-execution/src/main/java/com/javaaidev/agenticpatterns/taskexecution/TaskExecutionAgent.java +++ b/patterns/task-execution/src/main/java/com/javaaidev/agenticpatterns/taskexecution/TaskExecutionAgent.java @@ -1,6 +1,5 @@ package com.javaaidev.agenticpatterns.taskexecution; -import com.fasterxml.jackson.databind.ObjectMapper; import com.javaaidev.agenticpatterns.core.Agent; import com.javaaidev.agenticpatterns.core.AgentExecutionException; import com.javaaidev.agenticpatterns.core.AgentUtils; @@ -15,7 +14,7 @@ import io.modelcontextprotocol.client.transport.HttpClientSseClientTransport; import io.modelcontextprotocol.client.transport.HttpClientStreamableHttpTransport; import io.modelcontextprotocol.client.transport.StdioClientTransport; -import io.modelcontextprotocol.json.jackson.JacksonMcpJsonMapper; +import io.modelcontextprotocol.json.jackson3.JacksonMcpJsonMapper; import io.modelcontextprotocol.spec.McpSchema; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; @@ -41,6 +40,7 @@ import org.springframework.ai.tool.ToolCallbackProvider; import org.springframework.core.ParameterizedTypeReference; import org.springframework.util.CollectionUtils; +import tools.jackson.databind.json.JsonMapper; /** * Task Execution Agent, refer to the extends protected McpClientConfiguration mcpClientConfiguration; protected Predicate toolFilter = (name) -> true; protected String name = super.getName(); - protected ObjectMapper objectMapper = new ObjectMapper(); + protected JsonMapper jsonMapper = JsonMapper.builder().build(); private static final Logger LOGGER = LoggerFactory.getLogger(TaskExecutionAgent.class); @@ -99,7 +99,7 @@ protected TaskExecutionAgent(ChatClient chatClient, @Nullable Predicate toolFilter, @Nullable String name, @Nullable ObservationRegistry observationRegistry, - @Nullable ObjectMapper objectMapper + @Nullable JsonMapper jsonMapper ) { super(chatClient, observationRegistry); this.promptTemplate = promptTemplate; @@ -113,8 +113,8 @@ protected TaskExecutionAgent(ChatClient chatClient, if (name != null) { this.name = name; } - if (objectMapper != null) { - this.objectMapper = objectMapper; + if (jsonMapper != null) { + this.jsonMapper = jsonMapper; } } @@ -237,7 +237,7 @@ protected ToolCallbackProvider getToolCallbackProvider() { for (var serverParameters : stdioProperties.toServerParameters() .entrySet()) { var transport = new StdioClientTransport(serverParameters.getValue(), - new JacksonMcpJsonMapper(objectMapper)); + new JacksonMcpJsonMapper(jsonMapper)); transports.add(new NamedClientMcpTransport(serverParameters.getKey(), transport)); } @@ -252,7 +252,7 @@ protected ToolCallbackProvider getToolCallbackProvider() { "/sse"); var transport = HttpClientSseClientTransport.builder(baseUrl) .sseEndpoint(sseEndpoint) - .jsonMapper(new JacksonMcpJsonMapper(objectMapper)) + .jsonMapper(new JacksonMcpJsonMapper(jsonMapper)) .build(); transports.add(new NamedClientMcpTransport(serverParameters.getKey(), transport)); } @@ -267,7 +267,7 @@ protected ToolCallbackProvider getToolCallbackProvider() { "/mcp"); var transport = HttpClientStreamableHttpTransport.builder(baseUrl) .endpoint(endpoint) - .jsonMapper(new JacksonMcpJsonMapper(objectMapper)) + .jsonMapper(new JacksonMcpJsonMapper(jsonMapper)) .build(); transports.add(new NamedClientMcpTransport(serverParameters.getKey(), transport)); } @@ -320,7 +320,7 @@ T chatClientRequestSpecUpdater( T toolFilter(Predicate toolFilter); - T objectMapper(ObjectMapper objectMapper); + T jsonMapper(JsonMapper jsonMapper); TaskExecutionAgent build(); } diff --git a/patterns/task-execution/src/test/java/com/javaaidev/agenticpatterns/taskexecution/TaskExecutionAgentBuilderTest.java b/patterns/task-execution/src/test/java/com/javaaidev/agenticpatterns/taskexecution/TaskExecutionAgentBuilderTest.java index def46b1..3ef273e 100644 --- a/patterns/task-execution/src/test/java/com/javaaidev/agenticpatterns/taskexecution/TaskExecutionAgentBuilderTest.java +++ b/patterns/task-execution/src/test/java/com/javaaidev/agenticpatterns/taskexecution/TaskExecutionAgentBuilderTest.java @@ -8,17 +8,12 @@ import org.junit.jupiter.api.Test; import org.springframework.ai.chat.client.ChatClient; import org.springframework.ai.openai.OpenAiChatModel; -import org.springframework.ai.openai.api.OpenAiApi; @Disabled class TaskExecutionAgentBuilderTest { private final ChatClient chatClient = ChatClient.builder( - OpenAiChatModel.builder() - .openAiApi(OpenAiApi.builder() - .apiKey(System.getenv("OPENAI_API_KEY")) - .build()) - .build()).build(); + OpenAiChatModel.builder().build()).build(); @Test void testBuilder() { diff --git a/pom.xml b/pom.xml index 70399fc..50f4c7c 100644 --- a/pom.xml +++ b/pom.xml @@ -52,8 +52,8 @@ ${java.version} ${java.version} UTF-8 - 1.1.7 - 1.14.4 + 2.0.0-M7 + 1.16.5 @@ -78,7 +78,7 @@ io.micrometer micrometer-tracing-bridge-otel - 1.5.5 + 1.6.5 org.slf4j From aa4c9e7735dd41e71c3fb78c9cecefd548b61341 Mon Sep 17 00:00:00 2001 From: Fu Cheng Date: Wed, 27 May 2026 05:29:41 +1200 Subject: [PATCH 3/4] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 099483a..d622f6b 100644 --- a/README.md +++ b/README.md @@ -8,4 +8,4 @@ Reference implementation of [Agentic Workflow and Patterns](https://javaaidev.co Requirements: - Java 21 (for virtual threads) -- Spring AI (Current version `1.1.1`) \ No newline at end of file +- Spring AI (Current version `2.0.0-M7`) \ No newline at end of file From e70f46ca492482c6f341b17bd20c28dc6b2458da Mon Sep 17 00:00:00 2001 From: Fu Cheng Date: Tue, 16 Jun 2026 19:16:44 +1200 Subject: [PATCH 4/4] Upgrade to Spring AI 2.0.0 --- README.md | 2 +- examples/pom.xml | 2 +- .../agentastool/RestAPITestCaseGenerationAgent.java | 2 +- .../taskexecution/TaskExecutionAgent.java | 11 +++++------ pom.xml | 2 +- 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index d622f6b..fd125e3 100644 --- a/README.md +++ b/README.md @@ -8,4 +8,4 @@ Reference implementation of [Agentic Workflow and Patterns](https://javaaidev.co Requirements: - Java 21 (for virtual threads) -- Spring AI (Current version `2.0.0-M7`) \ No newline at end of file +- Spring AI (Current version `2.0.0`) \ No newline at end of file diff --git a/examples/pom.xml b/examples/pom.xml index a345c99..4b09338 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -18,7 +18,7 @@ 21 21 UTF-8 - 2.0.0-M7 + 2.0.0 4.0.6 diff --git a/examples/src/main/java/com/javaaidev/agenticpatterns/examples/agentastool/RestAPITestCaseGenerationAgent.java b/examples/src/main/java/com/javaaidev/agenticpatterns/examples/agentastool/RestAPITestCaseGenerationAgent.java index 952d0ca..cf0e247 100644 --- a/examples/src/main/java/com/javaaidev/agenticpatterns/examples/agentastool/RestAPITestCaseGenerationAgent.java +++ b/examples/src/main/java/com/javaaidev/agenticpatterns/examples/agentastool/RestAPITestCaseGenerationAgent.java @@ -28,7 +28,7 @@ protected String getPromptTemplate() { @Override protected void updateChatClientRequest(ChatClientRequestSpec spec) { - spec.toolNames("userGenerationAgent"); + } public record RestAPITestCaseGenerationResponse(String code) { diff --git a/patterns/task-execution/src/main/java/com/javaaidev/agenticpatterns/taskexecution/TaskExecutionAgent.java b/patterns/task-execution/src/main/java/com/javaaidev/agenticpatterns/taskexecution/TaskExecutionAgent.java index 7a16be4..a1c5f45 100644 --- a/patterns/task-execution/src/main/java/com/javaaidev/agenticpatterns/taskexecution/TaskExecutionAgent.java +++ b/patterns/task-execution/src/main/java/com/javaaidev/agenticpatterns/taskexecution/TaskExecutionAgent.java @@ -207,8 +207,7 @@ private Response doCall(@Nullable Request request) { LOGGER.info("Tool names to use: {}", toolNames); var requestSpec = chatClient.prompt() .user(userSpec -> userSpec.text(template).params(context)) - .toolCallbacks(getToolCallbackProvider()) - .toolNames(toolNames); + .tools(getToolCallbackProvider()); updateChatClientRequest(requestSpec); var responseSpec = requestSpec.call(); Response output; @@ -277,10 +276,10 @@ protected ToolCallbackProvider getToolCallbackProvider() { if (!CollectionUtils.isEmpty(transports)) { for (NamedClientMcpTransport namedTransport : transports) { - McpSchema.Implementation clientInfo = new McpSchema.Implementation( - namedTransport.name(), "1.0.0"); + var clientInfo = McpSchema.Implementation.builder( + namedTransport.name(), "1.0.0").build(); - McpClient.AsyncSpec spec = McpClient.async(namedTransport.transport()) + var spec = McpClient.async(namedTransport.transport()) .clientInfo(clientInfo) .requestTimeout(Duration.ofSeconds(30)); @@ -289,7 +288,7 @@ protected ToolCallbackProvider getToolCallbackProvider() { mcpAsyncClients.add(client); } - return new AsyncMcpToolCallbackProvider(mcpAsyncClients); + return AsyncMcpToolCallbackProvider.builder().mcpClients(mcpAsyncClients).build(); } return new StaticToolCallbackProvider(); } diff --git a/pom.xml b/pom.xml index 50f4c7c..82e3df7 100644 --- a/pom.xml +++ b/pom.xml @@ -52,7 +52,7 @@ ${java.version} ${java.version} UTF-8 - 2.0.0-M7 + 2.0.0 1.16.5