diff --git a/src/google/adk/memory/vertex_ai_memory_bank_service.py b/src/google/adk/memory/vertex_ai_memory_bank_service.py index b5b70ab1c..f2ccf8356 100644 --- a/src/google/adk/memory/vertex_ai_memory_bank_service.py +++ b/src/google/adk/memory/vertex_ai_memory_bank_service.py @@ -64,7 +64,9 @@ async def add_session_to_memory(self, session: Session): events = [] for event in session.events: - if event.content and event.content.parts: + if should_filter_event(event.content): + continue + if event.content: events.append({ 'content': event.content.model_dump(exclude_none=True, mode='json') }) @@ -145,3 +147,16 @@ def _convert_api_response(api_response): if hasattr(api_response, 'body'): return json.loads(api_response.body) return api_response + + +def should_filter_event(content: genai.types.Content) -> bool: + if not content or not content.parts: + return True + for part in content.parts: + if ( + not part.function_call + and not part.function_response + and not part.thought_signature + ): + return False + return True diff --git a/tests/unittests/memory/test_vertex_ai_memory_bank_service.py b/tests/unittests/memory/test_vertex_ai_memory_bank_service.py index 27e2bbdd5..e096cffbd 100644 --- a/tests/unittests/memory/test_vertex_ai_memory_bank_service.py +++ b/tests/unittests/memory/test_vertex_ai_memory_bank_service.py @@ -45,6 +45,20 @@ author='user', timestamp=12345, ), + # Function call event, should be ignored + Event( + id='666', + invocation_id='456', + author='agent', + timestamp=23456, + content=types.Content( + parts=[ + types.Part( + function_call=types.FunctionCall(name='test_function') + ) + ] + ), + ), ], )