diff --git a/src/google/adk/a2a/utils/agent_card_builder.py b/src/google/adk/a2a/utils/agent_card_builder.py index 047f786cc..9383ba83f 100644 --- a/src/google/adk/a2a/utils/agent_card_builder.py +++ b/src/google/adk/a2a/utils/agent_card_builder.py @@ -59,7 +59,7 @@ def __init__( agent: BaseAgent, rpc_url: Optional[str] = None, capabilities: Optional[AgentCapabilities] = None, - doc_url: Optional[str] = None, + documentation_url: Optional[str] = None, provider: Optional[AgentProvider] = None, agent_version: Optional[str] = None, security_schemes: Optional[Dict[str, SecurityScheme]] = None, @@ -70,7 +70,7 @@ def __init__( self._agent = agent self._rpc_url = rpc_url or 'http://localhost:80/a2a' self._capabilities = capabilities or AgentCapabilities() - self._doc_url = doc_url + self._documentation_url = documentation_url or "" self._provider = provider self._security_schemes = security_schemes self._agent_version = agent_version or '0.0.1' @@ -85,10 +85,10 @@ async def build(self) -> AgentCard: return AgentCard( name=self._agent.name, description=self._agent.description or 'An ADK Agent', - doc_url=self._doc_url, url=f"{self._rpc_url.rstrip('/')}", version=self._agent_version, capabilities=self._capabilities, + documentation_url=self._documentation_url, skills=all_skills, default_input_modes=['text/plain'], default_output_modes=['text/plain'], diff --git a/tests/unittests/a2a/utils/test_agent_card_builder.py b/tests/unittests/a2a/utils/test_agent_card_builder.py index 964c71889..f8d918f99 100644 --- a/tests/unittests/a2a/utils/test_agent_card_builder.py +++ b/tests/unittests/a2a/utils/test_agent_card_builder.py @@ -107,7 +107,7 @@ 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) - assert builder._doc_url is None + assert builder._documentation_url == "" assert builder._provider is None assert builder._security_schemes is None assert builder._agent_version == "0.0.1" @@ -126,7 +126,7 @@ def test_init_with_custom_parameters(self): agent=mock_agent, rpc_url="https://example.com/a2a", capabilities=mock_capabilities, - doc_url="https://docs.example.com", + documentation_url="https://docs.example.com", provider=mock_provider, agent_version="1.2.3", security_schemes=mock_security_schemes, @@ -136,7 +136,7 @@ def test_init_with_custom_parameters(self): assert builder._agent == mock_agent assert builder._rpc_url == "https://example.com/a2a" assert builder._capabilities == mock_capabilities - assert builder._doc_url == "https://docs.example.com" + assert builder._documentation_url == "https://docs.example.com" assert builder._provider == mock_provider assert builder._security_schemes == mock_security_schemes assert builder._agent_version == "1.2.3" @@ -181,7 +181,7 @@ async def test_build_success( assert isinstance(result, AgentCard) assert result.name == "test_agent" assert result.description == "Test agent description" - assert result.documentation_url is None + assert result.documentation_url == "" assert result.url == "http://localhost:80/a2a" assert result.version == "0.0.1" assert result.skills == [mock_primary_skill, mock_sub_skill] @@ -213,8 +213,8 @@ async def test_build_with_custom_parameters( builder = AgentCardBuilder( agent=mock_agent, rpc_url="https://example.com/a2a/", - doc_url="https://docs.example.com", provider=mock_provider, + documentation_url="https://docs.example.com", agent_version="2.0.0", security_schemes=mock_security_schemes, ) @@ -227,10 +227,11 @@ async def test_build_with_custom_parameters( assert result.description == "An ADK Agent" # Default description # The source code uses doc_url parameter but AgentCard expects documentation_url # Since the source code doesn't map doc_url to documentation_url, it will be None - assert result.documentation_url is None + assert result.documentation_url == "https://docs.example.com" assert ( result.url == "https://example.com/a2a" ) # Should strip trailing slash + assert result.documentation_url == "https://docs.example.com" assert result.version == "2.0.0" assert result.provider == mock_provider assert result.security_schemes == mock_security_schemes