Developer and self-hosted
IRC
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ıç
~/.openclaw/openclaw.jsoniçinde IRC yapılandırmasını etkinleştirin.- En az ş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 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.
- Gateway'i başlatın/yeniden başlatın:
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=falseayarlayın. channels.irc.dmPolicyvarsayılan olarak"pairing"değerini kullanır.channels.irc.groupPolicyvarsayılan olarak"allowlist"değerini kullanır.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ı "kapı" vardır:
- Kanal erişimi (
groupPolicy+groups): botun bir kanaldan mesaj kabul edip etmeyeceği. - Gönderen erişimi (
groupAllowFrom/ kanal başınagroups["#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: allowFrom DM'ler içindir, kanallar için değil
Ş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.groupAllowFromayarlayarak (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):
{
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:
{
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:
{
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
{
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:
{
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:[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:
{
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: "[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_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.groupsdeğ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ç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 ana makine/bağlantı noktası ve sertifika kurulumunu doğrulayın.
İlgili
- Kanallara Genel Bakış — desteklenen tüm kanallar
- Eşleme — DM kimlik doğrulaması ve eşleme akışı
- Gruplar — grup sohbeti davranışı ve bahsetme kapısı
- Kanal Yönlendirme — mesajlar için oturum yönlendirme
- Güvenlik — erişim modeli ve güçlendirme