पाठ 18 / 29
अटके और अनियंत्रित Agents को पहचानना
चरण सीमाओं, दोहराव पहचान और बजट से 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 को रोककर मनुष्य से पूछता।
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 को कहने दें कि वह अटका है
स्पष्ट "अटका हूँ, क्योंकि..." परिणाम की अनुमति दें ताकि विफलता से बचने के लिए वह अनुमान न लगाए।
त्वरित जाँच: अटके-agent की जाँच ट्रिगर हो तो क्या होना चाहिए?
- रुकें और रिपोर्ट करें क्या आज़माया ताकि मनुष्य दिशा बदल सके
- उसे अनिश्चित काल तक चलने दें
- Tests हटाएँ
- बजट स्वतः दोगुना करें
Answer
रुकें और रिपोर्ट करें क्या आज़माया ताकि मनुष्य दिशा बदल सके — जल्दी रुकना लागत बचाता है और मूल समस्या सामने लाता है।