Skip to content

Add cache keep-alive to prevent expensive prompt cache re-creation on idle sessions#75

Open
tcdent wants to merge 1 commit intomainfrom
claude/anthropic-cache-keepalive-D6lWr
Open

Add cache keep-alive to prevent expensive prompt cache re-creation on idle sessions#75
tcdent wants to merge 1 commit intomainfrom
claude/anthropic-cache-keepalive-D6lWr

Conversation

@tcdent
Copy link
Copy Markdown
Owner

@tcdent tcdent commented Apr 1, 2026

Anthropic's prompt cache has a 5-minute TTL that expires when a session is idle,
forcing a full cache write (1.25x input cost) on the next request. This adds a
configurable keep-alive mechanism that sends minimal API requests to refresh the
cache TTL before it expires, keeping cached tokens at the 0.1x read rate.

Key design decisions:

  • Keep-alive bypasses the Agent streaming state machine entirely (own method)
  • Sends max_tokens=1, no tools, no thinking to minimize cost
  • Disposable user message is NOT added to conversation history
  • Only fires when agent is idle and enough time has elapsed
  • Disabled by default (cache_keepalive_secs = 0)
  • 30-second tick in event loop checks if keepalive is needed

https://claude.ai/code/session_01EvJrw9tyFxmUJrDmWteZcV

… idle sessions

Anthropic's prompt cache has a 5-minute TTL that expires when a session is idle,
forcing a full cache write (1.25x input cost) on the next request. This adds a
configurable keep-alive mechanism that sends minimal API requests to refresh the
cache TTL before it expires, keeping cached tokens at the 0.1x read rate.

Key design decisions:
- Keep-alive bypasses the Agent streaming state machine entirely (own method)
- Sends max_tokens=1, no tools, no thinking to minimize cost
- Disposable user message is NOT added to conversation history
- Only fires when agent is idle and enough time has elapsed
- Disabled by default (cache_keepalive_secs = 0)
- 30-second tick in event loop checks if keepalive is needed

https://claude.ai/code/session_01EvJrw9tyFxmUJrDmWteZcV
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants