From e79cf66cb49a73f5a6e0bfd9e1c1b8ce331240c8 Mon Sep 17 00:00:00 2001 From: ump45nose <52391318+ump45nose@users.noreply.github.com> Date: Wed, 5 Aug 2026 23:39:21 +0800 Subject: [PATCH] fix: skip remote history for zero session limit --- .../memory/openai_conversations_session.py | 6 +++-- .../test_openai_conversations_session.py | 24 +++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) 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."""