From 626f1714cf6fea451589dcdfbe1705afeb250930 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Tue, 25 Nov 2025 07:54:20 -0800 Subject: [PATCH] feat: mark a2a module as experimental PiperOrigin-RevId: 836669263 --- a2a/src/main/java/com/google/adk/a2a/A2AClient.java | 7 ++++++- .../java/com/google/adk/a2a/A2ASendMessageExecutor.java | 7 ++++++- a2a/src/main/java/com/google/adk/a2a/RemoteA2AAgent.java | 3 +++ .../adk/a2a/converters/ConversationPreprocessor.java | 3 +++ .../java/com/google/adk/a2a/converters/EventConverter.java | 7 ++++++- .../java/com/google/adk/a2a/converters/PartConverter.java | 7 ++++++- .../com/google/adk/a2a/converters/RequestConverter.java | 3 +++ .../com/google/adk/a2a/converters/ResponseConverter.java | 7 ++++++- .../com/google/adk/webservice/A2ARemoteApplication.java | 7 ++++++- .../com/google/adk/webservice/A2ARemoteConfiguration.java | 3 +++ .../com/google/adk/webservice/A2ARemoteController.java | 7 ++++++- .../java/com/google/adk/webservice/A2ARemoteService.java | 7 ++++++- 12 files changed, 60 insertions(+), 8 deletions(-) diff --git a/a2a/src/main/java/com/google/adk/a2a/A2AClient.java b/a2a/src/main/java/com/google/adk/a2a/A2AClient.java index cf0b43dfe..8efa4bf6d 100644 --- a/a2a/src/main/java/com/google/adk/a2a/A2AClient.java +++ b/a2a/src/main/java/com/google/adk/a2a/A2AClient.java @@ -22,7 +22,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -/** A thin HTTP client for interacting with an A2A-compliant agent endpoint. */ +/** + * A thin HTTP client for interacting with an A2A-compliant agent endpoint. + * + * @apiNote **EXPERIMENTAL:** Subject to change, rename, or removal in any future patch release. Do + * not use in production code. + */ public final class A2AClient { private static final Logger logger = LoggerFactory.getLogger(A2AClient.class); diff --git a/a2a/src/main/java/com/google/adk/a2a/A2ASendMessageExecutor.java b/a2a/src/main/java/com/google/adk/a2a/A2ASendMessageExecutor.java index 4beef8432..f39dd9d69 100644 --- a/a2a/src/main/java/com/google/adk/a2a/A2ASendMessageExecutor.java +++ b/a2a/src/main/java/com/google/adk/a2a/A2ASendMessageExecutor.java @@ -29,7 +29,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -/** Shared SendMessage execution between HTTP service and other integrations. */ +/** + * Shared SendMessage execution between HTTP service and other integrations. + * + * @apiNote **EXPERIMENTAL:** Subject to change, rename, or removal in any future patch release. Do + * not use in production code. + */ public final class A2ASendMessageExecutor { private static final Logger logger = LoggerFactory.getLogger(A2ASendMessageExecutor.class); diff --git a/a2a/src/main/java/com/google/adk/a2a/RemoteA2AAgent.java b/a2a/src/main/java/com/google/adk/a2a/RemoteA2AAgent.java index 3fd4fa552..f2313916d 100644 --- a/a2a/src/main/java/com/google/adk/a2a/RemoteA2AAgent.java +++ b/a2a/src/main/java/com/google/adk/a2a/RemoteA2AAgent.java @@ -46,6 +46,9 @@ *
  • A2A message conversion and error handling *
  • Session state management across requests * + * + * @apiNote **EXPERIMENTAL:** Subject to change, rename, or removal in any future patch release. Do + * not use in production code. */ public class RemoteA2AAgent extends BaseAgent { diff --git a/a2a/src/main/java/com/google/adk/a2a/converters/ConversationPreprocessor.java b/a2a/src/main/java/com/google/adk/a2a/converters/ConversationPreprocessor.java index 91b9237ac..1b7fd8429 100644 --- a/a2a/src/main/java/com/google/adk/a2a/converters/ConversationPreprocessor.java +++ b/a2a/src/main/java/com/google/adk/a2a/converters/ConversationPreprocessor.java @@ -20,6 +20,9 @@ * *

    This mirrors the Python A2A implementation where the in-flight user message is maintained * separately from the persisted transcript. + * + * @apiNote **EXPERIMENTAL:** Subject to change, rename, or removal in any future patch release. Do + * not use in production code. */ public final class ConversationPreprocessor { diff --git a/a2a/src/main/java/com/google/adk/a2a/converters/EventConverter.java b/a2a/src/main/java/com/google/adk/a2a/converters/EventConverter.java index 19d7d5ca9..bc811a91a 100644 --- a/a2a/src/main/java/com/google/adk/a2a/converters/EventConverter.java +++ b/a2a/src/main/java/com/google/adk/a2a/converters/EventConverter.java @@ -13,7 +13,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -/** Converter for ADK Events to A2A Messages. */ +/** + * Converter for ADK Events to A2A Messages. + * + * @apiNote **EXPERIMENTAL:** Subject to change, rename, or removal in any future patch release. Do + * not use in production code. + */ public final class EventConverter { private static final Logger logger = LoggerFactory.getLogger(EventConverter.class); diff --git a/a2a/src/main/java/com/google/adk/a2a/converters/PartConverter.java b/a2a/src/main/java/com/google/adk/a2a/converters/PartConverter.java index 38d0e7910..3caeff433 100644 --- a/a2a/src/main/java/com/google/adk/a2a/converters/PartConverter.java +++ b/a2a/src/main/java/com/google/adk/a2a/converters/PartConverter.java @@ -20,7 +20,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -/** Utility class for converting between Google GenAI Parts and A2A DataParts. */ +/** + * Utility class for converting between Google GenAI Parts and A2A DataParts. + * + * @apiNote **EXPERIMENTAL:** Subject to change, rename, or removal in any future patch release. Do + * not use in production code. + */ public final class PartConverter { private static final Logger logger = LoggerFactory.getLogger(PartConverter.class); private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); diff --git a/a2a/src/main/java/com/google/adk/a2a/converters/RequestConverter.java b/a2a/src/main/java/com/google/adk/a2a/converters/RequestConverter.java index 5936f64c2..810f1583c 100644 --- a/a2a/src/main/java/com/google/adk/a2a/converters/RequestConverter.java +++ b/a2a/src/main/java/com/google/adk/a2a/converters/RequestConverter.java @@ -18,6 +18,9 @@ /** * rfe Converter for A2A Messages to ADK Events. This is used on the A2A service side to convert * incoming A2A requests to ADK Events. + * + * @apiNote **EXPERIMENTAL:** Subject to change, rename, or removal in any future patch release. Do + * not use in production code. */ public final class RequestConverter { private static final Logger logger = LoggerFactory.getLogger(RequestConverter.class); diff --git a/a2a/src/main/java/com/google/adk/a2a/converters/ResponseConverter.java b/a2a/src/main/java/com/google/adk/a2a/converters/ResponseConverter.java index 516a61bc0..7e7031d37 100644 --- a/a2a/src/main/java/com/google/adk/a2a/converters/ResponseConverter.java +++ b/a2a/src/main/java/com/google/adk/a2a/converters/ResponseConverter.java @@ -16,7 +16,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -/** Utility for converting ADK events to A2A spec messages (and back). */ +/** + * Utility for converting ADK events to A2A spec messages (and back). + * + * @apiNote **EXPERIMENTAL:** Subject to change, rename, or removal in any future patch release. Do + * not use in production code. + */ public final class ResponseConverter { private static final Logger logger = LoggerFactory.getLogger(ResponseConverter.class); diff --git a/a2a/webservice/src/main/java/com/google/adk/webservice/A2ARemoteApplication.java b/a2a/webservice/src/main/java/com/google/adk/webservice/A2ARemoteApplication.java index c3e7edf5a..51d0a680c 100644 --- a/a2a/webservice/src/main/java/com/google/adk/webservice/A2ARemoteApplication.java +++ b/a2a/webservice/src/main/java/com/google/adk/webservice/A2ARemoteApplication.java @@ -4,7 +4,12 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Import; -/** Entry point for the standalone Spring Boot A2A service. */ +/** + * Entry point for the standalone Spring Boot A2A service. + * + * @apiNote **EXPERIMENTAL:** Subject to change, rename, or removal in any future patch release. Do + * not use in production code. + */ @SpringBootApplication @Import(A2ARemoteConfiguration.class) public class A2ARemoteApplication { diff --git a/a2a/webservice/src/main/java/com/google/adk/webservice/A2ARemoteConfiguration.java b/a2a/webservice/src/main/java/com/google/adk/webservice/A2ARemoteConfiguration.java index 3c911bad9..ae7d1f09c 100644 --- a/a2a/webservice/src/main/java/com/google/adk/webservice/A2ARemoteConfiguration.java +++ b/a2a/webservice/src/main/java/com/google/adk/webservice/A2ARemoteConfiguration.java @@ -23,6 +23,9 @@ * directly. *

  • Add optional remote-proxy wiring for cases where no local agent bean is available. * + * + * @apiNote **EXPERIMENTAL:** Subject to change, rename, or removal in any future patch release. Do + * not use in production code. */ @Configuration @ComponentScan(basePackages = "com.google.adk.webservice") diff --git a/a2a/webservice/src/main/java/com/google/adk/webservice/A2ARemoteController.java b/a2a/webservice/src/main/java/com/google/adk/webservice/A2ARemoteController.java index fbb7cf108..639e148a5 100644 --- a/a2a/webservice/src/main/java/com/google/adk/webservice/A2ARemoteController.java +++ b/a2a/webservice/src/main/java/com/google/adk/webservice/A2ARemoteController.java @@ -9,7 +9,12 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -/** REST controller exposing an A2A-compliant JSON-RPC endpoint backed by a local ADK runner. */ +/** + * REST controller exposing an A2A-compliant JSON-RPC endpoint backed by a local ADK runner. + * + * @apiNote **EXPERIMENTAL:** Subject to change, rename, or removal in any future patch release. Do + * not use in production code. + */ @RestController @RequestMapping("/a2a/remote") public class A2ARemoteController { diff --git a/a2a/webservice/src/main/java/com/google/adk/webservice/A2ARemoteService.java b/a2a/webservice/src/main/java/com/google/adk/webservice/A2ARemoteService.java index 6f4613bfe..474a2577b 100644 --- a/a2a/webservice/src/main/java/com/google/adk/webservice/A2ARemoteService.java +++ b/a2a/webservice/src/main/java/com/google/adk/webservice/A2ARemoteService.java @@ -13,7 +13,12 @@ import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; -/** Core service that bridges the A2A JSON-RPC sendMessage API to a local ADK runner. */ +/** + * Core service that bridges the A2A JSON-RPC sendMessage API to a local ADK runner. + * + * @apiNote **EXPERIMENTAL:** Subject to change, rename, or removal in any future patch release. Do + * not use in production code. + */ @Service public class A2ARemoteService {