From 9dc5e6c72c6439bb1ad19fb6454d1a14d6aedeb4 Mon Sep 17 00:00:00 2001 From: aiedwardyi <41576951+aiedwardyi@users.noreply.github.com> Date: Mon, 24 Aug 2026 01:14:07 +0900 Subject: [PATCH] fix: deduplicate Responses follow-up params --- litellm/integrations/websearch_interception/handler.py | 1 + .../websearch_interception/test_websearch_responses.py | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/litellm/integrations/websearch_interception/handler.py b/litellm/integrations/websearch_interception/handler.py index 13a16947fb4..cc0178ae400 100644 --- a/litellm/integrations/websearch_interception/handler.py +++ b/litellm/integrations/websearch_interception/handler.py @@ -1109,6 +1109,7 @@ class WebSearchInterceptionLogger(CustomLogger): k: v for k, v in kwargs.items() if not k.startswith("_websearch_interception") + and k not in optional_params_clean and k not in { "_agentic_loop_api_surface", diff --git a/tests/test_litellm/integrations/websearch_interception/test_websearch_responses.py b/tests/test_litellm/integrations/websearch_interception/test_websearch_responses.py index 00b7299cc31..37e2f61de0a 100644 --- a/tests/test_litellm/integrations/websearch_interception/test_websearch_responses.py +++ b/tests/test_litellm/integrations/websearch_interception/test_websearch_responses.py @@ -218,12 +218,16 @@ async def test_build_responses_plan_produces_responses_input(): optional_params={ "tools": [{"type": "function", "name": "litellm_web_search"}], "tool_choice": {"type": "function", "name": "litellm_web_search"}, + "prompt_cache_key": "cache-key", + "prompt_cache_retention": "24h", }, logging_obj=MagicMock(), stream=False, kwargs={ "custom_llm_provider": "openai", "_agentic_loop_api_surface": RESPONSES_AGENTIC_SURFACE, + "prompt_cache_key": "cache-key", + "prompt_cache_retention": "24h", }, ) @@ -249,6 +253,10 @@ async def test_build_responses_plan_produces_responses_input(): assert patch_obj.tools == [{"type": "function", "name": "litellm_web_search"}] assert "tool_choice" not in patch_obj.optional_params assert "_agentic_loop_api_surface" not in patch_obj.kwargs + assert patch_obj.optional_params["prompt_cache_key"] == "cache-key" + assert patch_obj.optional_params["prompt_cache_retention"] == "24h" + assert "prompt_cache_key" not in patch_obj.kwargs + assert "prompt_cache_retention" not in patch_obj.kwargs assert patch_obj.model == "openai/gpt-4o"