diff --git a/src/agents/run.py b/src/agents/run.py index 047d454d35..4f558ed99b 100644 --- a/src/agents/run.py +++ b/src/agents/run.py @@ -797,12 +797,12 @@ def _with_reasoning_item_id_policy(result: RunResult) -> RunResult: max_turns=max_turns, ) result._current_turn = current_turn - result._model_input_items = list(generated_items) + result._model_input_items = generated_items[:] # Keep normalized replay aligned with the model-facing # continuation whenever session history preserved extra items. - result._replay_from_model_input_items = list( - generated_items - ) != list(session_items) + result._replay_from_model_input_items = ( + generated_items != session_items + ) if run_state is not None: result._trace_state = run_state._trace_state if session_persistence_enabled: @@ -936,10 +936,8 @@ def _with_reasoning_item_id_policy(result: RunResult) -> RunResult: max_turns=max_turns, ) result._current_turn = max_turns - result._model_input_items = list(generated_items) - result._replay_from_model_input_items = list(generated_items) != list( - session_items - ) + result._model_input_items = generated_items[:] + result._replay_from_model_input_items = generated_items != session_items if run_state is not None: result._trace_state = run_state._trace_state if session_persistence_enabled and include_in_history: @@ -1207,10 +1205,8 @@ def _with_reasoning_item_id_policy(result: RunResult) -> RunResult: max_turns=max_turns, ) result._current_turn = current_turn - result._model_input_items = list(generated_items) - result._replay_from_model_input_items = list(generated_items) != list( - session_items - ) + result._model_input_items = generated_items[:] + result._replay_from_model_input_items = generated_items != session_items if run_state is not None: result._current_turn_persisted_item_count = ( run_state._current_turn_persisted_item_count diff --git a/src/agents/run_state.py b/src/agents/run_state.py index dcda9e073c..e03b6c67ab 100644 --- a/src/agents/run_state.py +++ b/src/agents/run_state.py @@ -135,7 +135,7 @@ _MISSING_CONTEXT_SENTINEL = object() -@dataclass +@dataclass(slots=True) class RunState(Generic[TContext, TAgent]): """Serializable snapshot of an agent run, including context, usage, and interruptions.