diff --git a/core/src/main/java/com/google/adk/agents/LlmAgent.java b/core/src/main/java/com/google/adk/agents/LlmAgent.java index 1893fb162..6d8469cc4 100644 --- a/core/src/main/java/com/google/adk/agents/LlmAgent.java +++ b/core/src/main/java/com/google/adk/agents/LlmAgent.java @@ -965,7 +965,10 @@ private Model resolveModelInternal() { Model currentModel = this.model.get(); if (currentModel.model().isPresent()) { - return currentModel; + String modelName = currentModel.model().get().model(); + BaseLlm resolvedLlm = currentModel.model().get(); + + return Model.builder().modelName(modelName).model(resolvedLlm).build(); } if (currentModel.modelName().isPresent()) { diff --git a/core/src/main/java/com/google/adk/flows/llmflows/Contents.java b/core/src/main/java/com/google/adk/flows/llmflows/Contents.java index f45461626..0f2e2d166 100644 --- a/core/src/main/java/com/google/adk/flows/llmflows/Contents.java +++ b/core/src/main/java/com/google/adk/flows/llmflows/Contents.java @@ -559,7 +559,7 @@ private static List rearrangeEventsForAsyncFunctionResponsesInHistory( // Gemini 3 requires function calls to be grouped first and only then function responses: // FC1 FC2 FR1 FR2 - boolean shouldBufferResponseEvents = modelName.startsWith("gemini-3-"); + boolean shouldBufferResponseEvents = modelName.contains("gemini-3-"); for (int i = 0; i < events.size(); i++) { Event event = events.get(i); diff --git a/core/src/test/java/com/google/adk/agents/LlmAgentTest.java b/core/src/test/java/com/google/adk/agents/LlmAgentTest.java index ce8be8dfb..594e47fd8 100644 --- a/core/src/test/java/com/google/adk/agents/LlmAgentTest.java +++ b/core/src/test/java/com/google/adk/agents/LlmAgentTest.java @@ -376,6 +376,17 @@ public void resolveModel_withModelName_resolvesFromRegistry() { assertThat(resolvedModel.model()).hasValue(testLlm); } + @Test + public void resolveModel_withModel_usesProvidedModel() { + TestLlm testLlm = createTestLlm(LlmResponse.builder().build()); + LlmAgent testAgent = createTestAgent(testLlm); + + Model resolvedModel = testAgent.resolvedModel(); + + assertThat(resolvedModel.model()).hasValue(testLlm); + assertThat(resolvedModel.modelName()).hasValue(testLlm.model()); + } + @Test public void canonicalCallbacks_returnsEmptyListWhenNull() { TestLlm testLlm = createTestLlm(LlmResponse.builder().build());