# एक बारी की संरचना — Agent Loops, Stop Conditions और Token Budgets

Source: https://www.geekswithgeeks.com/hi/agent-loops/loop-turn-structure

> एक बारी को call, जाँच, कर्म और जोड़ने में बाँटें और बताएँ कि हर चरण में क्या बिगड़ सकता है।

## हर बार चार चरण

हर बारी वही चार काम करती है: अब तक के messages के साथ model को **बुलाना**, **जाँचना** कि वह क्यों रुका, माँगे गए tools चलाकर **कर्म** करना, और assistant message व tool results **जोड़ना**। फिर loop दोबारा शुरू होता है। ये चार चरण पहचान लें तो कोई भी guard ठीक सही जगह लगा सकते हैं।

## Loop की एक बारी

हर बारी model को बुलाती है, जाँचती है कि वह क्यों रुका, माँगे गए tools चलाती है और नतीजे जोड़ती है।

![हर बारी के चार चरण: call, जाँच, कर्म, जोड़ना।](assets/figures/agent-loops/section-1-map.svg) — चित्र 1.1 — Call, जाँच, कर्म और जोड़ना।

## ढाँचा

`call_model`, `run_tools` और `final_text` आपके अपने कोड के प्रतीक हैं। ध्यान दें कि साफ़ stop या `for` सीमा के अलावा loop के ख़त्म होने का कोई रास्ता नहीं है।

```python
def run(messages, max_steps=10):
    for step in range(max_steps):
        reply = call_model(messages)               # 1. call
        messages.append({"role": "assistant", "content": reply.content})
        if reply.stop_reason != "tool_use":        # 2. inspect
            return final_text(reply)
        results = run_tools(reply)                 # 3. act
        messages.append({"role": "user", "content": results})  # 4. append
    raise RuntimeError("step limit reached")
```

## चरणों के बीच guards लगाएँ

Budget, समय और दोहराव की जाँच "जाँच" के ठीक बाद और "कर्म" से पहले होनी चाहिए। तब बेक़ाबू loop अगली tool call पर पैसा ख़र्च करने से पहले रुक जाता है।

**Quiz:** बारी का कौन-सा चरण model के माँगे tools चलाता है?

- [ ] Call
- [x] Act
- [ ] Append
- [ ] Inspect

*Answer:* Act. Call model से पूछता है, inspect उसका stop reason पढ़ता है, act tools चलाता है, और append नतीजे दर्ज करता है।
