diff --git a/python/packages/main/agent_framework/openai/_responses_client.py b/python/packages/main/agent_framework/openai/_responses_client.py index 6c2ce32cea..18069da073 100644 --- a/python/packages/main/agent_framework/openai/_responses_client.py +++ b/python/packages/main/agent_framework/openai/_responses_client.py @@ -325,11 +325,10 @@ class OpenAIBaseResponsesClient(OpenAIBase, BaseChatClient): options_dict["tools"] = self._tools_to_response_tools(chat_options.tools) # other settings - if "store" not in options_dict: - options_dict["store"] = False - if "conversation_id" in options_dict: - options_dict["previous_response_id"] = options_dict["conversation_id"] - options_dict.pop("conversation_id") + options_dict["store"] = chat_options.store is True + + if chat_options.conversation_id: + options_dict["previous_response_id"] = chat_options.conversation_id if "model" not in options_dict: options_dict["model"] = self.ai_model_id return options_dict diff --git a/python/packages/main/tests/openai/test_openai_responses_client.py b/python/packages/main/tests/openai/test_openai_responses_client.py index 25bba696f4..61c0117eef 100644 --- a/python/packages/main/tests/openai/test_openai_responses_client.py +++ b/python/packages/main/tests/openai/test_openai_responses_client.py @@ -2044,3 +2044,29 @@ def test_create_response_content_image_generation_fallback(): assert isinstance(content, DataContent) assert content.media_type == "image/png" assert f"data:image/png;base64,{unrecognized_base64}" == content.uri + + +def test_prepare_options_store_parameter_handling() -> None: + client = OpenAIResponsesClient(ai_model_id="test-model", api_key="test-key") + messages = [ChatMessage(role="user", text="Test message")] + + test_conversation_id = "test-conversation-123" + chat_options = ChatOptions(store=True, conversation_id=test_conversation_id) + options = client._prepare_options(messages, chat_options) # type: ignore + assert options["store"] is True + assert options["previous_response_id"] == test_conversation_id + + chat_options = ChatOptions(store=False, conversation_id="") + options = client._prepare_options(messages, chat_options) # type: ignore + assert options["store"] is False + assert "previous_response_id" not in options + + chat_options = ChatOptions(store=None, conversation_id=None) + options = client._prepare_options(messages, chat_options) # type: ignore + assert options["store"] is False + assert "previous_response_id" not in options + + chat_options = ChatOptions() + options = client._prepare_options(messages, chat_options) # type: ignore + assert options["store"] is False + assert "previous_response_id" not in options