#28196 Anthropic reasoning_effort silently dropped when passed as Reasoning(effort, summary) dict (regression in v1.85.0)
## Bug
When calling `litellm.aresponses(reasoning=Reasoning(effort="low", summary="concise"), model="anthropic/...")`, the `thinking` parameter is silently dropped before reaching Anthropic. The model produces 0 reasoning_tokens and no `thinking_blocks`, even though `reasoning_effort` was requested.
Introduced by [#25359](https://github.com/BerriAI/litellm/pull/25359) — that PR added an `if "summary" in reasoning_param` branch to the Responses→Chat parser, but the downstream Anthropic transformation still guards on `isinstance(value, str)`.
## Affected versions
`v1.85.0`+ (verified). `v1.83.0` works correctly (the dict-keeping branch didn't exist yet).
## Root cause
**Step 1** — Responses→Chat parser keeps the full dict when `summary` is set ([`litellm/responses/litellm_completion_transformation/transformation.py:184-200`](https://github.com/BerriAI/litellm/blob/v1.85.0/litellm/responses/litellm_completion_transformation/transformation.py#L184-L200)):
```python reasoning_param = responses_api_request.get("reasoning") if reasoning_param: if isinstance(reasoning_param, dict): if "summary" in reasoning_param: reasoning_effort = reasoning_param # ←…