diff --git a/litellm/llms/anthropic/common_utils.py b/litellm/llms/anthropic/common_utils.py index 0803b76ea52..f341ac0cbfc 100644 --- a/litellm/llms/anthropic/common_utils.py +++ b/litellm/llms/anthropic/common_utils.py @@ -425,14 +425,21 @@ class AnthropicModelInfo(BaseLLMModelInfo): edits = context_management.get("edits", []) elif isinstance(context_management, list): edits = context_management - for edit in edits: - edit_type = edit.get("type", "") - if edit_type in ("compact_20260112", "compaction"): - betas.append(ANTHROPIC_BETA_HEADER_VALUES.COMPACT_2026_01_12.value) - else: - betas.append( - ANTHROPIC_BETA_HEADER_VALUES.CONTEXT_MANAGEMENT_2025_06_27.value - ) + has_compact = any( + edit.get("type", "") in ("compact_20260112", "compaction") + for edit in edits + ) + has_other_edits = any( + edit.get("type", "") + and edit.get("type", "") not in ("compact_20260112", "compaction") + for edit in edits + ) + if has_compact: + betas.append(ANTHROPIC_BETA_HEADER_VALUES.COMPACT_2026_01_12.value) + elif has_other_edits: + betas.append( + ANTHROPIC_BETA_HEADER_VALUES.CONTEXT_MANAGEMENT_2025_06_27.value + ) return list(set(betas)) diff --git a/tests/test_litellm/llms/anthropic/test_anthropic_common_utils.py b/tests/test_litellm/llms/anthropic/test_anthropic_common_utils.py index d9c1f13afa0..d3883b08a06 100644 --- a/tests/test_litellm/llms/anthropic/test_anthropic_common_utils.py +++ b/tests/test_litellm/llms/anthropic/test_anthropic_common_utils.py @@ -1340,3 +1340,21 @@ class TestGetAnthropicBetaListContextManagement: ) assert "compact-2026-01-12" not in betas assert "context-management-2025-06-27" not in betas + + def test_mixed_edits_uses_compact_beta(self): + from litellm.llms.anthropic.common_utils import AnthropicModelInfo + + info = AnthropicModelInfo() + betas = info.get_anthropic_beta_list( + model="claude-sonnet-4-6", + optional_params={ + "context_management": { + "edits": [ + {"type": "summarize"}, + {"type": "compact_20260112"}, + ], + } + }, + ) + assert "compact-2026-01-12" in betas + assert "context-management-2025-06-27" not in betas