> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# स्टेट अपडेट करें

## परिचय

**स्टेट अपडेट करें** टूल आपके एजेंट को बातचीत जारी रहने के दौरान एक या उससे ज़्यादा [डाइनैमिक वेरिएबल](/docs/hi/eleven-agents/customization/personalization/dynamic-variables) सेट करने देता है। दूसरे [सिस्टम टूल्स](/docs/hi/eleven-agents/customization/tools/system-tools) की तरह, यह सिर्फ़ बातचीत की अंदरूनी स्थिति बदलता है — यह कभी किसी बाहरी API या क्लाइंट-साइड फ़ंक्शन को कॉल नहीं करता।

कॉल के दौरान जानकारी रिकॉर्ड करने के लिए इसका इस्तेमाल करें, जैसे यह चिह्नित करना कि बातचीत को एस्केलेट किया जाना चाहिए, यूज़र द्वारा दी गई वैल्यू स्टोर करना या दूसरे डाइनैमिक वेरिएबल से निकली वैल्यू की गणना करना।

LLM के टूल कॉल करने पर नहीं, बल्कि [वर्कफ़्लो](/docs/hi/eleven-agents/customization/agent-workflows) में किसी तय बिंदु पर स्टेट अपडेट लागू करने के लिए [स्टेट अपडेट नोड](/docs/hi/eleven-agents/customization/agent-workflows#update-state-node) का इस्तेमाल करें। यह वही स्टेट अपडेट स्वीकार करता है।

## कार्यप्रणाली

* **हर कॉल में कई अपडेट**: एक टूल कॉल एक साथ अधिकतम 50 डाइनैमिक वेरिएबल असाइन कर सकती है।
* **एक्सप्रेशन-आधारित वैल्यू**: हर वैल्यू एक एक्सप्रेशन का परिणाम होती है, जो कॉन्स्टेंट, मौजूदा डाइनैमिक वेरिएबल, LLM द्वारा बातचीत से निकाली गई वैल्यू और ऑपरेटर को जोड़ सकती है।
* **LLM एक्सट्रैक्शन सिर्फ़ ज़रूरत पड़ने पर**: टूल केवल उन अपडेट के पैरामीटर निकालने के लिए LLM से कहता है जिन्हें इसकी ज़रूरत होती है। सिर्फ़ कॉन्स्टेंट और/या मौजूदा डाइनैमिक वेरिएबल से बने अपडेट फ़ंक्शन कॉल में कोई पैरामीटर नहीं जोड़ते।
* **तुरंत उपलब्धता**: टूल चलने के बाद, अपडेट किए गए डाइनैमिक वेरिएबल बातचीत के बाकी हिस्से में उपलब्ध होते हैं — बाद के प्रॉम्प्ट, दूसरे टूल कॉल और ओवरराइड, सभी उन्हें किसी भी दूसरे डाइनैमिक वेरिएबल की तरह रेफ़र कर सकते हैं।

## यह कैसे काम करता है

हर स्टेट अपडेट किसी एक्सप्रेशन का परिणाम एक डाइनैमिक वेरिएबल को असाइन करता है:

```text
variable_name = expression
```

एक एक्सप्रेशन नीचे दिए गए प्रकारों में से एक होता है। अधिक जटिल लॉजिक बनाने के लिए एक्सप्रेशन को एक-दूसरे के अंदर नेस्ट किया जा सकता है:

| प्रकार               | विवरण                                                                                                                  |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| कॉन्स्टेंट           | एक तय स्ट्रिंग, संख्या, बूलियन या null वैल्यू।                                                                         |
| डाइनैमिक वेरिएबल     | किसी दूसरे डाइनैमिक वेरिएबल की मौजूदा वैल्यू।                                                                          |
| LLM-निकाली गई वैल्यू | वह वैल्यू जिसका अनुमान LLM बातचीत से लगाता है और जो आपके तय किए गए प्रकार (स्ट्रिंग, संख्या या बूलियन) से मेल खाती है। |
| लॉजिकल ऑपरेटर        | `and`, `or`, या अन्य एक्सप्रेशन को जोड़ने वाला कंडीशनल (`if` / `then` / `else`) एक्सप्रेशन।                            |
| तुलना ऑपरेटर         | दो एक्सप्रेशन की तुलना करने वाले `=`, `≠`, `>`, `<`, `≥`, `≤`।                                                         |
| अंकगणितीय ऑपरेटर     | दो संख्यात्मक (या `+` के लिए, स्ट्रिंग) एक्सप्रेशन को जोड़ने वाले `+`, `-`, `×`, `÷`।                                  |

उदाहरण के लिए, नीचे दिया गया स्टेट अपडेट `should_escalate` को `true` पर सेट करता है, अगर LLM को लगता है कि यूज़र निराश है या `retry_count` डाइनैमिक वेरिएबल पहले से 3 से ज़्यादा है:

```text
should_escalate = (llm: "User sounds frustrated with the conversation") OR (retry_count > 3)
```

> **Note**
>
> अगर किसी स्टेट अपडेट का मूल्यांकन नहीं हो पाता — उदाहरण के लिए, शून्य से भाग देने पर — टूल कॉल एक
> त्रुटि लौटाती है और उस कॉल में कोई भी अपडेट लागू नहीं होता।

## कॉन्फ़िगरेशन

### चरण 1: टूल जोड़ें

अपने एजेंट के कॉन्फ़िगरेशन पेज पर जाएं। **टूल्स** सेक्शन में **टूल जोड़ें** पर क्लिक करें और **स्टेट अपडेट करें** चुनें।

### चरण 2: स्टेट अपडेट तय करें

हर स्टेट अपडेट के लिए, ये जानकारी दें:

* **वेरिएबल नाम**: असाइन किया जाने वाला डाइनैमिक वेरिएबल।
* **एक्सप्रेशन**: असाइन की जाने वाली वैल्यू, जिसे ऊपर बताए गए वैल्यू और ऑपरेटर प्रकारों से बनाया जाता है। अधिक जटिल एक्सप्रेशन बनाने के लिए वैल्यू को नेस्ट किया जा सकता है।
* **ज़रूरी**: बंद होने पर LLM उन वैल्यू को छोड़ सकता है जिन पर यह अपडेट निर्भर करता है। तब अपडेट छोड़ दिया जाता है और वेरिएबल अपनी मौजूदा वैल्यू बनाए रखता है।

आप एक टूल के लिए अधिकतम 50 स्टेट अपडेट तय कर सकते हैं।

### चरण 3: विवरण कॉन्फ़िगर करें (वैकल्पिक)

टूल को कब कॉल करना है, इस बारे में LLM को गाइड करने के लिए आप कस्टम विवरण दे सकते हैं। खाली छोड़ने पर, इस टूल के लिए ऑप्टिमाइज़ किया गया डिफ़ॉल्ट विवरण इस्तेमाल होगा।

## इस्तेमाल के मामले

* **एस्केलेशन फ़्लैग**: एक डाइनैमिक वेरिएबल (जैसे `should_escalate`) सेट करें, जिसे कोई डाउनस्ट्रीम सिस्टम या बिज़नेस नियम जांचता है, जैसा [Genesys इंटीग्रेशन गाइड](/docs/hi/eleven-agents/customization/integrations/genesys#configure-escalation) में दिखाया गया है।
* **निकाली गई जानकारी रिकॉर्ड करना**: यूज़र की दी हुई वैल्यू (ऑर्डर नंबर, प्राथमिकता, चुना हुआ विभाग) को बातचीत में बाद में इस्तेमाल करने के लिए डाइनैमिक वेरिएबल के रूप में स्टोर करें।
* **व्युत्पन्न वैल्यू**: दूसरे डाइनैमिक वेरिएबल से कोई वैल्यू निकालें, जैसे काउंटर बढ़ाना या दो वेरिएबल को मिलाकर एक बनाना।

**उद्देश्य**: एजेंट को बातचीत के आधार पर एक या अधिक dynamic variables update करने दें, बिना किसी external API को call किए।

**ट्रिगर स्थितियां**: LLM को इस tool को तब call करना चाहिए, जब:

* बातचीत में ऐसी जानकारी मिले जिसे record किया जाना चाहिए (जैसे escalation flag, चुना गया option या यूज़र द्वारा दी गई value)
* configured state update किसी ऐसी value पर निर्भर हो जिसे LLM को बातचीत से तय या extract करना हो

**Parameters**:

Function के parameters इस बात पर निर्भर करते हैं कि tool कैसे configured है। LLM-extracted value इस्तेमाल करने वाला हर configured state update schema में एक property जोड़ता है, जिसका नाम उस update के dynamic variable पर होता है और जिसका type `string`, `number` या `boolean` होता है। केवल constants या दूसरे dynamic variables से बने state updates कोई parameters नहीं जोड़ते।

**Function call format**:

```json
{
  "type": "function",
  "function": {
    "name": "update_state",
    "arguments": "{\"should_escalate\": true}"
  }
}
```

**Implementation**: एजेंट extracted parameters और बातचीत के मौजूदा dynamic variables के साथ हर configured expression को evaluate करता है, फिर नतीजों को संबंधित dynamic variables में assign करता है। कोई external request नहीं की जाती।

## अक्सर पूछे जाने वाले सवाल

#### क्या यह टूल कोई बाहरी कॉल करता है?

नहीं। सभी सिस्टम टूल्स की तरह, स्टेट अपडेट करें सिर्फ़ बातचीत की अंदरूनी स्थिति बदलता है। यह
किसी बाहरी API या क्लाइंट-साइड फ़ंक्शन को कॉल नहीं करता।

#### क्या इस टूल को कॉल करने के लिए हमेशा LLM से पैरामीटर निकालने की ज़रूरत होती है?

नहीं। टूल केवल उन स्टेट अपडेट के लिए LLM से पैरामीटर निकालने को कहता है, जिनके एक्सप्रेशन में
LLM-निकाली गई वैल्यू शामिल हो। अगर हर कॉन्फ़िगर किया गया अपडेट कॉन्स्टेंट और/या
मौजूदा डाइनैमिक वेरिएबल से बना है, तो फ़ंक्शन कॉल कोई पैरामीटर नहीं लेती।

#### इस टूल से सेट किए गए डाइनैमिक वेरिएबल का इस्तेमाल मैं कहां कर सकता हूं?

जहां भी आप डाइनैमिक वेरिएबल इस्तेमाल कर सकते हैं: सिस्टम प्रॉम्प्ट, पहले मैसेज, टूल पैरामीटर और
हेडर, और ओवरराइड। जानकारी के लिए [डाइनैमिक वेरिएबल](/docs/hi/eleven-agents/customization/personalization/dynamic-variables) देखें।

#### क्या मैं इस टूल को API के ज़रिए कॉन्फ़िगर कर सकता हूं?

स्टेट अपडेट करें को फ़िलहाल एजेंट डैशबोर्ड के ज़रिए कॉन्फ़िगर किया जा सकता है। API और SDK सपोर्ट अभी
उपलब्ध नहीं है।