# अंतिम उत्तर के लिए बाध्य करना — Agent Loops, Stop Conditions और Token Budgets

Source: https://www.geekswithgeeks.com/hi/agent-loops/end-forced-final

> Budget ख़त्म होने पर प्रगति का सार देने के लिए बिना tools की आख़िरी call उपयोग करें।

## ऐसी आख़िरी call जो tools नहीं बुला सकती

काम के बीच में सीमा छू जाए तो सिर्फ़ error न उठाएँ। Tools बंद करके एक **समापन call** के लिए छोटा budget आरक्षित रखें और model से कहें कि क्या किया, क्या मिला और क्या बाक़ी है, इसका सार दे। User को चुप्पी की जगह कुछ उपयोगी मिलता है।

## उपयोगी चीज़ के साथ रुकें

सीमा छूने पर भी अच्छे loops आंशिक नतीजा लौटाते हैं, स्थिति सहेजते हैं और बताते हैं कि क्या हुआ।

![अच्छे समापन के तीन हिस्से: नतीजा, स्थिति, स्पष्टीकरण।](assets/figures/agent-loops/section-6-map.svg) — चित्र 6.1 — आंशिक नतीजा, सहेजी स्थिति और स्पष्टीकरण।

## समापन call

`tools` छोड़ने का मतलब है कि model सिर्फ़ text लिख सकता है। समापन अनुरोध छोटा और उसका `max_tokens` मध्यम रखें।

```python
def wrap_up(messages, reason):
    messages.append({"role": "user", "content":
        f"Stopping because: {reason}. Do not call tools. Summarise what you "
        "completed, what you found, and what still needs to be done."})
    reply = client.messages.create(model=MODEL, max_tokens=800, messages=messages)
    return final_text(reply)
```

## पहले budget आरक्षित करें

मुख्य loop को कड़ी सीमा से थोड़ा पहले (मान लें 90% पर) रोकें ताकि समापन call के पास चलने की जगह हो। जो समापन ख़ुद budget पार कर दे, वह अपना उद्देश्य खो देता है।

**Quiz:** समापन call में tools बंद क्यों करें?

- [x] ताकि model और काम शुरू करने की जगह सार लिखे
- [ ] Tools दो बार उपयोग नहीं हो सकते
- [ ] यह call को मुफ़्त बनाता है
- [ ] Tools सार तोड़ते हैं

*Answer:* ताकि model और काम शुरू करने की जगह सार लिखे. Tools के बिना एकमात्र संभव output अंतिम text है।
