diff --git a/src/google/adk/sessions/database_session_service.py b/src/google/adk/sessions/database_session_service.py index 2fdd673334..0d687b46c4 100644 --- a/src/google/adk/sessions/database_session_service.py +++ b/src/google/adk/sessions/database_session_service.py @@ -531,7 +531,7 @@ async def get_session( stmt = stmt.order_by(schema.StorageEvent.timestamp.desc()) - if config and config.num_recent_events: + if config and config.num_recent_events is not None: stmt = stmt.limit(config.num_recent_events) result = await sql_session.execute(stmt) diff --git a/tests/unittests/sessions/test_session_service.py b/tests/unittests/sessions/test_session_service.py index b86a65e8a8..30c054ab08 100644 --- a/tests/unittests/sessions/test_session_service.py +++ b/tests/unittests/sessions/test_session_service.py @@ -1058,6 +1058,13 @@ async def test_get_session_with_config(session_service): events = session.events assert len(events) == num_test_events + # Explicitly requesting zero recent events should return no event history. + config = GetSessionConfig(num_recent_events=0) + session = await session_service.get_session( + app_name=app_name, user_id=user_id, session_id=session.id, config=config + ) + assert not session.events + # Only expect the most recent 3 events. num_recent_events = 3 config = GetSessionConfig(num_recent_events=num_recent_events)