diff --git a/lib/crewai/src/crewai/llms/providers/anthropic/completion.py b/lib/crewai/src/crewai/llms/providers/anthropic/completion.py index 077c31589b..ec99d400c6 100644 --- a/lib/crewai/src/crewai/llms/providers/anthropic/completion.py +++ b/lib/crewai/src/crewai/llms/providers/anthropic/completion.py @@ -469,9 +469,15 @@ def _prepare_completion_params( "stream": self.stream, } - # Add system message if present + # Add system message if present, with prompt caching if system_message: - params["system"] = system_message + params["system"] = [ + { + "type": "text", + "text": system_message, + "cache_control": {"type": "ephemeral"}, + } + ] # Add optional parameters if set if self.temperature is not None: @@ -497,6 +503,9 @@ def _prepare_completion_params( if self.tool_search is not None and len(regular_tools) >= 2: converted_tools = self._apply_tool_search(converted_tools) + if converted_tools: + converted_tools[-1]["cache_control"] = {"type": "ephemeral"} + params["tools"] = converted_tools if available_functions and len(regular_tools) == 1: