Developer and self-hosted
IRC
Classic kanallarda (#room) ve doğrudan iletilerde OpenClaw kullanmak istediğinizde IRC kullanın.
Resmi IRC Plugin'ini yükleyin, ardından channels.irc altında yapılandırın.
Hızlı başlangıç
- Plugin'i yükleyin:
openclaw plugins install @openclaw/irc~/.openclaw/openclaw.jsoniçinde IRC yapılandırmasını etkinleştirin.- En azından şunları ayarlayın:
{ channels: { irc: { enabled: true, host: "irc.example.com", port: 6697, tls: true, nick: "openclaw-bot", channels: ["#openclaw"], }, },}Bot koordinasyonu için özel bir IRC sunucusu tercih edin. Bilerek genel 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 genel kanallardan kaçının.
- Gateway'i başlatın/yeniden başlatın:
openclaw gateway runGüvenlik varsayılanları
- IRC, OpenClaw operatörü tarafından yönetilen ileri proxy yönlendirmesi 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=falseayarlayın. channels.irc.dmPolicyvarsayılanı"pairing"değeridir.channels.irc.groupPolicyvarsayılanı"allowlist"değeridir.groupPolicy="allowlist"ile izin verilen kanalları tanımlamak içinchannels.irc.groupsayarlayı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ı "geçit" vardır:
- Kanal erişimi (
groupPolicy+groups): botun bir kanaldan gelen iletileri hiç kabul edip etmeyeceği. - Gönderen erişimi (
groupAllowFrom/ kanal başınagroups["#channel"].allowFrom): o kanalda botu tetiklemesine kimin izin verildiğ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 koşulludur)
İzin listesi girdileri kararlı gönderen kimlikleri (nick!user@host) kullanmalıdır.
Yalın nick eşleştirmesi değiştirilebilir durumdadır ve yalnızca channels.irc.dangerouslyAllowNameMatching: true olduğunda etkinleştirilir.
Yaygın tuzak: allowFrom kanallar için değil, DM'ler içindir
Şuna benzer günlükler görürseniz:
irc: drop group sender alice!ident@host (policy=allowlist)
...bu, gönderenin grup/kanal iletileri için izinli olmadığı anlamına gelir. Şunlardan birini yaparak düzeltin:
channels.irc.groupAllowFromayarlayın (tüm kanallar için global), veya- kanal başına gönderen izin listelerini ayarlayın:
channels.irc.groups["#channel"].allowFrom
Örnek (#tuirc-dev içindeki herkesin botla konuşmasına izin ver):
{ channels: { irc: { groupPolicy: "allowlist", groups: { "#tuirc-dev": { allowFrom: ["*"] }, }, }, },}Yanıt tetikleme (bahsetmeler)
Bir kanala izin verilmiş olsa (groupPolicy + groups aracılığıyla) ve gönderen izinli olsa bile OpenClaw grup bağlamlarında varsayılan olarak bahsetme koşulu uygular.
Bu, ileti botla eşleşen bir bahsetme kalıbı içermedikçe drop channel … (missing-mention) gibi günlükler görebileceğiniz anlamına gelir.
Botun bir IRC kanalında bahsetme gerekmeksizin yanıt vermesini sağlamak için o kanalda bahsetme koşulunu devre dışı bırakın:
{ 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 bahsetme olmadan yanıt vermek için:
{ channels: { irc: { groupPolicy: "open", groups: { "*": { requireMention: false, allowFrom: ["*"] }, }, }, },}Güvenlik notu (genel kanallar için önerilir)
Genel bir kanalda allowFrom: ["*"] izni verirseniz herkes bota istem gönderebilir.
Riski azaltmak için o kanaldaki araçları kısıtlayın.
Kanaldaki herkes için aynı araçlar
{ channels: { irc: { groups: { "#tuirc-dev": { allowFrom: ["*"], tools: { deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"], }, }, }, }, },}Gönderene göre farklı araçlar (sahip daha fazla yetki alır)
"*" için daha sıkı, nick'iniz için daha gevşek bir politika uygulamak üzere toolsBySender kullanın:
{ channels: { irc: { groups: { "#tuirc-dev": { allowFrom: ["*"], toolsBySender: { "*": { deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"], }, "id:eigen": { deny: ["gateway", "nodes", "cron"], }, }, }, }, }, },}Notlar:
toolsBySenderanahtarları IRC gönderen kimliği değerleri içinid:kullanmalıdır: daha güçlü eşleştirme içinid:eigenveyaid:eigen!~eigen@174.127.248.171.- Eski ön eksiz anahtarlar hâlâ kabul edilir ve yalnızca
id:olarak eşleştirilir. - İlk eşleşen gönderen politikası kazanır;
"*"joker yedektir.
Grup erişimi ile bahsetme koşulu (ve nasıl etkileştikleri) hakkında daha fazla bilgi için bkz.: /channels/groups.
NickServ
Bağlandıktan sonra NickServ ile kimlik doğrulamak için:
{ channels: { irc: { nickserv: { enabled: true, service: "NickServ", password: "your-nickserv-password", }, }, },}Bağlanırken isteğe bağlı tek seferlik kayıt:
{ channels: { irc: { nickserv: { register: true, registerEmail: "bot@example.com", }, }, },}Tekrarlanan REGISTER denemelerini önlemek için nick kaydedildikten sonra register ayarını devre dışı bırakın.
Ortam değişkenleri
Varsayılan hesap şunları destekler:
IRC_HOSTIRC_PORTIRC_TLSIRC_NICKIRC_USERNAMEIRC_REALNAMEIRC_PASSWORDIRC_CHANNELS(virgülle ayrılmış)IRC_NICKSERV_PASSWORDIRC_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.groupsayarını ve bahsetme koşulunun iletileri düşürüp düşürmediğini (missing-mention) doğrulayın. Ping olmadan yanıt vermesini istiyorsanız kanal içinrequireMention:falseayarlayı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 host/port ve sertifika kurulumunu doğrulayın.
İlgili
- Kanallara Genel Bakış — desteklenen tüm kanallar
- Eşleştirme — DM kimlik doğrulaması ve eşleştirme akışı
- Gruplar — grup sohbeti davranışı ve bahsetme koşulu
- Kanal Yönlendirme — iletiler için oturum yönlendirmesi
- Güvenlik — erişim modeli ve sıkılaştırma