diff --git a/core/src/main/java/com/google/adk/tools/AgentTool.java b/core/src/main/java/com/google/adk/tools/AgentTool.java index 66d4a2700..7f74ab780 100644 --- a/core/src/main/java/com/google/adk/tools/AgentTool.java +++ b/core/src/main/java/com/google/adk/tools/AgentTool.java @@ -16,6 +16,8 @@ package com.google.adk.tools; +import static org.apache.commons.lang3.StringUtils.isNotBlank; + import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.google.adk.JsonBaseModel; @@ -131,8 +133,11 @@ private Optional getOutputSchema(BaseAgent agent) { @Override public Optional declaration() { + + String desc = isNotBlank(this.description()) ? this.description() : this.name(); + FunctionDeclaration.Builder builder = - FunctionDeclaration.builder().description(this.description()).name(this.name()); + FunctionDeclaration.builder().description(desc).name(this.name()); Optional agentInputSchema = getInputSchema(agent); diff --git a/core/src/test/java/com/google/adk/tools/AgentToolTest.java b/core/src/test/java/com/google/adk/tools/AgentToolTest.java index b37db6611..2178126b7 100644 --- a/core/src/test/java/com/google/adk/tools/AgentToolTest.java +++ b/core/src/test/java/com/google/adk/tools/AgentToolTest.java @@ -43,6 +43,7 @@ import io.reactivex.rxjava3.core.Flowable; import io.reactivex.rxjava3.core.Maybe; import java.util.Map; +import java.util.Optional; import java.util.concurrent.atomic.AtomicBoolean; import org.junit.Before; import org.junit.Test; @@ -882,4 +883,20 @@ private ToolContext createToolContext(BaseAgent agent) { .build()) .build(); } + + @Test + public void declaration_withNullDescription_fallsBackToName() { + // Create an agent with a name but NO description + LlmAgent testAgent = + LlmAgent.builder() + .name("TestAgent") + // .description() is intentionally left out + .build(); + + AgentTool tool = AgentTool.create(testAgent); + Optional declaration = tool.declaration(); + assertThat(declaration.isPresent()); + assertThat(declaration.get().name().get()).isEqualTo("TestAgent"); + assertThat(declaration.get().description().get()).isEqualTo("TestAgent"); + } }