From 40b83486a4c811e2e4aad08f7be58f7f7a51fa7c Mon Sep 17 00:00:00 2001 From: Christian Tzolov Date: Mon, 8 Dec 2025 18:14:59 +0100 Subject: [PATCH] Add doFinalizeLoop() hook to ToolCallAdvisor Introduce doFinalizeLoop() method as a symmetric counterpart to doInitializeLoop(). This protected hook allows subclasses to perform cleanup or finalization logic after the tool calling loop completes. Signed-off-by: Christian Tzolov --- .../ai/chat/client/advisor/ToolCallAdvisor.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/ToolCallAdvisor.java b/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/ToolCallAdvisor.java index ea9f1d91a32..a8938f0ff4e 100644 --- a/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/ToolCallAdvisor.java +++ b/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/ToolCallAdvisor.java @@ -150,6 +150,11 @@ public ChatClientResponse adviseCall(ChatClientRequest chatClientRequest, CallAd } while (isToolCall); // loop until no tool calls are present + return this.doFinalizeLoop(chatClientResponse, callAdvisorChain); + } + + protected ChatClientResponse doFinalizeLoop(ChatClientResponse chatClientResponse, + CallAdvisorChain callAdvisorChain) { return chatClientResponse; }