Repository: openai/openai-agents-python

Issue:
Bug | Reasoning on OpenAI's models doesn't work with `store=False`

### Describe the bug
When using Reasoning with OpenAI's models, and running with `store=False`, running models with reasoning doesn't work, due to not including the `reasoning.encrypted_content` in the responses API (https://platform.openai.com/docs/api-reference/responses/create#responses-create-include)

When you try to use it, you get this error:
```
Error getting response: Error code: 404 - {'error': {'message': "Item with id 'rs_68582a79cb90819a9167d188b812af9c0a03470b8e30fdc6' not found. Items are not persisted when `store` is set to false. Try again with `store` set to true, or remove this item from your input.", 'type': 'invalid_request_error', 'param': 'input', 'code': None}}. (request_id: req_b7bdc79b7db5caf9bea5f55ac43b02de)
```

There is no way to override this behavior, it is hard-coded in the responses wrapper used by the SDK. 

### Debug information
- Agents SDK version: (e.g. `v0.0.18`)

### Repro steps

Create an Agent that uses reasoning, with the following model settings:
```
agent = Agent(
    name="example_agent",
    tools=[some_tools...],
    model="o3",
    model_settings=ModelSettings(
        store=False,
        reasoning=Reasoning(effort="low", summary="detailed")
    ),
    instructions="""some prompt"""
)
```


### Expected behavior
Expecting the `reasoning.encrypted_content` to be passed to the API when the `store=False` parameter is set, and the SDK to send the encrypted reasoning message on following steps to be able to continue the conversation with the reasoning content.



Discussion:

Patch:
diff --git a/src/agents/model_settings.py b/src/agents/model_settings.py
index 881390279..f844eb87c 100644
--- a/src/agents/model_settings.py
+++ b/src/agents/model_settings.py
@@ -5,6 +5,7 @@
 from typing import Any, Literal
 
 from openai._types import Body, Headers, Query
+from openai.types.responses import ResponseIncludable
 from openai.types.shared import Reasoning
 from pydantic import BaseModel
 
@@ -61,6 +62,10 @@ class ModelSettings:
     """Whether to include usage chunk.
     Defaults to True if not provided."""
 
+    response_include: list[ResponseIncludable] | None = None
+    """Additional output data to include in the model response.
+    [include parameter](https://platform.openai.com/docs/api-reference/responses/create#responses-create-include)"""
+
     extra_query: Query | None = None
     """Additional query fields to provide with the request.
     Defaults to None if not provided."""
diff --git a/src/agents/models/openai_responses.py b/src/agents/models/openai_responses.py
index 961f690b0..637adaccd 100644
--- a/src/agents/models/openai_responses.py
+++ b/src/agents/models/openai_responses.py
@@ -240,6 +240,10 @@ async def _fetch_response(
         converted_tools = Converter.convert_tools(tools, handoffs)
         response_format = Converter.get_response_format(output_schema)
 
+        include: list[ResponseIncludable] = converted_tools.includes
+        if model_settings.response_include is not None:
+            include = list({*include, *model_settings.response_include})
+
         if _debug.DONT_LOG_MODEL_DATA:
             logger.debug("Calling LLM")
         else:
@@ -258,7 +262,7 @@ async def _fetch_response(
             instructions=self._non_null_or_not_given(system_instructions),
             model=self.model,
             input=list_input,
-            include=converted_tools.includes,
+            include=include,
             tools=converted_tools.tools,
             prompt=self._non_null_or_not_given(prompt),
             temperature=self._non_null_or_not_given(model_settings.temperature),


Test patch:
diff --git a/tests/model_settings/test_serialization.py b/tests/model_settings/test_serialization.py
index ad4db4019..2bbc7ce2c 100644
--- a/tests/model_settings/test_serialization.py
+++ b/tests/model_settings/test_serialization.py
@@ -44,6 +44,7 @@ def test_all_fields_serialization() -> None:
         metadata={"foo": "bar"},
         store=False,
         include_usage=False,
+        response_include=["reasoning.encrypted_content"],
         extra_query={"foo": "bar"},
         extra_body={"foo": "bar"},
         extra_headers={"foo": "bar"},