---
read_when:
    - OpenClaw में Matrix सेट अप करना
    - Matrix E2EE और सत्यापन कॉन्फ़िगर करना
summary: Matrix समर्थन की स्थिति, सेटअप और कॉन्फ़िगरेशन के उदाहरण
title: Matrix
x-i18n:
    generated_at: "2026-07-27T19:08:25Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: aa84c7d9d9019040a3fec3cfaabb78590006a4a2dd4bb95836f2cf37072777c5
    source_path: channels/matrix.md
    workflow: 16
---

Matrix एक डाउनलोड करने योग्य चैनल Plugin (`@openclaw/matrix`) है, जो आधिकारिक `matrix-js-sdk` पर आधारित है। यह DM, रूम, थ्रेड, मीडिया, प्रतिक्रियाओं, पोल, लोकेशन और E2EE का समर्थन करता है।

## इंस्टॉल करना

```bash
openclaw plugins install @openclaw/matrix
```

बिना स्रोत वाले Plugin विनिर्देश पहले ClawHub आज़माते हैं, फिर npm फ़ॉलबैक का उपयोग करते हैं। `openclaw plugins install clawhub:@openclaw/matrix` या `npm:@openclaw/matrix` से किसी स्रोत को अनिवार्य करें। स्थानीय चेकआउट से: `openclaw plugins install ./path/to/local/matrix-plugin`।

`plugins install` Plugin को पंजीकृत और सक्षम करता है; अलग `enable` चरण की आवश्यकता नहीं है। नीचे दिए गए अनुसार कॉन्फ़िगर होने तक चैनल फिर भी कुछ नहीं करता। इंस्टॉल करने के सामान्य नियमों के लिए [Plugins](/hi/tools/plugin) देखें।

## सेटअप

1. अपने होमसर्वर पर एक Matrix खाता बनाएँ।
2. `channels.matrix` को `homeserver` + `accessToken`, या `homeserver` + `userId` + `password` के साथ कॉन्फ़िगर करें।
3. Gateway को पुनः आरंभ करें।
4. बॉट के साथ DM शुरू करें या उसे किसी रूम में आमंत्रित करें। नए आमंत्रण केवल तभी पहुँचते हैं, जब [`autoJoin`](#auto-join) उन्हें अनुमति देता है।

### इंटरैक्टिव सेटअप

```bash
openclaw channels add
openclaw configure --section channels
```

विज़ार्ड होमसर्वर URL, प्रमाणीकरण विधि (टोकन या पासवर्ड), उपयोगकर्ता ID (केवल पासवर्ड प्रमाणीकरण), वैकल्पिक डिवाइस नाम, E2EE सक्षम करना है या नहीं, और रूम एक्सेस/स्वतः-जुड़ने की जानकारी माँगता है। यदि मेल खाने वाले `MATRIX_*` पर्यावरण चर पहले से मौजूद हैं और खाते में कोई सहेजा हुआ प्रमाणीकरण नहीं है, तो विज़ार्ड पर्यावरण-चर शॉर्टकट प्रस्तुत करता है। `openclaw channels resolve --channel matrix "Project Room"` वाली अनुमति-सूची सहेजने से पहले रूम नामों का समाधान करें। विज़ार्ड में E2EE सक्षम करने पर वही बूटस्ट्रैप चलता है जो [`openclaw matrix encryption setup`](#encryption-and-verification) में है।

### न्यूनतम कॉन्फ़िगरेशन

टोकन-आधारित:

```json5
{
  channels: {
    matrix: {
      enabled: true,
      homeserver: "https://matrix.example.org",
      accessToken: "syt_xxx",
      dm: { policy: "pairing" },
    },
  },
}
```

पासवर्ड-आधारित (पहले लॉगिन के बाद टोकन कैश किया जाता है):

```json5
{
  channels: {
    matrix: {
      enabled: true,
      homeserver: "https://matrix.example.org",
      userId: "@bot:example.org",
      password: "replace-me", // pragma: allowlist secret
      deviceName: "OpenClaw Gateway",
    },
  },
}
```

### स्वतः जुड़ना

`channels.matrix.autoJoin` का डिफ़ॉल्ट `"off"` है: जब तक आप मैन्युअल रूप से नहीं जुड़ते, बॉट नए आमंत्रणों से आए नए रूम या DM में दिखाई नहीं देगा। OpenClaw आमंत्रण के समय यह नहीं बता सकता कि आमंत्रण DM के लिए है या समूह के लिए, इसलिए हर आमंत्रण पहले `autoJoin` से होकर जाता है; `dm.policy` बाद में ही लागू होता है, जब बॉट जुड़ चुका हो और रूम का वर्गीकरण हो गया हो।

<Warning>
स्वीकार किए जाने वाले आमंत्रणों को सीमित करने के लिए `autoJoin: "allowlist"` के साथ `autoJoinAllowlist` सेट करें, या हर आमंत्रण स्वीकार करने के लिए `autoJoin: "always"` सेट करें।

`autoJoinAllowlist` केवल `!roomId:server`, `#alias:server`, या `*` स्वीकार करता है। सामान्य रूम नाम अस्वीकार किए जाते हैं; उपनामों का समाधान होमसर्वर के आधार पर होता है, न कि आमंत्रित रूम द्वारा दावा की गई स्थिति के आधार पर।
</Warning>

```json5
{
  channels: {
    matrix: {
      autoJoin: "allowlist",
      autoJoinAllowlist: ["!ops:example.org", "#support:example.org"],
      groups: {
        "!ops:example.org": { requireMention: true },
      },
    },
  },
}
```

### अनुमति-सूची लक्ष्य प्रारूप

- DM (`dm.allowFrom`, `groupAllowFrom`, `groups.<room>.users`): `@user:server` का उपयोग करें। प्रदर्शन नाम डिफ़ॉल्ट रूप से अनदेखे किए जाते हैं (परिवर्तनीय); केवल स्पष्ट प्रदर्शन-नाम संगतता के लिए `dangerouslyAllowNameMatching: true` सेट करें।
- रूम अनुमति-सूची कुंजियाँ (`groups`, पुराना उपनाम `rooms`): `!room:server` या `#alias:server` का उपयोग करें। सामान्य नाम तब तक अनदेखे किए जाते हैं, जब तक `dangerouslyAllowNameMatching: true` न हो।
- आमंत्रण अनुमति-सूचियाँ (`autoJoinAllowlist`): `!room:server`, `#alias:server`, या `*` का उपयोग करें। सामान्य नाम हमेशा अस्वीकार किए जाते हैं।

### खाता ID सामान्यीकरण

विज़ार्ड किसी सुविधाजनक नाम को सामान्यीकृत खाता ID में बदलता है (`Ops Bot` -> `ops-bot`)। स्कोप वाले पर्यावरण-चर नामों में विराम-चिह्नों को हेक्स-एस्केप किया जाता है, ताकि खातों में टकराव न हो: `-` (0x2D) `_X2D_` बनता है, इसलिए `ops-prod` पर्यावरण उपसर्ग `MATRIX_OPS_X2D_PROD_` से मैप होता है।

### कैश किए गए क्रेडेंशियल

Matrix साझा `state/openclaw.sqlite` Plugin स्थिति में खाते के क्रेडेंशियल कैश करता है। कैश किए गए क्रेडेंशियल मौजूद होने पर OpenClaw Matrix को कॉन्फ़िगर किया हुआ मानता है, भले ही कॉन्फ़िगरेशन फ़ाइल में `accessToken` न हो—इसमें सेटअप, `openclaw doctor`, और चैनल-स्थिति जाँच शामिल हैं। अपग्रेड, हटाई जा चुकी `~/.openclaw/credentials/matrix/credentials*.json` फ़ाइलों को `openclaw doctor --fix` के माध्यम से आयात करते हैं, SQLite पंक्तियों को सत्यापित करते हैं, फिर फ़ाइलों को संग्रहित करते हैं।

### पर्यावरण चर

कॉन्फ़िगरेशन-कुंजी-समर्थित पर्यावरण चर, जिनका उपयोग तब किया जाता है जब समतुल्य कॉन्फ़िगरेशन कुंजी सेट न हो। डिफ़ॉल्ट खाता बिना उपसर्ग वाले नामों का उपयोग करता है; नामित खाते प्रत्यय से पहले खाता टोकन जोड़ते हैं ([सामान्यीकरण](#account-id-normalization) देखें)।

| डिफ़ॉल्ट खाता       | नामित खाता (`<ID>` = खाता टोकन) |
| --------------------- | -------------------------------------- |
| `MATRIX_HOMESERVER`   | `MATRIX_<ID>_HOMESERVER`               |
| `MATRIX_ACCESS_TOKEN` | `MATRIX_<ID>_ACCESS_TOKEN`             |
| `MATRIX_USER_ID`      | `MATRIX_<ID>_USER_ID`                  |
| `MATRIX_PASSWORD`     | `MATRIX_<ID>_PASSWORD`                 |
| `MATRIX_DEVICE_ID`    | `MATRIX_<ID>_DEVICE_ID`                |
| `MATRIX_DEVICE_NAME`  | `MATRIX_<ID>_DEVICE_NAME`              |

खाते `ops` के लिए नाम `MATRIX_OPS_HOMESERVER`, `MATRIX_OPS_ACCESS_TOKEN`, आदि बन जाते हैं। `MATRIX_HOMESERVER` (और कोई भी `*_HOMESERVER` स्कोप वाला रूप) कार्यक्षेत्र के `.env` से सेट नहीं किया जा सकता; [कार्यस्थल `.env` फ़ाइलें](/hi/gateway/security) देखें।

<Note>
पुनर्प्राप्ति कुंजी कॉन्फ़िगरेशन-समर्थित पर्यावरण चर नहीं है: OpenClaw इसे कभी भी सीधे पर्यावरण से नहीं पढ़ता। CLI मार्गदर्शन पाठ डिफ़ॉल्ट खाते के लिए इसे `MATRIX_RECOVERY_KEY` नामक शेल चर, या नामित खाते के लिए `MATRIX_RECOVERY_KEY_<ID>` (सामान्य बड़े अक्षरों वाली खाता ID, हेक्स-एस्केपिंग के बिना) के माध्यम से पाइप करने का सुझाव देता है—[पुनर्प्राप्ति कुंजी से इस डिवाइस को सत्यापित करें](#verify-this-device-with-a-recovery-key) देखें।
</Note>

## कॉन्फ़िगरेशन उदाहरण

DM पेयरिंग, रूम अनुमति-सूची और E2EE के साथ एक व्यावहारिक आधारभूत कॉन्फ़िगरेशन:

```json5
{
  channels: {
    matrix: {
      enabled: true,
      homeserver: "https://matrix.example.org",
      accessToken: "syt_xxx",
      encryption: true,

      dm: {
        policy: "pairing",
        sessionScope: "per-room",
        threadReplies: "off",
      },

      groupPolicy: "allowlist",
      groupAllowFrom: ["@admin:example.org"],
      groups: {
        "!roomid:example.org": { requireMention: true },
      },

      autoJoin: "allowlist",
      autoJoinAllowlist: ["!roomid:example.org"],
      threadReplies: "inbound",
      replyToMode: "off",
      streaming: { mode: "partial" },
    },
  },
}
```

## स्ट्रीमिंग पूर्वावलोकन

Matrix उत्तर स्ट्रीमिंग वैकल्पिक है। `streaming.mode` नियंत्रित करता है कि OpenClaw प्रगति पर मौजूद सहायक उत्तर कैसे वितरित करता है; `streaming.block.enabled` नियंत्रित करता है कि हर पूर्ण ब्लॉक को उसके अपने Matrix संदेश के रूप में रखा जाए या नहीं।

```json5
{
  channels: {
    matrix: {
      streaming: { mode: "partial" },
    },
  },
}
```

लाइव उत्तर पूर्वावलोकन बनाए रखने लेकिन अंतरिम टूल/प्रगति पंक्तियाँ छिपाने के लिए:

```json5
{
  channels: {
    matrix: {
      streaming: {
        mode: "partial",
        preview: {
          toolProgress: false,
        },
      },
    },
  },
}
```

पूर्ण कॉन्फ़िगरेशन `{ mode, chunkMode, block, preview, progress }` स्वीकार करता है:

```json5
{
  channels: {
    matrix: {
      streaming: {
        mode: "progress",
        progress: {
          label: "auto", // कॉन्फ़िगर किए गए या अंतर्निहित लेबल में से चुनें (छिपाने के लिए false)
          labels: ["Thinking", "Writing", "Searching"], // label: "auto" के लिए उम्मीदवार
          maxLines: 8, // अधिकतम क्रमागत प्रगति पंक्तियाँ (डिफ़ॉल्ट: 8)
          maxLineChars: 120, // काटने से पहले प्रति पंक्ति अधिकतम वर्ण (डिफ़ॉल्ट: 120)
          toolProgress: true, // टूल/प्रगति गतिविधि दिखाएँ (डिफ़ॉल्ट: true)
        },
      },
    },
  },
}
```

- `progress.label`: कस्टम लेबल, कॉन्फ़िगर किया गया या अंतर्निहित लेबल चुनने के लिए `"auto"`/सेट न किया हुआ, या इसे छिपाने के लिए `false`।
- `progress.labels`: केवल तभी उपयोग किए जाने वाले उम्मीदवार, जब `label`, `"auto"` हो या सेट न हो।
- `progress.maxLines`: ड्राफ़्ट में रखी जाने वाली अधिकतम क्रमागत प्रगति पंक्तियाँ; इससे अधिक होने पर पुरानी पंक्तियाँ हटा दी जाती हैं।
- `progress.maxLineChars`: काटने से पहले प्रत्येक संक्षिप्त प्रगति पंक्ति में वर्णों की अधिकतम संख्या।
- `progress.toolProgress`: `true` (डिफ़ॉल्ट) होने पर लाइव टूल/प्रगति गतिविधि ड्राफ़्ट में दिखाई देती है।

| `streaming.mode`  | व्यवहार                                                                                                                                                 |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `"off"` (डिफ़ॉल्ट) | पूरे उत्तर की प्रतीक्षा करें, एक बार भेजें।                                                                                                                      |
| `"partial"`       | मॉडल द्वारा वर्तमान ब्लॉक लिखते समय एक सामान्य टेक्स्ट संदेश को उसी स्थान पर संपादित करें। मानक क्लाइंट अंतिम संपादन पर नहीं, बल्कि पहले पूर्वावलोकन पर सूचना दे सकते हैं।          |
| `"quiet"`         | `"partial"` के समान, लेकिन संदेश सूचना न देने वाली सूचना है। अंतिम संपादन से प्रति-उपयोगकर्ता पुश नियम मेल खाने पर प्राप्तकर्ताओं को एक बार सूचित किया जाता है (नीचे देखें)। |
| `"progress"`      | प्रगति ड्राफ़्ट का उपयोग करके अलग-अलग संक्षिप्त प्रगति पंक्तियाँ भेजता है।                                                                                          |

`streaming.block.enabled` (डिफ़ॉल्ट `false`), `streaming.mode` से स्वतंत्र है:

| `streaming.mode`        | `block.enabled: true`                                               | `block.enabled: false` (डिफ़ॉल्ट)                     |
| ----------------------- | ------------------------------------------------------------------- | ---------------------------------------------------- |
| `"partial"` / `"quiet"` | वर्तमान ब्लॉक के लिए लाइव ड्राफ़्ट, पूर्ण ब्लॉक संदेशों के रूप में रखे जाते हैं | वर्तमान ब्लॉक के लिए लाइव ड्राफ़्ट, उसी स्थान पर अंतिम रूप दिया जाता है |
| `"off"`                 | प्रत्येक पूर्ण ब्लॉक के लिए एक सूचना देने वाला Matrix संदेश                     | पूरे उत्तर के लिए एक सूचना देने वाला Matrix संदेश      |

टिप्पणियाँ:

- यदि कोई पूर्वावलोकन Matrix की प्रति-इवेंट आकार सीमा से आगे बढ़ता है, तो OpenClaw पूर्वावलोकन स्ट्रीमिंग रोक देता है और केवल-अंतिम वितरण पर वापस चला जाता है।
- मीडिया उत्तर हमेशा अटैचमेंट सामान्य रूप से भेजते हैं; यदि किसी पुराने पूर्वावलोकन का सुरक्षित रूप से पुनः उपयोग नहीं किया जा सकता, तो OpenClaw अंतिम मीडिया उत्तर भेजने से पहले उसे हटा देता है।
- पूर्वावलोकन स्ट्रीमिंग सक्रिय होने पर टूल-प्रगति पूर्वावलोकन अपडेट डिफ़ॉल्ट रूप से चालू रहते हैं। उत्तर टेक्स्ट के लिए पूर्वावलोकन संपादन बनाए रखने लेकिन टूल प्रगति को सामान्य वितरण पथ पर छोड़ने के लिए `streaming.preview.toolProgress: false` सेट करें।
- पूर्वावलोकन संपादनों में अतिरिक्त Matrix API कॉल लगती हैं। सबसे रूढ़िवादी दर-सीमा प्रोफ़ाइल के लिए `streaming.mode: "off"` को यथावत रखें।
- पुराने स्केलर/बूलियन `streaming` मानों और समतल `blockStreaming` / `chunkMode` कुंजियों को `openclaw doctor --fix` द्वारा इस नेस्टेड संरचना में फिर से लिखा जाता है।

## वॉइस संदेश

इनबाउंड Matrix वॉइस नोट्स को रूम उल्लेख गेट से पहले ट्रांसक्राइब किया जाता है, इसलिए `requireMention: true` रूम में बॉट का नाम बोलने वाला वॉइस नोट एजेंट को ट्रिगर कर सकता है, और एजेंट को केवल ऑडियो अटैचमेंट प्लेसहोल्डर के बजाय ट्रांसक्रिप्ट मिलता है।

Matrix, `tools.media.audio` के अंतर्गत साझा ऑडियो मीडिया प्रदाता का उपयोग करता है, जैसे OpenAI `gpt-4o-mini-transcribe`। प्रदाता सेटअप और सीमाओं के लिए [मीडिया टूल का अवलोकन](/hi/tools/media-overview) देखें।

- `m.audio` इवेंट और `audio/*` MIME प्रकार वाले `m.file` इवेंट पात्र हैं।
- एन्क्रिप्टेड रूम में, OpenClaw ट्रांसक्रिप्शन से पहले मौजूदा Matrix मीडिया पथ के माध्यम से अटैचमेंट को डिक्रिप्ट करता है।
- एजेंट प्रॉम्प्ट में ट्रांसक्रिप्ट को मशीन-जनित और अविश्वसनीय के रूप में चिह्नित किया जाता है।
- अटैचमेंट को पहले से ट्रांसक्राइब किया हुआ चिह्नित किया जाता है, ताकि डाउनस्ट्रीम मीडिया टूल उसे दोबारा ट्रांसक्राइब न करें।
- ऑडियो ट्रांसक्रिप्शन को वैश्विक रूप से अक्षम करने के लिए `tools.media.audio.enabled: false` सेट करें।

## अनुमोदन मेटाडेटा

Matrix के मूल अनुमोदन प्रॉम्प्ट सामान्य `m.room.message` इवेंट होते हैं, जिनमें `com.openclaw.approval` कुंजी के अंतर्गत OpenClaw-विशिष्ट सामग्री होती है। सामान्य क्लाइंट फिर भी टेक्स्ट बॉडी रेंडर करते हैं; OpenClaw-संगत क्लाइंट संरचित अनुमोदन आईडी, प्रकार, स्थिति, निर्णय और exec/plugin विवरण पढ़ सकते हैं।

जब कोई प्रॉम्प्ट एक Matrix इवेंट के लिए बहुत लंबा होता है, तो OpenClaw दृश्यमान टेक्स्ट को खंडों में बाँटता है और केवल पहले खंड में `com.openclaw.approval` संलग्न करता है। अनुमति/अस्वीकृति प्रतिक्रियाएँ उसी पहले इवेंट से जुड़ती हैं, इसलिए लंबे प्रॉम्प्ट का अनुमोदन लक्ष्य एकल-इवेंट प्रॉम्प्ट जैसा ही रहता है।

### शांत अंतिम रूप दिए गए पूर्वावलोकनों के लिए स्वयं-होस्ट किए गए पुश नियम

`streaming.mode: "quiet"` प्राप्तकर्ताओं को केवल किसी ब्लॉक या टर्न को अंतिम रूप दिए जाने पर सूचित करता है—प्रति-उपयोगकर्ता पुश नियम को अंतिम रूप दिए गए पूर्वावलोकन मार्कर से मेल खाना चाहिए। पूरी विधि के लिए [शांत पूर्वावलोकनों हेतु Matrix पुश नियम](/hi/channels/matrix-push-rules) देखें।

## बॉट-से-बॉट रूम

डिफ़ॉल्ट रूप से, अन्य कॉन्फ़िगर किए गए OpenClaw Matrix खातों से आने वाले Matrix संदेशों को अनदेखा किया जाता है। इंटर-एजेंट ट्रैफ़िक को जानबूझकर अनुमति देने के लिए `allowBots` का उपयोग करें:

```json5
{
  channels: {
    matrix: {
      allowBots: "mentions", // true | "mentions"
      groups: {
        "!roomid:example.org": {
          requireMention: true,
        },
      },
    },
  },
}
```

- `allowBots: true` अनुमत रूम और DM में अन्य कॉन्फ़िगर किए गए Matrix बॉट खातों से संदेश स्वीकार करता है।
- `allowBots: "mentions"` रूम में उन संदेशों को केवल तभी स्वीकार करता है, जब उनमें इस बॉट का स्पष्ट उल्लेख हो; DM फिर भी हमेशा अनुमत रहते हैं।
- `groups.<room>.allowBots` एक रूम के लिए खाता-स्तरीय सेटिंग को ओवरराइड करता है।
- स्वीकार किए गए कॉन्फ़िगर-बॉट संदेश साझा [बॉट लूप सुरक्षा](/hi/channels/bot-loop-protection) का उपयोग करते हैं। `channels.defaults.botLoopProtection` कॉन्फ़िगर करें, फिर प्रति-खाता `channels.matrix.botLoopProtection` या प्रति-रूम `channels.matrix.groups.<room>.botLoopProtection` से ओवरराइड करें।
- स्व-उत्तर लूप से बचने के लिए OpenClaw अब भी उसी Matrix उपयोगकर्ता आईडी से आए संदेशों को अनदेखा करता है।
- Matrix में कोई मूल बॉट फ़्लैग नहीं है; OpenClaw "बॉट द्वारा लिखा गया" का अर्थ "इस OpenClaw Gateway पर किसी अन्य कॉन्फ़िगर किए गए Matrix खाते द्वारा भेजा गया" मानता है।

साझा रूम में बॉट-से-बॉट ट्रैफ़िक सक्षम करते समय सख्त रूम अनुमति-सूचियों और उल्लेख आवश्यकताओं का उपयोग करें।

## एन्क्रिप्शन और सत्यापन

एन्क्रिप्टेड (E2EE) रूम में, आउटबाउंड इमेज इवेंट `thumbnail_file` का उपयोग करते हैं, ताकि इमेज पूर्वावलोकन पूरे अटैचमेंट के साथ एन्क्रिप्ट हों; अनएन्क्रिप्टेड रूम साधारण `thumbnail_url` का उपयोग करते हैं। किसी कॉन्फ़िगरेशन की आवश्यकता नहीं है—Plugin स्वचालित रूप से E2EE स्थिति का पता लगाता है।

सभी `openclaw matrix` कमांड `--verbose` (पूर्ण निदान), `--json` (मशीन-पठनीय आउटपुट) और `--account <id>` (बहु-खाता सेटअप) स्वीकार करते हैं। डिफ़ॉल्ट रूप से आउटपुट संक्षिप्त होता है।

### एन्क्रिप्शन सक्षम करें

```bash
openclaw matrix encryption setup
printf '%s\n' "$MATRIX_RECOVERY_KEY" | openclaw matrix encryption setup --recovery-key-stdin
```

यह गुप्त भंडारण और क्रॉस-साइनिंग को बूटस्ट्रैप करता है, आवश्यकता होने पर रूम-कुंजी बैकअप बनाता है, फिर स्थिति और अगले चरण प्रिंट करता है। उपयोगी फ़्लैग:

- `--recovery-key-stdin` पुनर्प्राप्ति कुंजी को प्रोसेस आर्ग्युमेंट में उजागर किए बिना stdin से पढ़ता है; संगतता के लिए `--recovery-key <key>` उपलब्ध रहता है
- `--force-reset-cross-signing` वर्तमान क्रॉस-साइनिंग पहचान को त्यागकर नई पहचान बनाता है (केवल जानबूझकर उपयोग के लिए)

किसी नए खाते के लिए, खाता बनाते समय E2EE सक्षम करें:

```bash
openclaw matrix account add \
  --homeserver https://matrix.example.org \
  --access-token syt_xxx \
  --enable-e2ee
```

`--encryption`, `--enable-e2ee` का उपनाम है। समकक्ष मैन्युअल कॉन्फ़िगरेशन:

```json5
{
  channels: {
    matrix: {
      enabled: true,
      homeserver: "https://matrix.example.org",
      accessToken: "syt_xxx",
      encryption: true,
      dm: { policy: "pairing" },
    },
  },
}
```

### स्थिति और विश्वसनीयता संकेत

```bash
openclaw matrix verify status
openclaw matrix verify status --include-recovery-key --json
```

`verify status` तीन स्वतंत्र विश्वसनीयता संकेतों की रिपोर्ट करता है (`--verbose` उन सभी को दिखाता है):

- `Locally trusted`: केवल इस क्लाइंट द्वारा विश्वसनीय
- `Cross-signing verified`: SDK क्रॉस-साइनिंग के माध्यम से सत्यापन की रिपोर्ट करता है
- `Signed by owner`: आपकी अपनी स्व-साइनिंग कुंजी द्वारा हस्ताक्षरित (केवल निदान के लिए)

`Verified by owner`, `yes` केवल तभी है, जब `Cross-signing verified`, `yes` हो; केवल स्थानीय विश्वास या स्वामी का हस्ताक्षर पर्याप्त नहीं है।

`--allow-degraded-local-state` Matrix खाते को पहले तैयार किए बिना सर्वोत्तम-प्रयास निदान लौटाता है; यह ऑफ़लाइन या आंशिक रूप से कॉन्फ़िगर की गई जाँच के लिए उपयोगी है।

### पुनर्प्राप्ति कुंजी से इस डिवाइस को सत्यापित करें

कुंजी को कमांड लाइन पर देने के बजाय पुनर्प्राप्ति कुंजी को stdin के माध्यम से पाइप करें:

```bash
printf '%s\n' "$MATRIX_RECOVERY_KEY" | openclaw matrix verify device --recovery-key-stdin
```

कमांड तीन स्थितियों की रिपोर्ट करता है:

- `Recovery key accepted`: Matrix ने गुप्त भंडारण या डिवाइस विश्वास के लिए कुंजी स्वीकार कर ली।
- `Backup usable`: विश्वसनीय पुनर्प्राप्ति सामग्री से रूम-कुंजी बैकअप लोड किया जा सकता है।
- `Device verified by owner`: इस डिवाइस को पूर्ण Matrix क्रॉस-साइनिंग पहचान विश्वास प्राप्त है।

पूर्ण पहचान विश्वास अधूरा होने पर यह गैर-शून्य स्थिति के साथ बाहर निकलता है, भले ही पुनर्प्राप्ति कुंजी ने बैकअप सामग्री अनलॉक कर दी हो। ऐसी स्थिति में, किसी अन्य Matrix क्लाइंट से स्व-सत्यापन पूरा करें:

```bash
openclaw matrix verify self
```

`verify self` सफलतापूर्वक बाहर निकलने से पहले `Cross-signing verified: yes` की प्रतीक्षा करता है। प्रतीक्षा समायोजित करने के लिए `--timeout-ms <ms>` का उपयोग करें।

शाब्दिक-कुंजी रूप `openclaw matrix verify device "<recovery-key>"` भी काम करता है, लेकिन कुंजी शेल इतिहास में दर्ज हो जाती है।

### क्रॉस-साइनिंग को बूटस्ट्रैप या सुधारें

```bash
openclaw matrix verify bootstrap
```

यह एन्क्रिप्टेड खातों के लिए सुधार/सेटअप कमांड है। क्रम से, यह:

- गुप्त भंडारण को बूटस्ट्रैप करता है और जहाँ संभव हो, मौजूदा पुनर्प्राप्ति कुंजी का पुनः उपयोग करता है
- क्रॉस-साइनिंग को बूटस्ट्रैप करता है और अनुपलब्ध सार्वजनिक कुंजियाँ अपलोड करता है
- वर्तमान डिवाइस को चिह्नित और क्रॉस-साइन करता है
- यदि पहले से मौजूद न हो, तो सर्वर-साइड रूम-कुंजी बैकअप बनाता है

यदि होमसर्वर को क्रॉस-साइनिंग कुंजियाँ अपलोड करने के लिए UIA की आवश्यकता है, तो OpenClaw पहले बिना प्रमाणीकरण के प्रयास करता है, फिर `m.login.dummy`, और उसके बाद `m.login.password` (जिसके लिए `channels.matrix.password` आवश्यक है) आज़माता है।

उपयोगी फ़्लैग:

- `--recovery-key-stdin` (`printf '%s\n' "$MATRIX_RECOVERY_KEY" | ...` के साथ उपयोग करें) या `--recovery-key <key>`
- `--force-reset-cross-signing` वर्तमान क्रॉस-साइनिंग पहचान को त्यागने के लिए (केवल जानबूझकर; सक्रिय पुनर्प्राप्ति कुंजी का संग्रहीत होना या `--recovery-key-stdin` के साथ दिया जाना आवश्यक है)

### रूम-कुंजी बैकअप

```bash
openclaw matrix verify backup status
printf '%s\n' "$MATRIX_RECOVERY_KEY" | openclaw matrix verify backup restore --recovery-key-stdin
```

`backup status` दिखाता है कि सर्वर-साइड बैकअप मौजूद है या नहीं और यह डिवाइस उसे डिक्रिप्ट कर सकता है या नहीं। `backup restore` बैकअप की गई रूम कुंजियों को स्थानीय क्रिप्टो स्टोर में आयात करता है; यदि पुनर्प्राप्ति कुंजी पहले से डिस्क पर है, तो `--recovery-key-stdin` छोड़ दें।

टूटे हुए बैकअप को नई आधाररेखा से बदलने के लिए (पुनर्प्राप्त न हो सकने वाले पुराने इतिहास को खोना स्वीकार करता है; यदि वर्तमान बैकअप सीक्रेट लोड नहीं हो सकता, तो गुप्त भंडारण भी दोबारा बना सकता है):

```bash
openclaw matrix verify backup reset --yes
```

`--rotate-recovery-key` केवल तभी जोड़ें, जब पिछली पुनर्प्राप्ति कुंजी से नई बैकअप आधाररेखा को अनलॉक करना जानबूझकर बंद करना हो।

### सत्यापनों को सूचीबद्ध करना, अनुरोध करना और उनका उत्तर देना

```bash
openclaw matrix verify list
```

चयनित खाते के लिए लंबित सत्यापन अनुरोधों को सूचीबद्ध करता है।

```bash
openclaw matrix verify request --own-user
openclaw matrix verify request --user-id @ops:example.org --device-id ABCDEF
```

इस खाते से सत्यापन अनुरोध भेजता है। `--own-user` स्व-सत्यापन का अनुरोध करता है (उसी उपयोगकर्ता के किसी अन्य Matrix क्लाइंट में प्रॉम्प्ट स्वीकार करें); `--user-id`/`--device-id`/`--room-id` किसी अन्य व्यक्ति को लक्षित करते हैं। `--own-user` को अन्य लक्ष्यीकरण फ़्लैग के साथ जोड़ा नहीं जा सकता।

निम्न-स्तरीय जीवनचक्र प्रबंधन के लिए—आमतौर पर किसी अन्य क्लाइंट से आने वाले अनुरोधों की निगरानी करते समय—ये कमांड किसी विशिष्ट अनुरोध `<id>` पर कार्य करते हैं (जिसे `verify list` और `verify request` प्रिंट करते हैं):

| कमांड                                    | उद्देश्य                                                             |
| ------------------------------------------ | ------------------------------------------------------------------- |
| `openclaw matrix verify accept <id>`       | इनबाउंड अनुरोध स्वीकार करना                                           |
| `openclaw matrix verify start <id>`        | SAS प्रवाह शुरू करना                                                  |
| `openclaw matrix verify sas <id>`          | SAS इमोजी या दशमलव प्रिंट करना                                     |
| `openclaw matrix verify confirm-sas <id>`  | पुष्टि करना कि SAS दूसरे क्लाइंट द्वारा दिखाए गए मान से मेल खाता है            |
| `openclaw matrix verify mismatch-sas <id>` | इमोजी या दशमलव मेल न खाने पर SAS अस्वीकार करना              |
| `openclaw matrix verify cancel <id>`       | रद्द करना; वैकल्पिक `--reason <text>` और `--code <matrix-code>` स्वीकार करता है |

`accept`, `start`, `sas`, `confirm-sas`, `mismatch-sas`, और `cancel` सभी `--user-id` और `--room-id` को DM फ़ॉलो-अप संकेतों के रूप में स्वीकार करते हैं, जब सत्यापन किसी विशिष्ट डायरेक्ट-मैसेज रूम से जुड़ा हो।

### बहु-खाता संबंधी टिप्पणियाँ

`--account <id>` के बिना, Matrix CLI कमांड अंतर्निहित डिफ़ॉल्ट खाते का उपयोग करते हैं। कई नामित खाते होने और `channels.matrix.defaultAccount` न दिए जाने पर, कमांड अनुमान लगाने से इनकार करते हैं और आपसे खाता चुनने को कहते हैं। किसी नामित खाते के लिए E2EE अक्षम या अनुपलब्ध होने पर, त्रुटियाँ उस खाते की कॉन्फ़िगरेशन कुंजी की ओर संकेत करती हैं, उदाहरण के लिए `channels.matrix.accounts.assistant.encryption`।

<AccordionGroup>
  <Accordion title="स्टार्टअप व्यवहार">
    `encryption: true` के साथ, `startupVerification` डिफ़ॉल्ट रूप से `"if-unverified"` होता है। स्टार्टअप पर कोई असत्यापित डिवाइस दूसरे Matrix क्लाइंट में स्व-सत्यापन का अनुरोध करता है, डुप्लिकेट अनुरोध छोड़ता है और कूलडाउन लागू करता है (डिफ़ॉल्ट रूप से 24 घंटे)। `startupVerificationCooldownHours` से समायोजित करें या `startupVerification: "off"` से अक्षम करें।

    स्टार्टअप मौजूदा गुप्त भंडारण और क्रॉस-साइनिंग पहचान का पुनः उपयोग करते हुए एक सावधानीपूर्ण क्रिप्टो बूटस्ट्रैप चरण भी चलाता है। यदि बूटस्ट्रैप स्थिति टूटी हुई है, तो OpenClaw `channels.matrix.password` के बिना भी नियंत्रित सुधार का प्रयास करता है; यदि होमसर्वर को पासवर्ड UIA की आवश्यकता होती है, तो स्टार्टअप चेतावनी लॉग करता है और गैर-घातक बना रहता है। स्वामी द्वारा पहले से हस्ताक्षरित डिवाइस सुरक्षित रखे जाते हैं।

    पूर्ण अपग्रेड प्रवाह के लिए [Matrix माइग्रेशन](/hi/channels/matrix-migration) देखें।

  </Accordion>

  <Accordion title="सत्यापन सूचनाएँ">
    Matrix सख्त DM सत्यापन रूम में सत्यापन जीवनचक्र सूचनाएँ `m.notice` संदेशों के रूप में पोस्ट करता है: अनुरोध, तैयार ("Verify by emoji" मार्गदर्शन के साथ), प्रारंभ/पूर्णता और उपलब्ध होने पर SAS (इमोजी/दशमलव) विवरण।

    किसी अन्य Matrix क्लाइंट से आने वाले अनुरोध ट्रैक और स्वतः स्वीकार किए जाते हैं। स्व-सत्यापन के लिए, OpenClaw SAS प्रवाह स्वचालित रूप से शुरू करता है और इमोजी सत्यापन उपलब्ध होते ही अपनी ओर से पुष्टि करता है—आपको फिर भी अपने Matrix क्लाइंट में इमोजी की तुलना करके "They match" की पुष्टि करनी होगी।

    सत्यापन सिस्टम सूचनाएँ एजेंट चैट पाइपलाइन को अग्रेषित नहीं की जाती हैं।

  </Accordion>

  <Accordion title="हटाया गया या अमान्य Matrix डिवाइस">
    यदि `verify status` बताता है कि वर्तमान डिवाइस अब होमसर्वर पर सूचीबद्ध नहीं है, तो नया OpenClaw Matrix डिवाइस बनाएँ। पासवर्ड लॉगिन के लिए:

```bash
openclaw matrix account add \
  --account assistant \
  --homeserver https://matrix.example.org \
  --user-id '@assistant:example.org' \
  --password '<password>' \
  --device-name OpenClaw-Gateway
```

    टोकन प्रमाणीकरण के लिए, अपने Matrix क्लाइंट या एडमिन UI में नया एक्सेस टोकन बनाएँ, फिर OpenClaw अपडेट करें:

```bash
openclaw matrix account add \
  --account assistant \
  --homeserver https://matrix.example.org \
  --access-token '<token>'
```

    विफल कमांड से प्राप्त खाता ID से `assistant` को बदलें, या डिफ़ॉल्ट खाते के लिए `--account` को छोड़ दें।

  </Accordion>

  <Accordion title="डिवाइस स्वच्छता">
    OpenClaw द्वारा प्रबंधित पुराने डिवाइस जमा हो सकते हैं। उन्हें सूचीबद्ध करें और अप्रचलित डिवाइस हटाएँ:

```bash
openclaw matrix devices list
openclaw matrix devices prune-stale
```

  </Accordion>

  <Accordion title="क्रिप्टो स्टोर">
    Matrix E2EE, IndexedDB शिम के रूप में `fake-indexeddb` के साथ आधिकारिक `matrix-js-sdk` Rust क्रिप्टो पथ का उपयोग करता है। क्रिप्टो स्थिति `crypto-idb-snapshot.json` में बनी रहती है (प्रतिबंधात्मक फ़ाइल अनुमतियों के साथ)।

    एन्क्रिप्टेड रनटाइम स्थिति `~/.openclaw/matrix/accounts/<account>/<homeserver>__<user>/<token-hash>/` के अंतर्गत रहती है और इसमें सिंक स्टोर, क्रिप्टो स्टोर, पुनर्प्राप्ति कुंजी, IDB स्नैपशॉट, थ्रेड बाइंडिंग और स्टार्टअप सत्यापन स्थिति शामिल होती है। जब टोकन बदलता है लेकिन खाते की पहचान समान रहती है, तो OpenClaw सर्वोत्तम मौजूदा रूट का पुनः उपयोग करता है, ताकि पिछली स्थिति दिखाई देती रहे।

    एकमात्र पुराना टोकन-हैश रूट, टोकन रोटेशन की सामान्य निरंतरता का पथ हो सकता है। यदि OpenClaw `matrix: multiple populated token-hash storage roots detected` लॉग करता है, तो खाता डायरेक्टरी की जाँच करें और चयनित सक्रिय रूट के स्वस्थ होने की पुष्टि करने के बाद ही अप्रचलित सिबलिंग रूट को संग्रहित करें। अप्रचलित रूट को तुरंत हटाने के बजाय उन्हें `_archive/` डायरेक्टरी में ले जाना बेहतर है।

  </Accordion>
</AccordionGroup>

## प्रोफ़ाइल प्रबंधन

```bash
openclaw matrix profile set --name "OpenClaw Assistant"
openclaw matrix profile set --avatar-url https://cdn.example.org/avatar.png
```

दोनों विकल्प एक ही कॉल में पास करें। Matrix सीधे `mxc://` अवतार URL स्वीकार करता है; `http://`/`https://` पास करने पर पहले फ़ाइल अपलोड होती है और समाधान किया गया `mxc://` URL, `channels.matrix.avatarUrl` (या प्रति-खाता ओवरराइड) में संग्रहीत होता है।

## थ्रेड

Matrix स्वचालित उत्तरों और संदेश-टूल से भेजे गए संदेशों, दोनों के लिए नेटिव थ्रेड का समर्थन करता है। दो स्वतंत्र नियंत्रण व्यवहार निर्धारित करते हैं:

### सत्र रूटिंग (`sessionScope`)

`dm.sessionScope` निर्धारित करता है कि Matrix DM रूम OpenClaw सत्रों से कैसे मैप होते हैं:

- `"per-user"` (डिफ़ॉल्ट): समान रूट किए गए पीयर वाले सभी DM रूम एक ही सत्र साझा करते हैं।
- `"per-room"`: प्रत्येक Matrix DM रूम को अपनी अलग सत्र कुंजी मिलती है, भले ही पीयर समान हो।

स्पष्ट वार्तालाप बाइंडिंग को हमेशा `sessionScope` पर प्राथमिकता मिलती है; बाउंड रूम और थ्रेड अपने चुने हुए लक्ष्य सत्र को बनाए रखते हैं।

### उत्तर थ्रेडिंग (`threadReplies`)

`threadReplies` निर्धारित करता है कि बॉट अपना उत्तर कहाँ पोस्ट करता है:

- `"off"`: उत्तर शीर्ष-स्तर पर होते हैं। इनबाउंड थ्रेडेड संदेश पैरेंट सत्र पर बने रहते हैं।
- `"inbound"`: केवल तभी किसी थ्रेड के भीतर उत्तर दें, जब इनबाउंड संदेश पहले से उसी थ्रेड में था।
- `"always"`: ट्रिगर करने वाले संदेश पर आधारित थ्रेड के भीतर उत्तर दें; वह वार्तालाप पहले ट्रिगर से आगे मिलान करने वाले थ्रेड-स्कोप्ड सत्र के माध्यम से रूट होता है।

`dm.threadReplies` इसे केवल DM के लिए ओवरराइड करता है—उदाहरण के लिए, DM को समतल रखते हुए रूम थ्रेड को अलग रखें।

### थ्रेड इनहेरिटेंस और स्लैश कमांड

- इनबाउंड थ्रेडेड संदेशों में अतिरिक्त एजेंट संदर्भ के रूप में थ्रेड का मूल संदेश शामिल होता है।
- समान रूम (या समान DM उपयोगकर्ता लक्ष्य) को लक्षित करते समय संदेश-टूल से भेजे गए संदेश वर्तमान Matrix थ्रेड को स्वतः इनहेरिट करते हैं, जब तक कि स्पष्ट `threadId` न दिया गया हो।
- DM उपयोगकर्ता-लक्ष्य का पुनः उपयोग तभी सक्रिय होता है, जब वर्तमान सत्र मेटाडेटा उसी Matrix खाते पर समान DM पीयर को प्रमाणित करता है; अन्यथा OpenClaw सामान्य उपयोगकर्ता-स्कोप्ड रूटिंग पर वापस जाता है।
- `/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age`, और थ्रेड-बाउंड `/acp spawn` सभी Matrix रूम और DM में काम करते हैं।
- जब `threadBindings.spawnSessions` सक्षम होता है, तब शीर्ष-स्तरीय `/focus` एक नया Matrix थ्रेड बनाता है और उसे लक्ष्य सत्र से बाइंड करता है।
- किसी मौजूदा Matrix थ्रेड के भीतर `/focus` या `/acp spawn --thread here` चलाने पर वही थ्रेड यथास्थान बाइंड हो जाता है।

जब OpenClaw किसी Matrix DM रूम को समान साझा सत्र पर किसी अन्य DM रूम से टकराते हुए पहचानता है, तो यह `/focus` बचाव-पथ की ओर संकेत करने वाली और `dm.sessionScope` परिवर्तन का सुझाव देने वाली एकबारगी `m.notice` पोस्ट करता है। यह सूचना केवल थ्रेड बाइंडिंग सक्षम होने पर दिखाई देती है।

## ACP वार्तालाप बाइंडिंग

Matrix रूम, DM और मौजूदा Matrix थ्रेड, चैट सतह बदले बिना स्थायी ACP कार्यस्थान बन सकते हैं।

त्वरित ऑपरेटर प्रवाह:

- उपयोग जारी रखने के लिए Matrix DM, रूम या मौजूदा थ्रेड के भीतर `/acp spawn codex --bind here` चलाएँ।
- शीर्ष-स्तरीय DM या रूम में, वर्तमान DM/रूम चैट सतह बना रहता है और भविष्य के संदेश बनाए गए ACP सत्र पर रूट होते हैं।
- किसी मौजूदा थ्रेड के भीतर, `--bind here` उसी वर्तमान थ्रेड को यथास्थान बाइंड करता है।
- `/new` और `/reset` उसी बाउंड ACP सत्र को यथास्थान रीसेट करते हैं।
- `/acp close` ACP सत्र को बंद करता है और बाइंडिंग हटाता है।

`--bind here` कोई चाइल्ड Matrix थ्रेड नहीं बनाता। `threadBindings.spawnSessions`, `/acp spawn --thread auto|here` को नियंत्रित करता है, जहाँ OpenClaw को चाइल्ड थ्रेड बनाना या बाइंड करना आवश्यक होता है।

### थ्रेड बाइंडिंग कॉन्फ़िगरेशन

Matrix, `session.threadBindings` से वैश्विक डिफ़ॉल्ट इनहेरिट करता है और प्रति-चैनल ओवरराइड का समर्थन करता है:

- `threadBindings.enabled`
- `threadBindings.idleHours`
- `threadBindings.maxAgeHours`
- `threadBindings.spawnSessions`: सबएजेंट और ACP थ्रेड स्पॉन, दोनों को नियंत्रित करता है।
- बहिष्कृत `threadBindings.spawnSubagentSessions` / `threadBindings.spawnAcpSessions` कुंजियों को `openclaw doctor --fix` द्वारा `spawnSessions` में माइग्रेट किया जाता है।
- `threadBindings.defaultSpawnContext`

Matrix थ्रेड-बाउंड सत्र स्पॉन डिफ़ॉल्ट रूप से चालू होते हैं। शीर्ष-स्तरीय `/focus` और `/acp spawn --thread auto|here` को Matrix थ्रेड बनाने/बाइंड करने से रोकने के लिए `threadBindings.spawnSessions: false` सेट करें। जब नेटिव सबएजेंट थ्रेड स्पॉन को पैरेंट ट्रांसक्रिप्ट फ़ोर्क नहीं करना चाहिए, तब `threadBindings.defaultSpawnContext: "isolated"` सेट करें।

## प्रतिक्रियाएँ

Matrix आउटबाउंड प्रतिक्रियाओं, इनबाउंड प्रतिक्रिया सूचनाओं और अभिस्वीकृति प्रतिक्रियाओं का समर्थन करता है।

आउटबाउंड प्रतिक्रिया टूलिंग को `channels.matrix.actions.reactions` नियंत्रित करता है:

- `react` किसी Matrix इवेंट में प्रतिक्रिया जोड़ता है।
- `reactions` किसी Matrix इवेंट के लिए वर्तमान प्रतिक्रिया सारांश सूचीबद्ध करता है।
- `emoji=""` उस इवेंट पर बॉट की अपनी प्रतिक्रियाएँ हटाता है।
- `remove: true` बॉट से केवल निर्दिष्ट इमोजी प्रतिक्रिया हटाता है।

**समाधान क्रम** (पहला परिभाषित मान प्रभावी होता है):

| सेटिंग                 | क्रम                                                                               |
| ----------------------- | ----------------------------------------------------------------------------------- |
| `ackReaction`           | प्रति-खाता -> चैनल -> `messages.ackReaction` -> एजेंट पहचान इमोजी फ़ॉलबैक   |
| `ackReactionScope`      | प्रति-खाता -> चैनल -> `messages.ackReactionScope` -> डिफ़ॉल्ट `"group-mentions"` |
| `reactionNotifications` | प्रति-खाता -> चैनल -> डिफ़ॉल्ट `"own"`                                           |

`reactionNotifications: "own"` जोड़े गए `m.reaction` इवेंट को तब अग्रेषित करता है, जब वे बॉट द्वारा लिखे गए Matrix संदेशों को लक्षित करते हैं; `"off"` प्रतिक्रिया सिस्टम इवेंट अक्षम करता है। प्रतिक्रियाओं को हटाना सिस्टम इवेंट में संश्लेषित नहीं किया जाता—Matrix उन्हें स्वतंत्र `m.reaction` निष्कासन के बजाय रिडैक्शन के रूप में प्रदर्शित करता है।

## इतिहास संदर्भ

- `channels.matrix.historyLimit` नियंत्रित करता है कि किसी रूम संदेश द्वारा एजेंट को ट्रिगर करने पर कितने हालिया रूम संदेश `InboundHistory` के रूप में शामिल किए जाते हैं। यह `messages.groupChat.historyLimit` पर फ़ॉलबैक करता है; यदि दोनों सेट न हों, तो प्रभावी डिफ़ॉल्ट `0` होता है (अक्षम)।
- Matrix रूम इतिहास केवल रूम तक सीमित होता है; DM सामान्य सत्र इतिहास का उपयोग जारी रखते हैं।
- रूम इतिहास केवल लंबित संदेशों का होता है: OpenClaw उन रूम संदेशों को बफ़र करता है जिन्होंने अभी तक उत्तर ट्रिगर नहीं किया है, फिर उल्लेख या अन्य ट्रिगर आने पर उस विंडो का स्नैपशॉट लेता है।
- वर्तमान ट्रिगर संदेश `InboundHistory` में शामिल नहीं होता; वह उस टर्न के लिए मुख्य इनबाउंड बॉडी में बना रहता है।
- समान Matrix इवेंट के पुनः प्रयास, नए रूम संदेशों की ओर आगे बढ़ने के बजाय मूल इतिहास स्नैपशॉट का पुनः उपयोग करते हैं।

## संदर्भ दृश्यता

Matrix, प्राप्त किए गए उत्तर टेक्स्ट, थ्रेड रूट और लंबित इतिहास जैसे पूरक रूम संदर्भ के लिए साझा `contextVisibility` नियंत्रण का समर्थन करता है।

- `contextVisibility: "all"` डिफ़ॉल्ट है। पूरक संदर्भ प्राप्त रूप में रखा जाता है।
- `contextVisibility: "allowlist"` पूरक संदर्भ को सक्रिय रूम/उपयोगकर्ता अनुमतिसूची जाँच द्वारा अनुमत प्रेषकों तक फ़िल्टर करता है।
- `contextVisibility: "allowlist_quote"`, `allowlist` की तरह व्यवहार करता है, लेकिन फिर भी एक स्पष्ट उद्धृत उत्तर बनाए रखता है।

यह केवल पूरक संदर्भ की दृश्यता को प्रभावित करता है, न कि यह कि इनबाउंड संदेश स्वयं उत्तर ट्रिगर कर सकता है या नहीं। ट्रिगर प्राधिकरण अब भी `groupPolicy`, `groups`, `groupAllowFrom`, और DM नीति सेटिंग से आता है।

## DM और रूम नीति

```json5
{
  channels: {
    matrix: {
      dm: {
        policy: "allowlist",
        allowFrom: ["@admin:example.org"],
        threadReplies: "off",
      },
      groupPolicy: "allowlist",
      groupAllowFrom: ["@admin:example.org"],
      groups: {
        "!roomid:example.org": { requireMention: true },
      },
    },
  },
}
```

रूम को चालू रखते हुए DM को पूरी तरह मौन करने के लिए `dm.enabled: false` सेट करें:

```json5
{
  channels: {
    matrix: {
      dm: { enabled: false },
      groupPolicy: "allowlist",
      groupAllowFrom: ["@admin:example.org"],
    },
  },
}
```

उल्लेख-गेटिंग और अनुमतिसूची व्यवहार के लिए [समूह](/hi/channels/groups) देखें।

Matrix DM के लिए पेयरिंग उदाहरण:

```bash
openclaw pairing list matrix
openclaw pairing approve matrix <CODE>
```

यदि कोई अस्वीकृत Matrix उपयोगकर्ता स्वीकृति से पहले संदेश भेजता रहता है, तो OpenClaw उसी लंबित पेयरिंग कोड का पुनः उपयोग करता है और नया कोड बनाने के बजाय एक छोटे कूलडाउन के बाद अनुस्मारक उत्तर भेज सकता है।

साझा DM पेयरिंग प्रवाह और स्टोरेज लेआउट के लिए [पेयरिंग](/hi/channels/pairing) देखें।

## डायरेक्ट रूम सुधार

यदि डायरेक्ट-संदेश स्थिति में विचलन आ जाता है, तो OpenClaw में पुराने एकल रूम की ओर संकेत करने वाली अप्रचलित `m.direct` मैपिंग रह सकती हैं, जबकि उन्हें सक्रिय DM की ओर संकेत करना चाहिए। किसी पीयर के लिए वर्तमान मैपिंग की जाँच करें:

```bash
openclaw matrix direct inspect --user-id @alice:example.org
```

इसे सुधारें:

```bash
openclaw matrix direct repair --user-id @alice:example.org
```

बहु-खाता सेटअप के लिए दोनों कमांड `--account <id>` स्वीकार करते हैं। सुधार प्रवाह:

- `m.direct` में पहले से मैप किए गए सख्त 1:1 DM को प्राथमिकता देता है
- उस उपयोगकर्ता के साथ वर्तमान में जुड़े किसी भी सख्त 1:1 DM पर फ़ॉलबैक करता है
- यदि कोई स्वस्थ DM मौजूद नहीं है, तो नया डायरेक्ट रूम बनाता है और `m.direct` को पुनः लिखता है

यह पुराने रूम को स्वतः नहीं हटाता। यह स्वस्थ DM चुनता है और मैपिंग अपडेट करता है, ताकि भविष्य के Matrix संदेश, सत्यापन सूचनाएँ और अन्य डायरेक्ट-संदेश प्रवाह सही रूम को लक्षित करें।

## निष्पादन स्वीकृतियाँ

Matrix एक नेटिव स्वीकृति क्लाइंट के रूप में कार्य कर सकता है। `channels.matrix.execApprovals` के अंतर्गत कॉन्फ़िगर करें (या प्रति-खाता ओवरराइड के लिए `channels.matrix.accounts.<account>.execApprovals`):

- `enabled`: Matrix-नेटिव प्रॉम्प्ट के माध्यम से स्वीकृतियाँ वितरित करें। अनसेट या `"auto"` होने पर, कम-से-कम एक अनुमोदक का समाधान होते ही यह स्वतः सक्षम हो जाता है; स्पष्ट रूप से अक्षम करने के लिए `false` सेट करें।
- `approvers`: निष्पादन अनुरोध स्वीकृत करने की अनुमति वाले Matrix उपयोगकर्ता ID (`@owner:example.org`)। यह `channels.matrix.dm.allowFrom` पर फ़ॉलबैक करता है।
- `target`: प्रॉम्प्ट कहाँ जाएँ। `"dm"` (डिफ़ॉल्ट) अनुमोदक के DM में भेजता है; `"channel"` मूल रूम या DM में भेजता है; `"both"` दोनों में भेजता है।
- `agentFilter` / `sessionFilter`: किन एजेंटों/सत्रों द्वारा Matrix वितरण ट्रिगर किया जाए, इसके लिए वैकल्पिक अनुमतिसूचियाँ।

स्वीकृति के प्रकारों के बीच प्राधिकरण थोड़ा भिन्न होता है:

- **Exec अनुमोदन** `execApprovals.approvers` का उपयोग करते हैं और उपलब्ध न होने पर `dm.allowFrom` का उपयोग करते हैं।
- **Plugin अनुमोदन** केवल `dm.allowFrom` के माध्यम से प्राधिकृत करते हैं।

दोनों प्रकार Matrix प्रतिक्रिया शॉर्टकट और संदेश अपडेट साझा करते हैं। अनुमोदकों को प्राथमिक अनुमोदन संदेश पर प्रतिक्रिया शॉर्टकट दिखाई देते हैं:

- ✅ एक बार अनुमति दें
- ❌ अस्वीकार करें
- ♾️ हमेशा अनुमति दें (जब प्रभावी exec नीति इसकी अनुमति देती है)

फ़ॉलबैक स्लैश कमांड: `/approve <id> allow-once`, `/approve <id> allow-always`, `/approve <id> deny`।

केवल निर्धारित अनुमोदक ही अनुमोदन या अस्वीकार कर सकते हैं। exec अनुमोदनों के लिए चैनल डिलीवरी में कमांड टेक्स्ट शामिल होता है—`channel` या `both` को केवल विश्वसनीय रूम में सक्षम करें।

संबंधित: [Exec अनुमोदन](/hi/tools/exec-approvals)।

## स्लैश कमांड

स्लैश कमांड (`/new`, `/reset`, `/model`, `/focus`, `/unfocus`, `/agents`, `/session`, `/acp`, `/approve`, आदि) सीधे DM में काम करते हैं। रूम में, OpenClaw बॉट के अपने Matrix उल्लेख से पहले लगाए गए कमांड को भी पहचानता है, इसलिए `@bot:server /new` किसी कस्टम उल्लेख regex के बिना कमांड पथ को ट्रिगर करता है—इससे बॉट रूम-शैली की उन `@mention /command` पोस्ट के प्रति प्रतिक्रियाशील रहता है जिन्हें Element और इसी तरह के क्लाइंट तब भेजते हैं, जब उपयोगकर्ता कमांड टाइप करने से पहले बॉट का नाम टैब-कम्प्लीट करता है।

प्राधिकरण नियम फिर भी लागू होते हैं: कमांड भेजने वालों को सामान्य संदेशों जैसी ही DM या रूम अनुमति-सूची/स्वामी नीतियों को पूरा करना होगा।

## एकाधिक खाते

```json5
{
  channels: {
    matrix: {
      enabled: true,
      defaultAccount: "assistant",
      dm: { policy: "pairing" },
      accounts: {
        assistant: {
          homeserver: "https://matrix.example.org",
          accessToken: "syt_assistant_xxx",
          encryption: true,
        },
        alerts: {
          homeserver: "https://matrix.example.org",
          accessToken: "syt_alerts_xxx",
          dm: {
            policy: "allowlist",
            allowFrom: ["@ops:example.org"],
            threadReplies: "off",
          },
        },
      },
    },
  },
}
```

**इनहेरिटेंस:**

- शीर्ष-स्तरीय `channels.matrix` मान नामित खातों के लिए डिफ़ॉल्ट के रूप में काम करते हैं, जब तक कोई खाता उन्हें ओवरराइड न करे।
- इनहेरिट की गई रूम प्रविष्टि को `groups.<room>.account` के साथ किसी विशिष्ट खाते तक सीमित करें। `account` के बिना प्रविष्टियाँ खातों के बीच साझा होती हैं; शीर्ष स्तर पर डिफ़ॉल्ट खाता कॉन्फ़िगर होने पर `account: "default"` अब भी काम करता है।

**डिफ़ॉल्ट खाते का चयन:**

- उस नामित खाते को चुनने के लिए `defaultAccount` सेट करें जिसे अप्रत्यक्ष रूटिंग, जाँच और CLI कमांड प्राथमिकता देते हैं।
- यदि आपके पास एकाधिक खाते हैं और उनमें से एक का नाम अक्षरशः `default` है, तो `defaultAccount` सेट न होने पर भी OpenClaw उसका अप्रत्यक्ष रूप से उपयोग करता है।
- एकाधिक नामित खाते होने और कोई डिफ़ॉल्ट चयनित न होने पर, CLI कमांड अनुमान लगाने से इनकार करते हैं—`defaultAccount` सेट करें या `--account <id>` पास करें।
- शीर्ष-स्तरीय `channels.matrix.*` ब्लॉक को केवल तभी अप्रत्यक्ष `default` खाता माना जाता है, जब उसका प्रमाणीकरण पूर्ण हो (`homeserver` + `accessToken`, या `homeserver` + `userId` + `password`)। कैश किए गए क्रेडेंशियल द्वारा प्रमाणीकरण पूरा होने के बाद नामित खाते `homeserver` + `userId` से खोजे जा सकते हैं।

**प्रोमोशन:**

- जब OpenClaw मरम्मत या सेटअप के दौरान एकल-खाता कॉन्फ़िगरेशन को एकाधिक-खाता कॉन्फ़िगरेशन में प्रोमोट करता है, तो वह मौजूदा नामित खाते को सुरक्षित रखता है, यदि ऐसा कोई खाता मौजूद हो या `defaultAccount` पहले से किसी खाते की ओर संकेत करता हो। केवल Matrix प्रमाणीकरण/बूटस्ट्रैप कुंजियाँ प्रोमोट किए गए खाते में जाती हैं; साझा डिलीवरी-नीति कुंजियाँ शीर्ष स्तर पर रहती हैं।

साझा एकाधिक-खाता पैटर्न के लिए [कॉन्फ़िगरेशन संदर्भ](/hi/gateway/config-channels#multi-account-all-channels) देखें।

## निजी/LAN होमसर्वर

डिफ़ॉल्ट रूप से, OpenClaw SSRF सुरक्षा के लिए निजी/आंतरिक Matrix होमसर्वर को ब्लॉक करता है, जब तक कि आप प्रत्येक खाते के लिए स्पष्ट रूप से अनुमति न दें।

यदि आपका होमसर्वर localhost, किसी LAN/Tailscale IP या आंतरिक होस्टनाम पर चलता है, तो उस खाते के लिए `network.dangerouslyAllowPrivateNetwork` सक्षम करें:

```json5
{
  channels: {
    matrix: {
      homeserver: "http://matrix-synapse:8008",
      network: {
        dangerouslyAllowPrivateNetwork: true,
      },
      accessToken: "syt_internal_xxx",
    },
  },
}
```

CLI सेटअप उदाहरण:

```bash
openclaw matrix account add \
  --account ops \
  --homeserver http://matrix-synapse:8008 \
  --allow-private-network \
  --access-token syt_ops_xxx
```

यह स्पष्ट अनुमति केवल विश्वसनीय निजी/आंतरिक लक्ष्यों की अनुमति देती है। `http://matrix.example.org:8008` जैसे सार्वजनिक क्लियरटेक्स्ट होमसर्वर ब्लॉक ही रहते हैं। जब भी संभव हो, `https://` को प्राथमिकता दें।

## Matrix ट्रैफ़िक को प्रॉक्सी करना

यदि आपके Matrix परिनियोजन को स्पष्ट आउटबाउंड HTTP(S) प्रॉक्सी की आवश्यकता है, तो `channels.matrix.proxy` सेट करें:

```json5
{
  channels: {
    matrix: {
      homeserver: "https://matrix.example.org",
      accessToken: "syt_bot_xxx",
      proxy: "http://127.0.0.1:7890",
    },
  },
}
```

नामित खाते `channels.matrix.accounts.<id>.proxy` के साथ शीर्ष-स्तरीय डिफ़ॉल्ट को ओवरराइड कर सकते हैं। OpenClaw रनटाइम Matrix ट्रैफ़िक और खाता-स्थिति जाँच के लिए समान प्रॉक्सी सेटिंग का उपयोग करता है।

## लक्ष्य निर्धारण

जहाँ भी OpenClaw किसी रूम या उपयोगकर्ता लक्ष्य की माँग करता है, Matrix इन लक्ष्य प्रारूपों को स्वीकार करता है:

- उपयोगकर्ता: `@user:server`, `user:@user:server`, या `matrix:user:@user:server`
- रूम: `!room:server`, `room:!room:server`, या `matrix:room:!room:server`
- उपनाम: `#alias:server`, `channel:#alias:server`, या `matrix:channel:#alias:server`

Matrix रूम ID केस-संवेदी होते हैं। स्पष्ट डिलीवरी लक्ष्य, Cron जॉब, बाइंडिंग या अनुमति-सूचियाँ कॉन्फ़िगर करते समय Matrix से मिले रूम ID के अक्षरों का सटीक केस उपयोग करें। OpenClaw भंडारण के लिए आंतरिक सत्र कुंजियों को कैनोनिकल रखता है, इसलिए वे लोअरकेस कुंजियाँ Matrix डिलीवरी ID का विश्वसनीय स्रोत नहीं हैं।

लाइव डायरेक्टरी खोज लॉग-इन किए गए Matrix खाते का उपयोग करती है:

- उपयोगकर्ता खोज उस होमसर्वर की Matrix उपयोगकर्ता डायरेक्टरी से क्वेरी करती है।
- रूम खोज स्पष्ट रूम ID और उपनामों को सीधे स्वीकार करती है। जुड़े हुए रूम के नाम की खोज यथासंभव की जाती है और केवल रनटाइम रूम अनुमति-सूचियों पर तब लागू होती है, जब `dangerouslyAllowNameMatching: true` सेट हो।
- यदि किसी रूम नाम को ID या उपनाम में निर्धारित नहीं किया जा सकता, तो रनटाइम अनुमति-सूची निर्धारण में उसे अनदेखा कर दिया जाता है।

## कॉन्फ़िगरेशन संदर्भ

अनुमति-सूची शैली के उपयोगकर्ता फ़ील्ड (`groupAllowFrom`, `dm.allowFrom`, `groups.<room>.users`) पूर्ण Matrix उपयोगकर्ता ID स्वीकार करते हैं, जो सबसे सुरक्षित विकल्प है। गैर-ID प्रविष्टियाँ डिफ़ॉल्ट रूप से अनदेखी की जाती हैं। यदि `dangerouslyAllowNameMatching: true` सेट है, तो Matrix डायरेक्टरी के प्रदर्शन-नाम से सटीक मिलान स्टार्टअप पर और मॉनिटर के चलते समय अनुमति-सूची बदलने पर निर्धारित किए जाते हैं; जिन प्रविष्टियों का निर्धारण नहीं हो सकता, उन्हें रनटाइम पर अनदेखा किया जाता है।

रूम अनुमति-सूची कुंजियाँ (`groups`, पुराना `rooms`) रूम ID या उपनाम होनी चाहिए। सामान्य रूम-नाम कुंजियाँ डिफ़ॉल्ट रूप से अनदेखी की जाती हैं; `dangerouslyAllowNameMatching: true` जुड़े हुए रूम नामों के लिए यथासंभव खोज को पुनर्स्थापित करता है।

### खाता और कनेक्शन

- `enabled`: चैनल को सक्षम या अक्षम करें।
- `name`: खाते के लिए वैकल्पिक प्रदर्शन लेबल।
- `defaultAccount`: एकाधिक Matrix खाते कॉन्फ़िगर होने पर प्राथमिकता प्राप्त खाता ID।
- `accounts`: प्रत्येक नामित खाते के लिए ओवरराइड। शीर्ष-स्तरीय `channels.matrix` मान डिफ़ॉल्ट के रूप में इनहेरिट होते हैं।
- `homeserver`: होमसर्वर URL, उदाहरण के लिए `https://matrix.example.org`।
- `network.dangerouslyAllowPrivateNetwork`: इस खाते को `localhost`, LAN/Tailscale IP या आंतरिक होस्टनाम से कनेक्ट होने दें।
- `proxy`: Matrix ट्रैफ़िक के लिए वैकल्पिक HTTP(S) प्रॉक्सी URL। प्रति-खाता ओवरराइड समर्थित है।
- `userId`: पूर्ण Matrix उपयोगकर्ता ID (`@bot:example.org`)।
- `accessToken`: टोकन-आधारित प्रमाणीकरण के लिए एक्सेस टोकन। env/file/exec प्रदाताओं में प्लेनटेक्स्ट और SecretRef मान समर्थित हैं ([गोपनीय जानकारी प्रबंधन](/hi/gateway/secrets))।
- `password`: पासवर्ड-आधारित लॉगिन के लिए पासवर्ड। प्लेनटेक्स्ट और SecretRef मान समर्थित हैं।
- `deviceId`: स्पष्ट Matrix डिवाइस ID।
- `deviceName`: पासवर्ड लॉगिन के समय उपयोग किया जाने वाला डिवाइस प्रदर्शन नाम।
- `avatarUrl`: प्रोफ़ाइल सिंक और `profile set` अपडेट के लिए संग्रहीत स्वयं का अवतार URL।
- `initialSyncLimit`: स्टार्टअप सिंक के दौरान प्राप्त किए जाने वाले इवेंट की अधिकतम संख्या।

### एन्क्रिप्शन

- `encryption`: E2EE सक्षम करें। डिफ़ॉल्ट: `false`।
- `startupVerification`: `"if-unverified"` (E2EE चालू होने पर डिफ़ॉल्ट) या `"off"`। यह डिवाइस असत्यापित होने पर स्टार्टअप के दौरान स्वयं-सत्यापन का स्वचालित अनुरोध करता है।
- `startupVerificationCooldownHours`: अगले स्वचालित स्टार्टअप अनुरोध से पहले का कूलडाउन। डिफ़ॉल्ट: `24`।

### पहुँच और नीति

- `groupPolicy`: `"open"`, `"allowlist"`, या `"disabled"`। डिफ़ॉल्ट: `"allowlist"`।
- `groupAllowFrom`: रूम ट्रैफ़िक के लिए उपयोगकर्ता ID की अनुमति-सूची।
- `mentionPatterns`: रूम उल्लेखों के लिए सीमित regex पैटर्न। `{ mode: "allow"|"deny", allowIn: [roomId, ...], denyIn: [roomId, ...] }` वाला ऑब्जेक्ट। यह नियंत्रित करता है कि कॉन्फ़िगर किए गए `agents.entries.*.groupChat.mentionPatterns` प्रत्येक रूम पर लागू होते हैं या नहीं।
- `dm.enabled`: `false` होने पर सभी DM अनदेखे करें। डिफ़ॉल्ट: `true`।
- `dm.policy`: `"pairing"` (डिफ़ॉल्ट), `"allowlist"`, `"open"`, या `"disabled"`। यह बॉट के जुड़ने और रूम को DM के रूप में वर्गीकृत करने के बाद लागू होता है; यह आमंत्रण प्रबंधन को प्रभावित नहीं करता।
- `dm.allowFrom`: DM ट्रैफ़िक के लिए उपयोगकर्ता ID की अनुमति-सूची।
- `dm.sessionScope`: `"per-user"` (डिफ़ॉल्ट) या `"per-room"`।
- `dm.threadReplies`: उत्तर थ्रेडिंग के लिए केवल-DM ओवरराइड (`"off"`, `"inbound"`, `"always"`)।
- `allowBots`: अन्य कॉन्फ़िगर किए गए Matrix बॉट खातों से संदेश स्वीकार करें (`true` या `"mentions"`)।
- `allowlistOnly`: `true` होने पर सभी सक्रिय DM नीतियों (`"disabled"` को छोड़कर) और `"open"` समूह नीतियों को बाध्य करके `"allowlist"` करता है। यह `"disabled"` नीतियों को नहीं बदलता।
- `dangerouslyAllowNameMatching`: `true` होने पर उपयोगकर्ता अनुमति-सूची प्रविष्टियों के लिए Matrix प्रदर्शन-नाम डायरेक्टरी खोज और रूम अनुमति-सूची कुंजियों के लिए जुड़े हुए रूम के नाम की खोज की अनुमति देता है। पूर्ण `@user:server` ID और रूम ID या उपनाम को प्राथमिकता दें।
- `autoJoin`: `"always"`, `"allowlist"`, या `"off"`। डिफ़ॉल्ट: `"off"`। DM-शैली के आमंत्रणों सहित प्रत्येक Matrix आमंत्रण पर लागू होता है।
- `autoJoinAllowlist`: जब `autoJoin`, `"allowlist"` हो, तब अनुमत रूम/उपनाम। उपनाम प्रविष्टियाँ होमसर्वर के अनुसार निर्धारित होती हैं, आमंत्रित रूम द्वारा दावा की गई स्थिति के अनुसार नहीं।
- `contextVisibility`: पूरक संदर्भ दृश्यता (`"all"` डिफ़ॉल्ट, `"allowlist"`, `"allowlist_quote"`)।

### उत्तर व्यवहार

- `replyToMode`: `"off"` (डिफ़ॉल्ट), `"first"`, `"all"`, या `"batched"`।
- `threadReplies`: `"off"` (शीर्ष-स्तरीय डिफ़ॉल्ट स्पष्ट रूप से सेट न होने पर `"inbound"` में हल होता है), `"inbound"`, या `"always"`।
- `threadBindings`: थ्रेड-बाउंड सत्र रूटिंग और जीवनचक्र के लिए प्रति-चैनल ओवरराइड।
- `streaming`: नेस्टेड ऑब्जेक्ट `{ mode, chunkMode, block: { enabled, coalesce }, preview: { toolProgress }, progress: { label, labels, maxLines, maxLineChars, toolProgress } }`। `mode`, `"off"` (डिफ़ॉल्ट), `"partial"`, `"quiet"`, या `"progress"` है। पुराने स्केलर/बूलियन वर्तनी-रूप `openclaw doctor --fix` के माध्यम से माइग्रेट होते हैं।
- `streaming.block.enabled`: जब `true` हो, तो पूर्ण हो चुके सहायक ब्लॉक अलग-अलग प्रगति संदेशों के रूप में रखे जाते हैं। डिफ़ॉल्ट: `false`।
- `markdown`: आउटबाउंड टेक्स्ट के लिए वैकल्पिक Markdown रेंडरिंग कॉन्फ़िगरेशन।
- `responsePrefix`: आउटबाउंड उत्तरों से पहले जोड़ी जाने वाली वैकल्पिक स्ट्रिंग।
- `textChunkLimit`: `streaming.chunkMode: "length"` होने पर वर्णों में आउटबाउंड खंड का आकार। डिफ़ॉल्ट: `4000`।
- `streaming.chunkMode`: `"length"` (डिफ़ॉल्ट, वर्ण संख्या के अनुसार विभाजित करता है) या `"newline"` (पंक्ति सीमाओं पर विभाजित करता है)।
- `historyLimit`: किसी कक्ष संदेश द्वारा एजेंट को ट्रिगर किए जाने पर `InboundHistory` के रूप में शामिल किए जाने वाले हालिया कक्ष संदेशों की संख्या। `messages.groupChat.historyLimit` पर फ़ॉलबैक होता है; प्रभावी डिफ़ॉल्ट `0` (अक्षम)।
- `mediaMaxMb`: आउटबाउंड प्रेषण और इनबाउंड प्रोसेसिंग के लिए MB में मीडिया आकार सीमा। डिफ़ॉल्ट: `20`।

### प्रतिक्रिया सेटिंग्स

- `ackReaction`: इस चैनल/खाते के लिए अभिस्वीकृति प्रतिक्रिया ओवरराइड।
- `ackReactionScope`: दायरा ओवरराइड (`"group-mentions"` डिफ़ॉल्ट, `"group-all"`, `"direct"`, `"all"`, `"none"`, `"off"`)।
- `reactionNotifications`: इनबाउंड प्रतिक्रिया सूचना मोड (`"own"` डिफ़ॉल्ट, `"off"`)।

### टूलिंग और प्रति-कक्ष ओवरराइड

- `actions`: प्रत्येक क्रिया के अनुसार टूल गेटिंग (`messages`, `reactions`, `pins`, `profile`, `memberInfo`, `channelInfo`, `verification`)।
- `groups`: प्रत्येक रूम के अनुसार नीति मैप। समाधान के बाद सत्र पहचान स्थिर रूम ID का उपयोग करती है। (`rooms` एक पुराना उपनाम है।)
  - `groups.<room>.account`: विरासत में मिली एक रूम प्रविष्टि को किसी विशिष्ट खाते तक सीमित करें।
  - `groups.<room>.enabled`: प्रत्येक रूम के अनुसार टॉगल। जब `false` हो, तो रूम को इस तरह अनदेखा किया जाता है मानो वह मैप में न हो।
  - `groups.<room>.requireMention`: चैनल-स्तरीय उल्लेख आवश्यकता का प्रत्येक रूम के अनुसार ओवरराइड।
  - `groups.<room>.allowBots`: चैनल-स्तरीय सेटिंग का प्रत्येक रूम के अनुसार ओवरराइड (`true` या `"mentions"`)।
  - `groups.<room>.botLoopProtection`: बॉट-से-बॉट लूप सुरक्षा बजट का प्रत्येक रूम के अनुसार ओवरराइड।
  - `groups.<room>.users`: प्रत्येक रूम के अनुसार प्रेषक अनुमति-सूची।
  - `groups.<room>.tools`: प्रत्येक रूम के अनुसार टूल अनुमति/अस्वीकृति ओवरराइड।
  - `groups.<room>.autoReply`: प्रत्येक रूम के अनुसार उल्लेख-गेटिंग ओवरराइड। `true` उस रूम के लिए उल्लेख आवश्यकताओं को अक्षम करता है; `false` उन्हें फिर से अनिवार्य करता है।
  - `groups.<room>.skills`: प्रत्येक रूम के अनुसार स्किल फ़िल्टर।
  - `groups.<room>.systemPrompt`: प्रत्येक रूम के अनुसार सिस्टम प्रॉम्प्ट अंश।

### निष्पादन अनुमोदन सेटिंग्स

- `execApprovals.enabled`: Matrix-मूल प्रॉम्प्ट के माध्यम से निष्पादन अनुमोदन वितरित करें।
- `execApprovals.approvers`: अनुमोदन की अनुमति वाले Matrix उपयोगकर्ता ID। उपलब्ध न होने पर `dm.allowFrom` का उपयोग होता है।
- `execApprovals.target`: `"dm"` (डिफ़ॉल्ट), `"channel"`, या `"both"`।
- `execApprovals.agentFilter` / `execApprovals.sessionFilter`: वितरण के लिए वैकल्पिक एजेंट/सत्र अनुमति-सूचियाँ।

## संबंधित

- [चैनलों का अवलोकन](/hi/channels) - सभी समर्थित चैनल
- [युग्मन](/hi/channels/pairing) - DM प्रमाणीकरण और युग्मन प्रवाह
- [समूह](/hi/channels/groups) - समूह चैट व्यवहार और उल्लेख गेटिंग
- [चैनल रूटिंग](/hi/channels/channel-routing) - संदेशों के लिए सत्र रूटिंग
- [सुरक्षा](/hi/gateway/security) - अभिगम मॉडल और सुदृढ़ीकरण
