Skip to content

Commit 9900744

Browse files
committed
Add messages to chat memory after tool calls
1 parent 1b999de commit 9900744

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

core/runtime/src/main/java/io/quarkiverse/langchain4j/runtime/aiservice/AiServiceMethodImplementationSupport.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,7 @@ private List<ChatMessage> messagesToSend(UserMessage augmentedUserMessage,
435435

436436
boolean immediateToolReturn = true;
437437
List<ToolExecution> toolExecutions = new ArrayList<>();
438+
List<ToolExecutionResultMessage> toolResults = new ArrayList<>();
438439
for (ToolExecutionRequest toolExecutionRequest : aiMessage.toolExecutionRequests()) {
439440
log.debugv("Attempting to execute tool {0}", toolExecutionRequest);
440441
ToolExecutor toolExecutor = toolExecutors.get(toolExecutionRequest.name());
@@ -450,13 +451,16 @@ private List<ChatMessage> messagesToSend(UserMessage augmentedUserMessage,
450451
.result(ToolExecutionResult.builder().resultText(toolExecutionResultMessage.text()).build())
451452
.build();
452453
toolExecutions.add(toolExecution);
454+
toolResults.add(toolExecutionResultMessage);
453455
if (toolExecutor instanceof QuarkusToolExecutor) {
454456
immediateToolReturn = ((QuarkusToolExecutor) toolExecutor).returnBehavior() == ReturnBehavior.IMMEDIATE;
455457
} else {
456458
immediateToolReturn = false;
457459
}
458460

459-
committableChatMemory.add(toolExecutionResultMessage);
461+
}
462+
for (ToolExecutionResultMessage toolResult : toolResults) {
463+
committableChatMemory.add(toolResult);
460464
}
461465
if (immediateToolReturn) {
462466
if (!TypeUtil.isResult(returnType)) {

0 commit comments

Comments
 (0)