From 33fc4f51e3bec3ef9aa3a87f6ade280f0335b3b2 Mon Sep 17 00:00:00 2001 From: Kazuhiro Sera Date: Fri, 3 Oct 2025 12:10:58 -0700 Subject: [PATCH] fix: invalid model setting when passing prompt to Agent --- src/agents/models/openai_responses.py | 2 +- tests/test_openai_responses.py | 33 +++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/agents/models/openai_responses.py b/src/agents/models/openai_responses.py index de8cd93ff..866d8cd93 100644 --- a/src/agents/models/openai_responses.py +++ b/src/agents/models/openai_responses.py @@ -306,7 +306,7 @@ async def _fetch_response( previous_response_id=self._non_null_or_not_given(previous_response_id), conversation=self._non_null_or_not_given(conversation_id), instructions=self._non_null_or_not_given(system_instructions), - model=self.model, + model=self.model if prompt is None else NOT_GIVEN, input=list_input, include=include, tools=converted_tools_payload, diff --git a/tests/test_openai_responses.py b/tests/test_openai_responses.py index 0823d3cac..56b8c3748 100644 --- a/tests/test_openai_responses.py +++ b/tests/test_openai_responses.py @@ -3,6 +3,7 @@ from typing import Any import pytest +from openai import NOT_GIVEN from openai.types.responses import ResponseCompletedEvent from agents import ModelSettings, ModelTracing, __version__ @@ -63,3 +64,35 @@ def __init__(self): assert "extra_headers" in called_kwargs assert called_kwargs["extra_headers"]["User-Agent"] == expected_ua + + +@pytest.mark.allow_call_model_methods +@pytest.mark.asyncio +async def test_prompt_id_omits_model_parameter(): + called_kwargs: dict[str, Any] = {} + + class DummyResponses: + async def create(self, **kwargs): + nonlocal called_kwargs + called_kwargs = kwargs + return get_response_obj([]) + + class DummyResponsesClient: + def __init__(self): + self.responses = DummyResponses() + + model = OpenAIResponsesModel(model="gpt-4", openai_client=DummyResponsesClient()) # type: ignore[arg-type] + + await model.get_response( + system_instructions=None, + input="hi", + model_settings=ModelSettings(), + tools=[], + output_schema=None, + handoffs=[], + tracing=ModelTracing.DISABLED, + prompt={"id": "pmpt_123"}, + ) + + assert called_kwargs["prompt"] == {"id": "pmpt_123"} + assert called_kwargs["model"] is NOT_GIVEN