# Recursion Limit: सुरक्षा जाल — LangGraph Agents और Multi-Agent Systems

Source: https://www.geekswithgeeks.com/hi/langgraph-agents/f-recursion

> अनियंत्रित graphs को स्वतः रोकें।

## अंतर्निहित चरण बजट

LangGraph एक run के **super-steps** गिनता है और run config में `recursion_limit` पार होने पर **`GraphRecursionError`** उठाता है (डिफ़ॉल्ट 25 जैसी मामूली संख्या है)। यह सुरक्षा जाल है, डिज़ाइन का औज़ार नहीं: सामान्य runs ख़त्म करने के लिए उस पर निर्भर न हों। अपने graph के अनुकूल सीमा रखें, error पकड़ें, state log करें और साफ़ विफलता लौटाएँ। इसे अपने प्रयास-काउंटर, समय सीमा और token बजट के साथ मिलाएँ, क्योंकि loop में फँसा agent हर चक्र पर पैसा ख़र्च करता है।

## बग वाला अनंत loop, रोका गया, चलाकर

मैंने यह Python virtual environment में langgraph 1.2.12 और langchain-core 1.6.6 के साथ ऑफ़लाइन चलाया। किसी API key या मॉडल की ज़रूरत नहीं क्योंकि मॉडल की जगह सादे Python functions हैं, इसलिए आउटपुट दोहराने योग्य है। Node की ख़ुद पर लौटने वाली edge है और अंत नहीं। `recursion_limit` 5 के साथ LangGraph `GraphRecursionError` उठाता है, जिसे कोड पकड़कर रिपोर्ट करता है।

```python
from typing import TypedDict
from langgraph.graph import StateGraph, START
from langgraph.errors import GraphRecursionError

class State(TypedDict):
    n: int

def inc(state): return {"n": state["n"] + 1}

g = StateGraph(State)
g.add_node("inc", inc)
g.add_edge(START, "inc")
g.add_edge("inc", "inc")            # a bug: never ends
app = g.compile()
try:
    app.invoke({"n": 0}, {"recursion_limit": 5})
except GraphRecursionError:
    print("stopped by the recursion limit instead of looping forever")

```

Output:

```
stopped by the recursion limit instead of looping forever
```

## सीमा आने पर state log करें

GraphRecursionError के क्षण की state अक्सर दिखाती है कि कौन-सा loop क्यों अटका।

**Quiz:** Recursion limit किसलिए है?

- [x] सुरक्षा जाल के रूप में अनियंत्रित graphs रोकना
- [ ] मॉडल को होशियार बनाना
- [ ] State संपीड़ित करना
- [ ] भाषा चुनना

*Answer:* सुरक्षा जाल के रूप में अनियंत्रित graphs रोकना. यह एक run में चरणों की संख्या सीमित करता है।
