Files
2026-06-30 10:38:52 +08:00

2.8 KiB

name, description
name description
prefix-cache-stability Use when changing prompt compilation, history replay, persisted conversation state, model request construction, or dynamic reminders in this repo; protects prefix-cache hit rate by keeping model-visible history append-only and dynamic attention scoped to the latest request.

Prefix Cache Stability

Use this skill before editing prompt, history replay, persisted conversation state, or provider request code.

Hard Constraints

  • Model-visible history is append-only. If a message was sent to the model and is meant to remain historical context, persist it and replay it at the same relative position.
  • Do not move previously sent model-visible messages to a new position in later requests.
  • Keep the largest stable prefix first: system prompt, imported replay, persisted user/request/tool history, then current-turn suffix context.
  • Truly dynamic attention is latest-only. Current state blocks, latest edit guards, and other volatile reminders should be appended near the end of the current request and should not become long-lived prefix content unless they are intentionally persisted as historical facts.
  • Persisted prompt context must be worded so it is safe as history. Avoid stale wording like "currently" unless the context is only latest-only.
  • Never optimize cache by dropping correctness-critical context.
  • Never remove, strip, reorder, or suppress historical reasoning_content replay merely to reduce repetitive thinking. Some providers need prior reasoning for valid continuation; optimize the latest tool guidance or current-turn prompt behavior instead.

Implementation Pattern

  1. Classify each prompt addition:
    • Stable system policy: belongs in the fixed system prompt.
    • Historical model-visible context: persist as replayable history.
    • Latest-only attention: append as current suffix, do not persist.
  2. For persisted context, store enough metadata to dedupe the same turn, usually source plus a content hash.
  3. Replay persisted context from history/projector, not by regenerating and inserting it into old positions.
  4. On provider retries or same-turn follow-up passes, do not duplicate an already persisted prompt context.
  5. Persisted conversation state must include replayable prompt context so a restarted conversation preserves the same prefix. In this repo, use context.json.items for replayable semantic history and state.json for mutable latest state.

Verification

  • Compare adjacent provider request artifacts or captured canonical request bodies and compute the longest common prefix.
  • Check final raw SSE usage fields before blaming local metrics. Some OpenAI-compatible providers do not return cached-token fields.
  • A healthy change should make old request prefixes stable while allowing only the newest suffix to vary.