# पुरानी बारियों का सार — Agent Loops, Stop Conditions और Token Budgets

Source: https://www.geekswithgeeks.com/hi/agent-loops/ctx-summarise

> पुराने messages की जगह निष्ठावान सार रखें और काम, निर्णय व खुली बातें सँभालें।

## संपीड़ित करें, मिटाएँ नहीं

इतिहास आपके trigger से ऊपर जाए तो model (या सस्ते model) से पुरानी बारियों का छोटा नोट बनवाएँ, फिर उन messages की जगह वही रखें और **सबसे हाल की बारियाँ ज्यों की त्यों** रखें। अच्छा सार लक्ष्य, लिए गए निर्णय, बदली गई files और बाक़ी काम सुरक्षित रखता है। सार जो छोड़ दे वह चला जाता है, इसलिए उसमें सटीक मान (IDs, paths) रखें।

## सार बनाएँ, पूँछ रखें

`summarise` एक और model call है। पहला user message कभी सार में न मिटाएँ, क्योंकि उसमें मूल काम है।

```python
def compact(messages, keep_last=6):
    if len(messages) <= keep_last + 1:
        return messages
    head, old, tail = messages[0], messages[1:-keep_last], messages[-keep_last:]
    note = summarise(old)       # goal, decisions, open items, exact IDs
    return [head,
            {"role": "user", "content": f"Summary of earlier work:\n{note}"},
            *tail]
```

## सार जाँचें

सार विवरण गढ़ या छोड़ सकते हैं। महत्वपूर्ण runs में messages बदलने से पहले उन्हें कहीं log करें ताकि आप जाँच सकें कि क्या खोया।

**Quiz:** सार में कभी क्या नहीं मिटाना चाहिए?

- [x] मूल काम
- [ ] अभिवादन
- [ ] पुराने error logs
- [ ] Whitespace

*Answer:* मूल काम. मूल लक्ष्य खोने से बाक़ी काम दिशाहीन हो जाता है।
