---
read_when:
    - आप OpenClaw को IRC चैनलों या DMs से कनेक्ट करना चाहते हैं
    - आप IRC अनुमतिसूचियाँ, समूह नीति या उल्लेख गेटिंग कॉन्फ़िगर कर रहे हैं
summary: IRC Plugin सेटअप, अभिगम नियंत्रण और समस्या निवारण
title: IRC
x-i18n:
    generated_at: "2026-07-27T19:20:58Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: 85c3da80b45d6611872ddbd10b3be4a5742b46e355e8bb554353a478f2a1702f
    source_path: channels/irc.md
    workflow: 16
---

जब आप OpenClaw को क्लासिक चैनलों (`#room`) और डायरेक्ट मैसेज में उपयोग करना चाहते हों, तब IRC का उपयोग करें।
आधिकारिक IRC Plugin इंस्टॉल करें, फिर इसे `channels.irc` के अंतर्गत कॉन्फ़िगर करें।

## त्वरित शुरुआत

1. Plugin इंस्टॉल करें:

```bash
openclaw plugins install @openclaw/irc
```

2. `~/.openclaw/openclaw.json` में कम-से-कम होस्ट, निक और शामिल होने वाले चैनल सेट करें:

```json5
{
  channels: {
    irc: {
      enabled: true,
      host: "irc.example.com",
      port: 6697,
      tls: true,
      nick: "openclaw-bot",
      channels: ["#openclaw"],
    },
  },
}
```

3. Gateway शुरू/पुनः शुरू करें:

```bash
openclaw gateway run
```

बॉट समन्वय के लिए निजी IRC सर्वर को प्राथमिकता दें। यदि आप जानबूझकर किसी सार्वजनिक IRC नेटवर्क का उपयोग करते हैं, तो सामान्य विकल्पों में Libera.Chat, OFTC और Snoonet शामिल हैं। बॉट या स्वॉर्म के बैकचैनल ट्रैफ़िक के लिए आसानी से अनुमान लगाए जा सकने वाले सार्वजनिक चैनलों से बचें।

## इनबाउंड स्थायित्व

OpenClaw प्रत्येक स्वीकृत IRC `PRIVMSG` को सामान्य नीति जाँच और एजेंट डिस्पैच से पहले अपनी टिकाऊ इनग्रेस कतार में लिखता है। लंबित या पुनः प्रयास योग्य मैसेज Gateway पुनः शुरू होने के बाद भी बने रहते हैं और प्रत्येक चैनल या डायरेक्ट-मैसेज पीयर के अनुसार क्रमबद्ध रहते हैं।

IRC पुनः चलाने योग्य डिलीवरी ID प्रदान नहीं करता और डिस्कनेक्ट किए गए क्लाइंट से छूटे मैसेज दोबारा नहीं भेजता। इसलिए OpenClaw एक स्थानीय ID निर्दिष्ट करता है, जो केवल वर्तमान TCP कनेक्शन में स्थिर रहती है। कतार स्थानीय स्वीकृति-से-डिस्पैच अवधि की सुरक्षा करती है; यह ऐसे मैसेज को पुनर्प्राप्त नहीं कर सकती जो कभी OpenClaw तक पहुँचा ही नहीं, या विभिन्न कनेक्शनों के बीच सर्वर द्वारा दोबारा भेजे गए मैसेज की डुप्लिकेट प्रति नहीं हटा सकती।

## कनेक्शन सेटिंग्स

| कुंजी                           | डिफ़ॉल्ट                       | टिप्पणियाँ                                                       |
| ----------------------------- | ----------------------------- | ----------------------------------------------------------- |
| `host`                        | कोई नहीं (आवश्यक)               | IRC सर्वर का होस्टनेम                                         |
| `port`                        | TLS के साथ `6697`, प्लेन के लिए `6667` | 1-65535                                                     |
| `tls`                         | `true`                        | केवल जानबूझकर प्लेनटेक्स्ट उपयोग करने के लिए `false` सेट करें                  |
| `nick`                        | कोई नहीं (आवश्यक)               | बॉट निक                                                    |
| `username`                    | निक, अन्यथा `openclaw`         | IRC उपयोगकर्ता नाम                                                |
| `realname`                    | `OpenClaw`                    | वास्तविक नाम/GECOS फ़ील्ड                                        |
| `password` / `passwordFile`   | कोई नहीं                          | सर्वर पासवर्ड; फ़ाइल एक नियमित फ़ाइल होनी चाहिए                |
| `channels`                    | कोई नहीं                          | शामिल होने वाले चैनल (`["#openclaw"]`)                          |
| `accounts` / `defaultAccount` | कोई नहीं                          | बहु-अकाउंट सेटअप; एनवायरनमेंट वेरिएबल केवल डिफ़ॉल्ट अकाउंट भरते हैं |

## सुरक्षा डिफ़ॉल्ट

- IRC, OpenClaw ऑपरेटर द्वारा प्रबंधित फ़ॉरवर्ड प्रॉक्सी रूटिंग के बाहर रॉ TCP/TLS सॉकेट का उपयोग करता है। ऐसे डिप्लॉयमेंट में, जिनमें सभी आउटगोइंग ट्रैफ़िक को उस फ़ॉरवर्ड प्रॉक्सी से होकर जाना आवश्यक है, `channels.irc.enabled=false` सेट करें, जब तक कि सीधे IRC आउटगोइंग ट्रैफ़िक को स्पष्ट रूप से स्वीकृति न दी गई हो।
- `channels.irc.dmPolicy` का डिफ़ॉल्ट `"pairing"` है: अज्ञात DM प्रेषकों को एक पेयरिंग कोड मिलता है, जिसे आप `openclaw pairing approve irc <code>` से स्वीकृत करते हैं।
- `channels.irc.groupPolicy` का डिफ़ॉल्ट `"allowlist"` है।
- `groupPolicy="allowlist"` के साथ अनुमत चैनल निर्धारित करने के लिए `channels.irc.groups` सेट करें।
- जब तक आप जानबूझकर प्लेनटेक्स्ट ट्रांसपोर्ट स्वीकार नहीं करते, TLS (`channels.irc.tls=true`) का उपयोग करें।

## एक्सेस नियंत्रण

IRC चैनलों के लिए दो अलग-अलग "गेट" हैं:

1. **चैनल एक्सेस** (`groupPolicy` + `groups`): बॉट किसी चैनल से मैसेज स्वीकार करता है या नहीं।
2. **प्रेषक एक्सेस** (`groupAllowFrom` / प्रति-चैनल `groups["#channel"].allowFrom`): उस चैनल में किसे बॉट ट्रिगर करने की अनुमति है।

कॉन्फ़िगरेशन कुंजियाँ:

- DM अनुमति-सूची (DM प्रेषक एक्सेस): `channels.irc.allowFrom`
- समूह प्रेषक अनुमति-सूची (चैनल प्रेषक एक्सेस): `channels.irc.groupAllowFrom`
- प्रति-चैनल नियंत्रण (चैनल + प्रेषक + उल्लेख नियम): `channels.irc.groups["#channel"]`, जिसमें `requireMention`, `allowFrom`, `enabled`, `tools`, `toolsBySender`, `skills` और `systemPrompt` शामिल हैं
- `channels.irc.groupPolicy="open"` गैर-कॉन्फ़िगर किए गए चैनलों को अनुमति देता है (**डिफ़ॉल्ट रूप से अब भी उल्लेख आवश्यक है**)

अनुमति-सूची प्रविष्टियों में स्थिर प्रेषक पहचान (`nick!user@host`) का उपयोग होना चाहिए।
केवल निक से मिलान परिवर्तनशील है और यह केवल तभी सक्षम होता है जब `channels.irc.dangerouslyAllowNameMatching: true`।

### सामान्य समस्या: `allowFrom` DM के लिए है, चैनलों के लिए नहीं

यदि आपको इस तरह के लॉग दिखाई दें:

- `irc: drop group sender alice!ident@host (policy=allowlist)`

...तो इसका अर्थ है कि प्रेषक को **समूह/चैनल** मैसेज के लिए अनुमति नहीं थी। इसे इनमें से किसी तरीके से ठीक करें:

- `channels.irc.groupAllowFrom` सेट करके (सभी चैनलों के लिए वैश्विक), या
- प्रति-चैनल प्रेषक अनुमति-सूचियाँ सेट करके: `channels.irc.groups["#channel"].allowFrom`

उदाहरण (`#openclaw` में किसी को भी बॉट से बात करने की अनुमति दें):

```json5
{
  channels: {
    irc: {
      groupPolicy: "allowlist",
      groups: {
        "#openclaw": { allowFrom: ["*"] },
      },
    },
  },
}
```

## उत्तर ट्रिगर करना (उल्लेख)

भले ही कोई चैनल (`groupPolicy` + `groups` के माध्यम से) अनुमत हो और प्रेषक को भी अनुमति हो, OpenClaw समूह संदर्भों में डिफ़ॉल्ट रूप से **उल्लेख आवश्यक** रखता है। जब मैसेज में कनेक्ट किए गए बॉट का निक हो या वह आपके कॉन्फ़िगर किए गए उल्लेख पैटर्न से मेल खाए, तो बॉट इसे अपना उल्लेख मानता है।

इसका अर्थ है कि जब तक मैसेज में बॉट से मेल खाने वाला उल्लेख पैटर्न शामिल न हो, आपको `drop channel … (missing-mention)` जैसे लॉग दिखाई दे सकते हैं।

किसी IRC चैनल में बॉट से **उल्लेख की आवश्यकता के बिना** उत्तर दिलाने के लिए, उस चैनल हेतु उल्लेख की आवश्यकता अक्षम करें:

```json5
{
  channels: {
    irc: {
      groupPolicy: "allowlist",
      groups: {
        "#openclaw": {
          requireMention: false,
          allowFrom: ["*"],
        },
      },
    },
  },
}
```

या **सभी** IRC चैनलों को अनुमति देने (प्रति-चैनल अनुमति-सूची के बिना) और फिर भी उल्लेख के बिना उत्तर पाने के लिए:

```json5
{
  channels: {
    irc: {
      groupPolicy: "open",
      groups: {
        "*": { requireMention: false, allowFrom: ["*"] },
      },
    },
  },
}
```

## सुरक्षा टिप्पणी (सार्वजनिक चैनलों के लिए अनुशंसित)

यदि आप किसी सार्वजनिक चैनल में `allowFrom: ["*"]` को अनुमति देते हैं, तो कोई भी बॉट को प्रॉम्प्ट कर सकता है।
जोखिम कम करने के लिए, उस चैनल के टूल प्रतिबंधित करें।

### चैनल में सभी के लिए समान टूल

```json5
{
  channels: {
    irc: {
      groups: {
        "#openclaw": {
          allowFrom: ["*"],
          tools: {
            deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"],
          },
        },
      },
    },
  },
}
```

### प्रत्येक प्रेषक के लिए अलग टूल (स्वामी को अधिक अधिकार मिलते हैं)

`"*"` पर अधिक सख्त नीति और अपने निक पर अपेक्षाकृत ढीली नीति लागू करने के लिए `toolsBySender` का उपयोग करें:

```json5
{
  channels: {
    irc: {
      groups: {
        "#openclaw": {
          allowFrom: ["*"],
          toolsBySender: {
            "*": {
              deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"],
            },
            "id:alice": {
              deny: ["gateway", "nodes", "cron"],
            },
          },
        },
      },
    },
  },
}
```

टिप्पणियाँ:

- `toolsBySender` कुंजियों में स्पष्ट प्रीफ़िक्स (`channel:`, `id:`, `e164:`, `username:`, `name:`) का उपयोग होना चाहिए। IRC के लिए प्रेषक पहचान मान के साथ `id:` का उपयोग करें: अधिक सशक्त मिलान के लिए `id:alice` या `id:alice!~alice@203.0.113.7`।
- पुरानी बिना प्रीफ़िक्स वाली कुंजियाँ अब भी स्वीकार की जाती हैं, केवल `id:` के रूप में मिलाई जाती हैं और एक अप्रचलन चेतावनी देती हैं।
- पहली मेल खाने वाली प्रेषक नीति लागू होती है; `"*"` वाइल्डकार्ड फ़ॉलबैक है।

समूह एक्सेस बनाम उल्लेख की आवश्यकता (और उनकी परस्पर क्रिया) के बारे में अधिक जानकारी के लिए देखें: [/channels/groups](/hi/channels/groups)।

## NickServ

कनेक्ट होने के बाद NickServ से पहचान सत्यापित करने के लिए:

```json5
{
  channels: {
    irc: {
      nickserv: {
        enabled: true,
        service: "NickServ",
        password: "your-nickserv-password",
      },
    },
  },
}
```

जब भी पासवर्ड सेट हो, NickServ पहचान डिफ़ॉल्ट रूप से चलती है (ऑप्ट आउट करने के लिए केवल `enabled` को `false` करना आवश्यक है)। `service` का डिफ़ॉल्ट `NickServ` है; `passwordFile`, इनलाइन `password` का विकल्प है।

कनेक्ट होने पर वैकल्पिक एकबारगी पंजीकरण (`register: true` के लिए `registerEmail` आवश्यक है):

```json5
{
  channels: {
    irc: {
      nickserv: {
        register: true,
        registerEmail: "bot@example.com",
      },
    },
  },
}
```

बार-बार REGISTER प्रयासों से बचने के लिए निक पंजीकृत होने के बाद `register` अक्षम करें।

## एनवायरनमेंट वेरिएबल

डिफ़ॉल्ट अकाउंट इनका समर्थन करता है:

- `IRC_HOST`
- `IRC_PORT`
- `IRC_TLS`
- `IRC_NICK`
- `IRC_USERNAME`
- `IRC_REALNAME`
- `IRC_PASSWORD`
- `IRC_CHANNELS` (अल्पविराम से अलग)
- `IRC_NICKSERV_PASSWORD`
- `IRC_NICKSERV_REGISTER_EMAIL`

`IRC_HOST` को किसी वर्कस्पेस `.env` से सेट नहीं किया जा सकता; [वर्कस्पेस `.env` फ़ाइलें](/hi/gateway/security) देखें।

## समस्या निवारण

- यदि बॉट कनेक्ट होता है लेकिन चैनलों में कभी उत्तर नहीं देता, तो `channels.irc.groups` **और** यह सत्यापित करें कि उल्लेख की आवश्यकता मैसेज को हटा तो नहीं रही (`missing-mention`)। यदि आप चाहते हैं कि यह पिंग के बिना उत्तर दे, तो चैनल के लिए `requireMention:false` सेट करें।
- यदि लॉगिन विफल होता है, तो निक की उपलब्धता और सर्वर पासवर्ड सत्यापित करें।
- यदि किसी कस्टम नेटवर्क पर TLS विफल होता है, तो होस्ट/पोर्ट और प्रमाणपत्र सेटअप सत्यापित करें।

## संबंधित

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