in databao/executors/lighthouse/graph.py [0:0]
def _apply_system_prompt_caching(config: LLMConfig, messages: list[BaseMessage]) -> list[BaseMessage]:
"""Apply system prompt caching for Anthropic models."""
if not (config.cache_system_prompt and ExecuteSubmit._is_anthropic_model(config)):
return messages
# Assume only the first message can be a system prompt.
assert all(m.type != "system" for m in messages[1:])
if messages[0].type == "system":
messages = [ExecuteSubmit._set_message_cache_breakpoint(config, messages[0]), *messages[1:]]
return messages