Skip to content

Commit 32e87f6

Browse files
hoonjicopybara-github
authored andcommitted
feat: Adds ADK EventActions to A2A response
Merge #3631 ### Link to Issue or Description of Change **1. Link to an existing issue (if applicable):** - Closes: #3630 **Solution:** Adds [Event.actions](https://github.com/google/adk-python/blob/a3aa07722a7de3e08807e86fd10f28938f0b267d/src/google/adk/events/event.py#L51) to A2A event metadata during ADK -> A2A event conversion (to allow A2A event consumers to access important info like state_delta, artifact delta, etc) ### Testing Plan `pytest ./tests/unittests` passes COPYBARA_INTEGRATE_REVIEW=#3631 from hoonji:main 31d3a49 PiperOrigin-RevId: 842274939
1 parent 56775af commit 32e87f6

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

src/google/adk/a2a/converters/event_converter.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ def _get_context_metadata(
140140
("custom_metadata", event.custom_metadata),
141141
("usage_metadata", event.usage_metadata),
142142
("error_code", event.error_code),
143+
("actions", event.actions),
143144
]
144145

145146
for field_name, field_value in optional_fields:

tests/unittests/a2a/converters/test_event_converter.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,7 @@ def setup_method(self):
6666
self.mock_event.error_message = None
6767
self.mock_event.content = None
6868
self.mock_event.long_running_tool_ids = None
69-
self.mock_event.actions = Mock(spec=EventActions)
70-
self.mock_event.actions.artifact_delta = None
69+
self.mock_event.actions = None
7170

7271
def test_get_adk_event_metadata_key_success(self):
7372
"""Test successful metadata key generation."""
@@ -144,6 +143,8 @@ def test_get_context_metadata_with_optional_fields(self):
144143
mock_metadata = Mock()
145144
mock_metadata.model_dump.return_value = {"test": "value"}
146145
self.mock_event.grounding_metadata = mock_metadata
146+
self.mock_event.actions = Mock()
147+
self.mock_event.actions.model_dump.return_value = {"test_actions": "value"}
147148

148149
result = _get_context_metadata(
149150
self.mock_event, self.mock_invocation_context
@@ -152,7 +153,11 @@ def test_get_context_metadata_with_optional_fields(self):
152153
assert result is not None
153154
assert f"{ADK_METADATA_KEY_PREFIX}branch" in result
154155
assert f"{ADK_METADATA_KEY_PREFIX}grounding_metadata" in result
156+
assert f"{ADK_METADATA_KEY_PREFIX}actions" in result
155157
assert result[f"{ADK_METADATA_KEY_PREFIX}branch"] == "test-branch"
158+
assert result[f"{ADK_METADATA_KEY_PREFIX}actions"] == {
159+
"test_actions": "value"
160+
}
156161

157162
# Check if error_code is in the result - it should be there since we set it
158163
if f"{ADK_METADATA_KEY_PREFIX}error_code" in result:

0 commit comments

Comments
 (0)