diff --git a/src/agents/memory/openai_conversations_session.py b/src/agents/memory/openai_conversations_session.py index 186c004e5d..659cf14394 100644 --- a/src/agents/memory/openai_conversations_session.py +++ b/src/agents/memory/openai_conversations_session.py @@ -81,9 +81,11 @@ async def _clear_session_id(self) -> None: self._session_id = None async def get_items(self, limit: int | None = None) -> list[TResponseInputItem]: - session_id = await self._get_session_id() - session_limit = resolve_session_limit(limit, self.session_settings) + if session_limit == 0: + return [] + + session_id = await self._get_session_id() all_items = [] if session_limit is None: diff --git a/tests/memory/test_openai_conversations_session.py b/tests/memory/test_openai_conversations_session.py index 1f0160bc01..59fa97a321 100644 --- a/tests/memory/test_openai_conversations_session.py +++ b/tests/memory/test_openai_conversations_session.py @@ -13,6 +13,7 @@ OpenAIConversationsSession, start_openai_conversations_session, ) +from agents.memory.session_settings import SessionSettings from tests.fake_model import FakeModel from tests.test_responses import get_text_message @@ -196,6 +197,29 @@ async def test_clear_session_id(self, mock_openai_client): class TestOpenAIConversationsSessionBasicOperations: """Test basic CRUD operations with simple mocking.""" + @pytest.mark.asyncio + @pytest.mark.parametrize( + ("limit", "session_settings"), + [ + pytest.param(0, None, id="explicit-limit"), + pytest.param(None, SessionSettings(limit=0), id="session-settings"), + ], + ) + async def test_get_items_zero_limit_skips_remote_conversation( + self, + mock_openai_client, + limit: int | None, + session_settings: SessionSettings | None, + ): + session = OpenAIConversationsSession( + openai_client=mock_openai_client, + session_settings=session_settings, + ) + + assert await session.get_items(limit=limit) == [] + mock_openai_client.conversations.create.assert_not_called() + mock_openai_client.conversations.items.list.assert_not_called() + @pytest.mark.asyncio async def test_add_items_simple(self, mock_openai_client): """Test adding items to the conversation."""