From dfed71a5d685d647991cd4abec043641e3a35a5d Mon Sep 17 00:00:00 2001 From: chelsealong Date: Mon, 10 Aug 2026 19:47:14 +0000 Subject: [PATCH] fix(a2a): default AgentCardBuilder capabilities to streaming=True to_a2a() always mounts a DefaultRequestHandler that implements message/stream, but AgentCardBuilder defaulted to AgentCapabilities() (streaming=False) whenever a caller didn't pass capabilities explicitly. Peers reading the served card were told streaming was unavailable and fell back to unary calls even though the server supported it. Fixes #6672 --- src/google/adk/a2a/utils/agent_card_builder.py | 2 +- tests/unittests/a2a/utils/test_agent_card_builder.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/google/adk/a2a/utils/agent_card_builder.py b/src/google/adk/a2a/utils/agent_card_builder.py index 4c00b22a457..8d5131c7438 100644 --- a/src/google/adk/a2a/utils/agent_card_builder.py +++ b/src/google/adk/a2a/utils/agent_card_builder.py @@ -69,7 +69,7 @@ def __init__( self._agent = agent self._rpc_url = rpc_url or 'http://localhost:80/a2a' - self._capabilities = capabilities or AgentCapabilities() + self._capabilities = capabilities or AgentCapabilities(streaming=True) self._doc_url = doc_url self._provider = provider self._security_schemes = security_schemes diff --git a/tests/unittests/a2a/utils/test_agent_card_builder.py b/tests/unittests/a2a/utils/test_agent_card_builder.py index 76c107d3f15..aa4f436dc4b 100644 --- a/tests/unittests/a2a/utils/test_agent_card_builder.py +++ b/tests/unittests/a2a/utils/test_agent_card_builder.py @@ -65,6 +65,10 @@ def test_init_with_valid_agent(self): assert builder._agent == mock_agent assert builder._rpc_url == "http://localhost:80/a2a" assert isinstance(builder._capabilities, AgentCapabilities) + # The card is served alongside a DefaultRequestHandler that always + # implements message/stream, so the default capabilities must advertise + # streaming support rather than leaving peers to assume it is missing. + assert builder._capabilities.streaming is True assert builder._doc_url is None assert builder._provider is None assert builder._security_schemes is None