---
read_when:
    - Control UI के डिवाइस पेज पर लाइव स्थिति की डीबगिंग
    - डुप्लिकेट या पुराने इंस्टेंस की पंक्तियों की जाँच करना
    - Gateway WS कनेक्ट या सिस्टम-इवेंट बीकन बदलना
summary: OpenClaw उपस्थिति प्रविष्टियाँ कैसे बनाई, मर्ज और प्रदर्शित की जाती हैं
title: उपस्थिति
x-i18n:
    generated_at: "2026-07-27T18:00:29Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: ac5800eebddb82e69a7d0c06733e6a19addbc57be7776e7361411866af0c60f5
    source_path: concepts/presence.md
    workflow: 16
---

OpenClaw "उपस्थिति" इसका एक हल्का, सर्वोत्तम-प्रयास दृश्य है:

- स्वयं **Gateway**, और
- **Gateway से जुड़े उपयोगकर्ता को दिखाई देने वाले क्लाइंट** (Mac ऐप, WebChat, नोड आदि)

उपस्थिति का लाइव कनेक्शन मेटाडेटा Control UI के **डिवाइस** पृष्ठ
(**सेटिंग्स → डिवाइस** के अंतर्गत) और macOS ऐप के **इंस्टेंस** टैब में दिखाई देता है।

यह पृष्ठ Gateway क्लाइंट सूची के बारे में है। सबसे हाल में उपयोग किए गए Mac का पता लगाने
और नोड अलर्ट को वहाँ रूट करने के लिए,
[सक्रिय कंप्यूटर उपस्थिति](/hi/nodes/presence) देखें।

## उपस्थिति फ़ील्ड (क्या दिखाई देता है)

उपस्थिति प्रविष्टियाँ इन जैसे फ़ील्ड वाली संरचित ऑब्जेक्ट होती हैं:

- `instanceId` (वैकल्पिक, लेकिन इसकी दृढ़ता से अनुशंसा की जाती है): स्थायी क्लाइंट पहचान (आमतौर पर `connect.client.instanceId`)
- `host`: मानव-पठनीय होस्ट नाम
- `ip`: सर्वोत्तम-प्रयास IP पता
- `version`: क्लाइंट संस्करण स्ट्रिंग
- `deviceFamily` / `modelIdentifier`: हार्डवेयर संकेत
- `mode`: `ui`, `webchat`, `cli`, `backend`, `node`, `probe`, `test`
- `lastInputSeconds`: यदि ज्ञात हो, तो अंतिम उपयोगकर्ता इनपुट के बाद से बीते सेकंड
- `reason`: क्लाइंट द्वारा प्रदान की गई मुक्त-रूप स्ट्रिंग; स्वयं Gateway केवल `self`, `connect`, और `disconnect` उत्सर्जित करता है
- `deviceId`, `roles`, `scopes`: कनेक्ट हैंडशेक से प्राप्त डिवाइस पहचान और भूमिका/स्कोप संकेत
- `ts`: अंतिम अपडेट का टाइमस्टैम्प (युगारंभ के बाद से मिलीसेकंड)

## उत्पादक (उपस्थिति कहाँ से आती है)

उपस्थिति प्रविष्टियाँ कई स्रोतों द्वारा बनाई और **मर्ज** की जाती हैं।

### 1) Gateway की स्वयं की प्रविष्टि

Gateway स्टार्टअप पर हमेशा एक "स्वयं" प्रविष्टि बनाता है, ताकि किसी क्लाइंट के कनेक्ट होने से
पहले भी UI में Gateway होस्ट दिखाई दे।

### 2) WebSocket कनेक्ट

प्रत्येक WS क्लाइंट एक `connect` अनुरोध से शुरू होता है। सफल हैंडशेक पर
Gateway उस कनेक्शन की उपस्थिति प्रविष्टि को अपसर्ट करता है।

#### अल्पकालिक नियंत्रण-प्लेन कनेक्शन क्यों दिखाई नहीं देते

CLI कमांड, बैकएंड RPC क्लाइंट और प्रोब अक्सर थोड़े समय के लिए कनेक्ट होते हैं। उस
बार-बार होने वाले बदलाव को पूरे उपस्थिति TTL तक बनाए रखने से बचने के लिए, `cli`, `backend`,
या `probe` मोड वाले क्लाइंट को उपस्थिति प्रविष्टियों में **नहीं** बदला जाता। परीक्षण-मोड क्लाइंट
ट्रैक किए जाते हैं, क्योंकि परीक्षण सुइट उन्हें वास्तविक क्लाइंट के प्रतिनिधि के रूप में उपयोग करते हैं।

### 3) `system-event` बीकन

क्लाइंट `system-event` विधि के माध्यम से अधिक विस्तृत आवधिक बीकन भेज सकते हैं। Mac
ऐप इसका उपयोग होस्ट नाम, IP, संस्करण और सक्रियता मेटाडेटा रिपोर्ट करने के लिए करता है। भौतिक
इनपुट गतिविधि इस सामान्य बीकन का हिस्सा नहीं है; [सक्रिय कंप्यूटर उपस्थिति](/hi/nodes/presence) में वर्णित
विशिष्ट-उद्देश्य वाला मूल नोड इवेंट इसका स्वामी है। Mac इन बीकन को
`system-presence-clear-last-input` से टैग करता है; वर्तमान Gateway उस पश्चगामी-संगत
मार्कर का उपयोग किसी पुराने ऐप द्वारा बनाए रखी गई इनपुट नवीनता को हटाने के लिए करते हैं।
बीकन में 30-दिन का एक निश्चित मान भी होता है, ताकि टैग को अनदेखा करने वाले पुराने Gateway
सटीक नवीनता को बनाए रखने के बजाय उसे अधिलेखित कर दें। इस संगतता मान के लिए
कोई नई गतिविधि सैंपल नहीं की जाती।

### 4) नोड कनेक्शन (भूमिका: नोड)

जब कोई नोड `role: node` के साथ Gateway WebSocket पर कनेक्ट होता है, तो Gateway
उस नोड के लिए उपस्थिति प्रविष्टि को अपसर्ट करता है (अन्य WS क्लाइंट के समान प्रवाह)।

## मर्ज + डीडुप्लिकेशन नियम (`instanceId` क्यों महत्त्वपूर्ण है)

उपस्थिति प्रविष्टियाँ एकल इन-मेमोरी मैप में संग्रहीत होती हैं, जिसकी कुंजी क्रमशः पहले उपलब्ध
युग्मित डिवाइस ID, `connect.client.instanceId`,
या अंतिम विकल्प के रूप में प्रति-कनेक्शन ID होती है; कुंजी में अक्षरों के केस का भेद नहीं किया जाता।

अल्पकालिक नियंत्रण-प्लेन क्लाइंट को ट्रैकिंग से पूरी तरह बाहर रखा जाता है (ऊपर देखें),
इसलिए उनके कनेक्शन ID कभी कुंजी नहीं बनते। प्रत्येक अन्य क्लाइंट के लिए,
कनेक्शन ID फ़ॉलबैक का अर्थ है कि स्थायी
`instanceId` के बिना पुनः कनेक्ट होने वाला क्लाइंट एक **डुप्लिकेट** पंक्ति के रूप में दिखाई देता है।

## TTL और सीमित आकार

उपस्थिति जानबूझकर अल्पकालिक है:

- **TTL:** 5 मिनट से पुरानी प्रविष्टियाँ हटा दी जाती हैं
- **अधिकतम प्रविष्टियाँ:** 200 (सबसे पुरानी पहले हटाई जाती हैं)

इससे सूची ताज़ा रहती है और मेमोरी की असीमित वृद्धि से बचाव होता है।

## रिमोट/टनल सावधानी (लूपबैक IP)

जब कोई क्लाइंट SSH टनल / स्थानीय पोर्ट फ़ॉरवर्ड के माध्यम से कनेक्ट होता है, तो Gateway
रिमोट पते को `127.0.0.1` के रूप में देख सकता है। उस टनल
पते को क्लाइंट के IP के रूप में रिकॉर्ड करने से बचने के लिए, कनेक्ट हैंडलिंग पहचाने गए स्थानीय
(लूपबैक) क्लाइंट के लिए प्रविष्टि में लूपबैक पता लिखने के बजाय `ip` को पूरी तरह छोड़ देती है।

## उपभोक्ता

### Control UI का डिवाइस पृष्ठ

**डिवाइस** पृष्ठ `system-presence` को स्थायी पेयरिंग और नोड
रिकॉर्ड के साथ जोड़ता है। यह Gateway के स्वयं के बीकन को सबसे पहले पिन करता है और लाइव प्लेटफ़ॉर्म,
संस्करण, मॉडल और इनपुट-नवीनता मेटाडेटा के लिए मेल खाने वाले डिवाइस या इंस्टेंस ID का उपयोग करता है।

### macOS इंस्टेंस टैब

macOS ऐप `system-presence` के आउटपुट को रेंडर करता है और अंतिम अपडेट की आयु के आधार पर
एक छोटा स्थिति संकेतक (सक्रिय/निष्क्रिय/पुराना) लागू करता है।

## डीबगिंग सुझाव

- असंसाधित सूची देखने के लिए, Gateway पर `system-presence` को कॉल करें।
- यदि आपको डुप्लिकेट दिखाई दें:
  - पुष्टि करें कि क्लाइंट हैंडशेक में स्थायी `client.instanceId` भेजते हैं
  - पुष्टि करें कि आवधिक बीकन समान `instanceId` का उपयोग करते हैं
  - जाँचें कि कनेक्शन से प्राप्त प्रविष्टि में `instanceId` अनुपस्थित तो नहीं है (डुप्लिकेट अपेक्षित हैं)

## संबंधित

<CardGroup cols={2}>
  <Card title="सक्रिय कंप्यूटर उपस्थिति" href="/hi/nodes/presence" icon="computer-mouse">
    भौतिक Mac इनपुट किस प्रकार सक्रिय नोड चुनता है और कनेक्शन अलर्ट रूट करता है।
  </Card>
  <Card title="टाइपिंग संकेतक" href="/hi/concepts/typing-indicators" icon="ellipsis">
    टाइपिंग संकेतक कब भेजे जाते हैं और उन्हें कैसे समायोजित करें।
  </Card>
  <Card title="स्ट्रीमिंग और चंकिंग" href="/hi/concepts/streaming" icon="bars-staggered">
    आउटबाउंड स्ट्रीमिंग, चंकिंग और प्रति-चैनल फ़ॉर्मेटिंग।
  </Card>
  <Card title="Gateway संरचना" href="/hi/concepts/architecture" icon="diagram-project">
    Gateway घटक और उपस्थिति अपडेट संचालित करने वाला WebSocket प्रोटोकॉल।
  </Card>
  <Card title="Gateway प्रोटोकॉल" href="/hi/gateway/protocol" icon="plug">
    `connect`, `system-event`, और `system-presence` के लिए वायर प्रोटोकॉल।
  </Card>
</CardGroup>
