# अटके और अनियंत्रित Agents को पहचानना — Coding Agents और AI-Assisted Development

Source: https://www.geekswithgeeks.com/hi/coding-agents/v-loop

> चरण सीमाओं, दोहराव पहचान और बजट से loops जल्दी रोकें।

## प्रगति रुके तो जल्दी विफल हों

Agents कभी-कभी वही विफल कार्रवाई दोहराते हैं, दो सुधारों के बीच झूलते हैं, या बिना प्रगति भटकते हैं और पैसा जलाते हैं। Harness में **कठोर सीमाएँ** रखें: **अधिकतम चरण संख्या**, **token और लागत बजट**, और **दीवार-घड़ी timeout**। **प्रगति जाँचें** जोड़ें: कई बार दोहराई वही कार्रवाई वही arguments के साथ, प्रयासों में न बदलती test विफलताएँ, या एक-दूसरे को उलटते संपादन पहचानें। जाँच ट्रिगर हो तो agent को जारी रखने देने की जगह **रुकें और रिपोर्ट करें** (क्या आज़माया, आख़िरी त्रुटि क्या थी) ताकि मनुष्य दिशा बदल सके। Agent को अनुमान लगाने को मजबूर करने की जगह **"मैं अटका हूँ, कारण यह है"** कहने का रास्ता भी दें। हर चरण log करें ताकि अटके runs का बाद में निदान हो सके, जो अक्सर ग़ायब निर्देश या flaky test उजागर करता है।

## दोहराव पहचान, चलाकर

मैंने यह सादे Python 3 (सिर्फ़ standard library) से चलाया, अस्थायी folder में बनाए throwaway project के साथ। स्वस्थ run कुछ भी दो बार से ज़्यादा नहीं दोहराता। Looping run पिछले छह कार्यों में `a.py` को तीन बार संपादित करता है और अटका हुआ चिह्नित होता है, जो agent को रोककर मनुष्य से पूछता।

```python
from collections import Counter

def stuck(history, window=6, repeat=3):
    """Flag an agent that keeps repeating the same action with the same arguments."""
    recent = history[-window:]
    counts = Counter(recent)
    action, n = counts.most_common(1)[0]
    return (n >= repeat), action, n

ok_run = [("read", "a.py"), ("edit", "a.py"), ("test", ""), ("read", "b.py"), ("edit", "b.py"), ("test", "")]
bad_run = [("read", "a.py"), ("edit", "a.py"), ("test", ""), ("edit", "a.py"), ("test", ""), ("edit", "a.py")]
for name, run in (("healthy", ok_run), ("looping", bad_run)):
    flag, action, n = stuck(run)
    print(f"{name:8} stuck={flag} (most repeated: {action} x{n})")

```

Output:

```
healthy  stuck=False (most repeated: ('test', '') x2)
looping  stuck=True (most repeated: ('edit', 'a.py') x3)
```

## Agent को कहने दें कि वह अटका है

स्पष्ट "अटका हूँ, क्योंकि..." परिणाम की अनुमति दें ताकि विफलता से बचने के लिए वह अनुमान न लगाए।

**Quiz:** अटके-agent की जाँच ट्रिगर हो तो क्या होना चाहिए?

- [x] रुकें और रिपोर्ट करें क्या आज़माया ताकि मनुष्य दिशा बदल सके
- [ ] उसे अनिश्चित काल तक चलने दें
- [ ] Tests हटाएँ
- [ ] बजट स्वतः दोगुना करें

*Answer:* रुकें और रिपोर्ट करें क्या आज़माया ताकि मनुष्य दिशा बदल सके. जल्दी रुकना लागत बचाता है और मूल समस्या सामने लाता है।
