Skip to content

Commit 64faa6f

Browse files
Poggeccicopybara-github
authored andcommitted
fix: live agents using Gemini don't call tools
PiperOrigin-RevId: 792789389
1 parent 5839f6c commit 64faa6f

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

core/src/main/java/com/google/adk/models/GeminiLlmConnection.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,10 @@ public Completable sendContent(Content content) {
206206
.build());
207207
} else {
208208
return sendClientContentInternal(
209-
LiveSendClientContentParameters.builder().turns(ImmutableList.of(content)).build());
209+
LiveSendClientContentParameters.builder()
210+
.turns(ImmutableList.of(content))
211+
.turnComplete(true)
212+
.build());
210213
}
211214
}
212215

core/src/main/java/com/google/adk/tools/BaseTool.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.google.errorprone.annotations.CanIgnoreReturnValue;
2424
import com.google.genai.types.FunctionDeclaration;
2525
import com.google.genai.types.GenerateContentConfig;
26+
import com.google.genai.types.LiveConnectConfig;
2627
import com.google.genai.types.Tool;
2728
import io.reactivex.rxjava3.core.Completable;
2829
import io.reactivex.rxjava3.core.Single;
@@ -110,19 +111,23 @@ public Completable processLlmRequest(
110111
.build())
111112
.build();
112113
}
114+
ImmutableList<Tool> newTools =
115+
new ImmutableList.Builder<Tool>()
116+
.addAll(toolsWithoutFunctionDeclarations)
117+
.add(toolWithFunctionDeclarations)
118+
.build();
113119
// Patch the GenerateContentConfig with the new tool definition.
114120
GenerateContentConfig generateContentConfig =
115121
llmRequest
116122
.config()
117123
.map(GenerateContentConfig::toBuilder)
118124
.orElse(GenerateContentConfig.builder())
119-
.tools(
120-
new ImmutableList.Builder<Tool>()
121-
.addAll(toolsWithoutFunctionDeclarations)
122-
.add(toolWithFunctionDeclarations)
123-
.build())
125+
.tools(newTools)
124126
.build();
127+
LiveConnectConfig liveConnectConfig =
128+
llmRequest.liveConnectConfig().toBuilder().tools(newTools).build();
125129
llmRequestBuilder.config(generateContentConfig);
130+
llmRequestBuilder.liveConnectConfig(liveConnectConfig);
126131
return Completable.complete();
127132
}
128133

0 commit comments

Comments
 (0)