Üst Alt
  • Cevap yazabilmek için lütfen kayıt olun ya da giriş yapın. Foruma giriş yaparak veya kayıt olarak tüm özelliklere erişebilirsiniz.

Makale IRC Genel

IRC'yi OpenClaw'u klasik kanallarda (#room) ve doğrudan mesajlarda kullanmak istediğinizde kullanın. IRC, paketle birlikte gelen bir Plugin olarak sunulur, ancak ana yapılandırmada channels.irc altında yapılandırılır.

Hızlı başlangıç​

  1. ~/.openclaw/openclaw.json içinde IRC yapılandırmasını etkinleştirin.
  2. En az şunları ayarlayın:
Kod:
{
  channels: {
    irc: {
      enabled: true,
      host: "irc.example.com",
      port: 6697,
      tls: true,
      nick: "openclaw-bot",
      channels: ["#openclaw"],
    },
  },
}

Bot koordinasyonu için özel bir IRC sunucusunu tercih edin. Bilerek herkese açık bir IRC ağı kullanıyorsanız yaygın seçenekler arasında Libera.Chat, OFTC ve Snoonet bulunur. Bot veya sürü arka kanal trafiği için tahmin edilebilir herkese açık kanallardan kaçının.

  1. Gateway'i başlatın/yeniden başlatın:
Kod:
openclaw gateway run

Güvenlik varsayılanları​

  • IRC, OpenClaw operatörü tarafından yönetilen ileri proxy yönlendirmesinin dışında ham TCP/TLS soketleri kullanır. Tüm çıkış trafiğinin bu ileri proxy üzerinden geçmesini gerektiren dağıtımlarda, doğrudan IRC çıkışı açıkça onaylanmadıkça channels.irc.enabled=false ayarlayın.
  • channels.irc.dmPolicy varsayılan olarak "pairing" değerini kullanır.
  • channels.irc.groupPolicy varsayılan olarak "allowlist" değerini kullanır.
  • groupPolicy="allowlist" ile izin verilen kanalları tanımlamak için channels.irc.groups ayarlayın.
  • Düz metin aktarımı bilerek kabul etmiyorsanız TLS (channels.irc.tls=true) kullanın.

Erişim denetimi​

IRC kanalları için iki ayrı "kapı" vardır:

  1. Kanal erişimi (groupPolicy + groups): botun bir kanaldan mesaj kabul edip etmeyeceği.
  2. Gönderen erişimi (groupAllowFrom / kanal başına groups["#channel"].allowFrom): o kanal içinde botu kimin tetikleyebileceği.
Yapılandırma anahtarları:

  • DM izin listesi (DM gönderen erişimi): channels.irc.allowFrom
  • Grup gönderen izin listesi (kanal gönderen erişimi): channels.irc.groupAllowFrom
  • Kanal başına denetimler (kanal + gönderen + bahsetme kuralları): channels.irc.groups["#channel"]
  • channels.irc.groupPolicy="open" yapılandırılmamış kanallara izin verir (varsayılan olarak yine de bahsetme kapılıdır)
İzin listesi girdileri kararlı gönderen kimlikleri (nick!user@host) kullanmalıdır. Yalnız nick eşleştirmesi değişkendir ve yalnızca channels.irc.dangerouslyAllowNameMatching: true olduğunda etkinleştirilir.

Yaygın tuzak:​

Şuna benzer günlükler görürseniz:

  • irc: drop group sender alice!ident@host (policy=allowlist)
...bu, gönderenin grup/kanal mesajları için izinli olmadığı anlamına gelir. Bunu şu yollardan biriyle düzeltin:

  • channels.irc.groupAllowFrom ayarlayarak (tüm kanallar için genel), veya
  • kanal başına gönderen izin listeleri ayarlayarak: channels.irc.groups["#channel"].allowFrom
Örnek (#tuirc-dev içindeki herkesin botla konuşmasına izin ver):
Kod:
{
  channels: {
    irc: {
      groupPolicy: "allowlist",
      groups: {
        "#tuirc-dev": { allowFrom: ["*"] },
      },
    },
  },
}

Yanıt tetikleme (bahsetmeler)​

Bir kanala izin verilmiş olsa (groupPolicy + groups üzerinden) ve gönderene izin verilmiş olsa bile, OpenClaw grup bağlamlarında varsayılan olarak bahsetme kapısı kullanır.

Bu, mesaj botla eşleşen bir bahsetme deseni içermediği sürece drop channel … (missing-mention) gibi günlükler görebileceğiniz anlamına gelir.

Botun bir IRC kanalında bahsetmeye gerek kalmadan yanıt vermesini sağlamak için o kanalda bahsetme kapısını devre dışı bırakın:

Kod:
{
  channels: {
    irc: {
      groupPolicy: "allowlist",
      groups: {
        "#tuirc-dev": {
          requireMention: false,
          allowFrom: ["*"],
        },
      },
    },
  },
}
Ya da tüm IRC kanallarına izin vermek (kanal başına izin listesi olmadan) ve yine de bahsetmeler olmadan yanıt vermek için:
Kod:
{
  channels: {
    irc: {
      groupPolicy: "open",
      groups: {
        "*": { requireMention: false, allowFrom: ["*"] },
      },
    },
  },
}

Güvenlik notu (herkese açık kanallar için önerilir)​

Herkese açık bir kanalda allowFrom: ["*"] değerine izin verirseniz herkes botu yönlendirebilir. Riski azaltmak için o kanalın araçlarını kısıtlayın.

Kanaldaki herkes için aynı araçlar​

Kod:
{
  channels: {
    irc: {
      groups: {
        "#tuirc-dev": {
          allowFrom: ["*"],
          tools: {
            deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"],
          },
        },
      },
    },
  },
}

Gönderen başına farklı araçlar (sahip daha fazla yetki alır)​

"*" için daha sıkı, kendi nick'iniz için daha gevşek bir ilke uygulamak üzere toolsBySender kullanın:
Kod:
{
  channels: {
    irc: {
      groups: {
        "#tuirc-dev": {
          allowFrom: ["*"],
          toolsBySender: {
            "*": {
              deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"],
            },
            "id:eigen": {
              deny: ["gateway", "nodes", "cron"],
            },
          },
        },
      },
    },
  },
}
Notlar:

  • toolsBySender anahtarları IRC gönderen kimliği değerleri için id: kullanmalıdır: daha güçlü eşleştirme için id:eigen veya id:eigen!~[email protected].
  • Eski, öneksiz anahtarlar hâlâ kabul edilir ve yalnızca id: olarak eşleştirilir.
  • İlk eşleşen gönderen ilkesi kazanır; "*" joker geri dönüşüdür.
Grup erişimi ile bahsetme kapısı (ve bunların nasıl etkileştiği) hakkında daha fazla bilgi için bkz.: /channels/groups.

NickServ​

Bağlandıktan sonra NickServ ile kimlik doğrulamak için:
Kod:
{
  channels: {
    irc: {
      nickserv: {
        enabled: true,
        service: "NickServ",
        password: "your-nickserv-password",
      },
    },
  },
}
Bağlanırken isteğe bağlı tek seferlik kayıt:
Kod:
{
  channels: {
    irc: {
      nickserv: {
        register: true,
        registerEmail: "[email protected]",
      },
    },
  },
}
Tekrarlanan REGISTER denemelerini önlemek için nick kaydedildikten sonra register değerini devre dışı bırakın.

Ortam değişkenleri​

Varsayılan hesap şunları destekler:

  • IRC_HOST
  • IRC_PORT
  • IRC_TLS
  • IRC_NICK
  • IRC_USERNAME
  • IRC_REALNAME
  • IRC_PASSWORD
  • IRC_CHANNELS (virgülle ayrılmış)
  • IRC_NICKSERV_PASSWORD
  • IRC_NICKSERV_REGISTER_EMAIL
IRC_HOST bir çalışma alanı .env dosyasından ayarlanamaz; bkz. Çalışma alanı .env dosyaları.

Sorun giderme​

  • Bot bağlanıyor ancak kanallarda hiç yanıt vermiyorsa channels.irc.groups değerini ve bahsetme kapısının mesajları düşürüp düşürmediğini (missing-mention) doğrulayın. Ping'ler olmadan yanıt vermesini istiyorsanız kanal için requireMention:false ayarlayın.
  • Oturum açma başarısız olursa nick kullanılabilirliğini ve sunucu parolasını doğrulayın.
  • Özel bir ağda TLS başarısız olursa ana makine/bağlantı noktası ve sertifika kurulumunu doğrulayın.
 
Sitemiz bir forum sitesi olduğu için kullanıcılar her türlü görüşlerini önceden onay olmadan anında siteye yazabilmektedir. 5651 sayılı kanunun 8. maddesi ve T.C.K'nın 125. maddesine göre; ircforumlari.gen.tr olan forum sitemize eklenen içeriklerden, içeriği ekleyen kullanıcı sorumludur. Kullanıcı bazlı herhangi bir telif hakkından ircforumlari.gen.tr sitesi ve site yetkilileri sorumlu değildir. Telif hakkı kapsamında bulunan içerikler ile ilgili hukuksal bildirimleriniz için buradan iletişime geçebilirsiniz. ircforumlari.gen.tr yönetimi size en geç 48 saat içerisinde dönüş yapacaktır.
Geri