diff --git a/core/src/main/java/com/google/adk/agents/CallbackContext.java b/core/src/main/java/com/google/adk/agents/CallbackContext.java index a29783769..da5b0d794 100644 --- a/core/src/main/java/com/google/adk/agents/CallbackContext.java +++ b/core/src/main/java/com/google/adk/agents/CallbackContext.java @@ -19,12 +19,12 @@ import com.google.adk.artifacts.ListArtifactsResponse; import com.google.adk.events.EventActions; import com.google.adk.sessions.State; +import com.google.common.base.Preconditions; import com.google.genai.types.Part; import io.reactivex.rxjava3.core.Completable; import io.reactivex.rxjava3.core.Maybe; import io.reactivex.rxjava3.core.Single; import java.util.List; -import java.util.Optional; /** The context of various callbacks for an agent invocation. */ public class CallbackContext extends ReadonlyContext { @@ -94,22 +94,19 @@ public Single> listArtifacts() { /** Loads the latest version of an artifact from the service. */ public Maybe loadArtifact(String filename) { - return loadArtifact(filename, Optional.empty()); + checkArtifactServiceInitialized(); + return invocationContext + .artifactService() + .loadArtifact( + invocationContext.appName(), + invocationContext.userId(), + invocationContext.session().id(), + filename); } /** Loads a specific version of an artifact from the service. */ public Maybe loadArtifact(String filename, int version) { - return loadArtifact(filename, Optional.of(version)); - } - - /** - * @deprecated Use {@link #loadArtifact(String)} or {@link #loadArtifact(String, int)} instead. - */ - @Deprecated - public Maybe loadArtifact(String filename, Optional version) { - if (invocationContext.artifactService() == null) { - throw new IllegalStateException("Artifact service is not initialized."); - } + checkArtifactServiceInitialized(); return invocationContext .artifactService() .loadArtifact( @@ -120,6 +117,11 @@ public Maybe loadArtifact(String filename, Optional version) { version); } + private void checkArtifactServiceInitialized() { + Preconditions.checkState( + invocationContext.artifactService() != null, "Artifact service is not initialized."); + } + /** * Saves an artifact and records it as a delta for the current session. * diff --git a/core/src/main/java/com/google/adk/tools/LoadArtifactsTool.java b/core/src/main/java/com/google/adk/tools/LoadArtifactsTool.java index c5ae8af37..399079af5 100644 --- a/core/src/main/java/com/google/adk/tools/LoadArtifactsTool.java +++ b/core/src/main/java/com/google/adk/tools/LoadArtifactsTool.java @@ -169,7 +169,7 @@ private Completable loadAndAppendIndividualArtifact( LlmRequest.Builder llmRequestBuilder, ToolContext toolContext, String artifactName) { return toolContext - .loadArtifact(artifactName, Optional.empty()) + .loadArtifact(artifactName) .flatMapCompletable( actualArtifact -> Completable.fromAction( diff --git a/core/src/test/java/com/google/adk/tools/LoadArtifactsToolTest.java b/core/src/test/java/com/google/adk/tools/LoadArtifactsToolTest.java index 89014175d..5ed7a1f40 100644 --- a/core/src/test/java/com/google/adk/tools/LoadArtifactsToolTest.java +++ b/core/src/test/java/com/google/adk/tools/LoadArtifactsToolTest.java @@ -3,7 +3,6 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.nullable; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; @@ -163,12 +162,11 @@ public void processLlmRequest_artifactsInContext_withLoadArtifactsFunctionCall_l Part loadedArtifactPart = Part.fromText("This is the content of doc1.txt"); ToolContext spiedToolContext = spy(ToolContext.builder(mockInvocationContext).build()); when(spiedToolContext.listArtifacts()).thenReturn(Single.just(availableArtifacts)); - when(spiedToolContext.loadArtifact(eq("doc1.txt"), eq(Optional.empty()))) - .thenReturn(Maybe.just(loadedArtifactPart)); + when(spiedToolContext.loadArtifact("doc1.txt")).thenReturn(Maybe.just(loadedArtifactPart)); loadArtifactsTool.processLlmRequest(llmRequestBuilder, spiedToolContext).blockingAwait(); - verify(spiedToolContext).loadArtifact(eq("doc1.txt"), eq(Optional.empty())); + verify(spiedToolContext).loadArtifact("doc1.txt"); LlmRequest finalRequest = llmRequestBuilder.build(); List finalContents = finalRequest.contents();