{% if usage.prompt_cache is defined %} {% from '_cache_kpis.html' import cache_kpis %} {% set cache = usage.prompt_cache %}

Provider prompt cache {% if cache.attention %}Needs attention{% endif %}

{{ cache_kpis(cache.read_percent, cache.hit, cache.hit + cache.write + cache.no_reuse, cache.cached_tokens, cache.cache_write_tokens) }}

{{ cache.hit }} call{{ '' if cache.hit == 1 else 's' }} with reuse · {{ cache.write }} cache write{{ '' if cache.write == 1 else 's' }} without reuse · {{ cache.no_reuse }} call{{ '' if cache.no_reuse == 1 else 's' }} without reuse.

{% if cache.disabled %}

Caching was disabled on {{ cache.disabled }} call{{ '' if cache.disabled == 1 else 's' }}. Enable provider prompt caching on that request path.

{% endif %} {% if cache.configuration_warning %}

Cache options were dropped or unsupported on {{ cache.configuration_warning }} call{{ '' if cache.configuration_warning == 1 else 's' }}. Check provider SDK compatibility.

{% endif %} {% if cache.unknown %}

{{ cache.unknown }} {{ 'call has' if cache.unknown == 1 else 'calls have' }} unknown cache usage. Capture the provider's cache read/write counters to diagnose them.

{% endif %} {% for warning in cache.warnings %}

{{ warning.model }}: {{ warning.message }}{% if warning.count and warning.count > 1 %} ({{ warning.count }} calls){% endif %}

{% endfor %} {% if cache.models|length > 1 %}
{% for row in cache.models %}{% endfor %}
Provider / modelReadsWrites onlyNo reuseDisabledUnknown
{{ row.label }}{{ row.hit }}{{ row.write }}{{ row.no_reuse }}{{ row.disabled }}{{ row.unknown }}
{% endif %}

First requests, short prompts and expired entries may have no reuse. Warnings identify configuration problems or observed drops; they do not prove the provider cache is broken. Prompt caching reduces repeated input processing; generated output is still billed.

{% endif %}