Root cause (src/agents/extensions/models/litellm_model.py, _fetch_response ~L575): parallel_tool_calls is computed as True only when model_settings.parallel_tool_calls is truthy and `tools` is non-empty, but returns False whenever the setting is explicitly False, regardless of tool presence. It is then passed to litellm.acompletion together with tools=None, so Azure OpenAI rejects the request with HTTP 400. The current check also looks only at `tools` and ignores handoffs, so with handoffs but no function tools an explicit True is dropped. Proposed plan: 1. In LitellmModel._fetch_response, move the parallel_tool_calls computation to after converted_tools is built (function tools plus handoff tools). Set it to model_settings.parallel_tool_calls when converted_tools is non-empty, and to None otherwise. Effects: - No tools and no handoffs: None, so LiteLLM omits the field. - Tools or handoffs present: an explicit True or False is forwarded unchanged. - Setting left unset: None, as today. The streaming Response construction (`parallel_tool_calls=parallel_tool_calls or False`) stays as is. 2. Add regression tests in a new test module under tests/models/ (e.g. tests/models/test_litellm_parallel_tool_calls.py) that monkeypatch litellm.acompletion to capture kwargs, following the pattern in the existing LiteLLM tests: a. parallel_tool_calls=False with tools=[] and handoffs=[] passes parallel_tool_calls=None (and tools=None). b. parallel_tool_calls=True with no tools passes None. c. False with a function tool passes False; True with a function tool passes True. d. False or True with only a handoff (no function tools) is forwarded unchanged. e. Unset (None) passes None. f. The stream=True path behaves the same. 3. Validate with the repository-model-tests check (AC1). The baseline currently passes 726 tests. Scope: only src/agents/extensions/models/litellm_model.py plus the new test file. No public API changes. One behavior change to note: an explicit True with handoffs but no function tools is now forwarded (it was dropped before), which matches the issue's stated expectation.