fix: Yield event with error code when agent run raised A2AClientHTTPError

PiperOrigin-RevId: 840816236
This commit is contained in:
Google Team Member
2025-12-05 11:45:47 -08:00
committed by Copybara-Service
parent 9d2388a46f
commit b7ce5e17b6
+19 -1
View File
@@ -31,7 +31,7 @@ from a2a.client import ClientEvent as A2AClientEvent
from a2a.client.card_resolver import A2ACardResolver
from a2a.client.client import ClientConfig as A2AClientConfig
from a2a.client.client_factory import ClientFactory as A2AClientFactory
from a2a.client.errors import A2AClientError
from a2a.client.errors import A2AClientHTTPError
from a2a.types import AgentCard
from a2a.types import Message as A2AMessage
from a2a.types import Part as A2APart
@@ -558,6 +558,24 @@ class RemoteA2aAgent(BaseAgent):
yield event
except A2AClientHTTPError as e:
error_message = f"A2A request failed: {e}"
logger.error(error_message)
yield Event(
author=self.name,
error_message=error_message,
invocation_id=ctx.invocation_id,
branch=ctx.branch,
custom_metadata={
A2A_METADATA_PREFIX
+ "request": a2a_request.model_dump(
exclude_none=True, by_alias=True
),
A2A_METADATA_PREFIX + "error": error_message,
A2A_METADATA_PREFIX + "status_code": str(e.status_code),
},
)
except Exception as e:
error_message = f"A2A request failed: {e}"
logger.error(error_message)