# Prompt Caching — Agent Loops, Stop Conditions और Token Budgets

Source: https://www.geekswithgeeks.com/hi/agent-loops/budget-caching

> ख़र्च और latency घटाने के लिए turns में स्थिर prompt prefix का दोबारा उपयोग करें।

## जो नहीं बदलता उसके लिए कम चुकाएँ

हर अनुरोध की शुरुआत (system prompt, tool परिभाषाएँ, शुरुआती इतिहास) बारी-दर-बारी एक-सी रहती है। **Prompt caching** से provider उस prefix को याद रखता है, इसलिए cache reads कम दर पर और तेज़ बिल होते हैं। Claude API में आप किसी block पर `cache_control` लगाते हैं। स्थिर सामग्री पहले और बदलती सामग्री बाद में रखें, क्योंकि सिर्फ़ न बदला prefix ही दोबारा उपयोग हो सकता है।

## Cache योग्य block चिह्नित करना

Marker स्थिर prefix के आख़िरी block पर लगता है। न्यूनतम cache योग्य आकार, अवधि और क़ीमतें model पर निर्भर हैं, इसलिए मौजूदा दस्तावेज़ देखें।

```python
system = [{
    "type": "text",
    "text": LONG_INSTRUCTIONS,
    "cache_control": {"type": "ephemeral"},   # cache everything up to here
}]
reply = client.messages.create(
    model=MODEL, max_tokens=1024, system=system, tools=TOOLS, messages=messages)
```

## Prefix में बदलाव न करें

Prompt के ऊपर timestamp जोड़ने या tools का क्रम बदलने से आगे की हर बारी का cache टूट जाता है। शुरुआती हिस्से को अक्षरशः स्थिर रखें।

**Quiz:** Caching ठीक चलने के लिए बदलती सामग्री कहाँ रखें?

- [ ] Prompt की ठीक शुरुआत में
- [x] स्थिर prefix के बाद
- [ ] API key में
- [ ] कहीं नहीं

*Answer:* स्थिर prefix के बाद. सिर्फ़ एक-सा prefix ही दोबारा उपयोग हो सकता है, इसलिए बदलते हिस्से उसके बाद आएँ।
