#room) dan pesan langsung.
Instal plugin IRC resmi, lalu konfigurasikan di bawah channels.irc.
Mulai cepat
- Instal plugin:
- Tetapkan setidaknya host, nick, dan kanal yang akan diikuti di
~/.openclaw/openclaw.json:
- Mulai/mulai ulang Gateway:
Ketahanan pesan masuk
OpenClaw menulis setiapPRIVMSG IRC yang diterima ke antrean masuk durabelnya sebelum pemeriksaan kebijakan normal dan pengiriman agen. Pesan yang tertunda atau dapat dicoba ulang tetap tersedia setelah Gateway dimulai ulang dan tetap diserialkan per kanal atau rekan pesan langsung.
IRC tidak menyediakan ID pengiriman yang dapat diputar ulang atau mengirim ulang pesan yang terlewat oleh klien yang terputus. Oleh karena itu, OpenClaw menetapkan ID lokal yang stabil hanya dalam koneksi TCP saat ini. Antrean melindungi rentang waktu lokal dari penerimaan hingga pengiriman; antrean tidak dapat memulihkan pesan yang tidak pernah mencapai OpenClaw atau mendeduplikasi pengiriman ulang server antar-koneksi.
Pengaturan koneksi
Bawaan keamanan
- IRC menggunakan soket TCP/TLS mentah di luar perutean proksi penerusan yang dikelola operator OpenClaw. Dalam penerapan yang mengharuskan semua lalu lintas keluar melalui proksi penerusan tersebut, tetapkan
channels.irc.enabled=falsekecuali lalu lintas keluar IRC langsung disetujui secara eksplisit. channels.irc.dmPolicysecara bawaan adalah"pairing": pengirim DM yang tidak dikenal memperoleh kode pemasangan yang Anda setujui denganopenclaw pairing approve irc <code>.channels.irc.groupPolicysecara bawaan adalah"allowlist".- Dengan
groupPolicy="allowlist", tetapkanchannels.irc.groupsuntuk menentukan kanal yang diizinkan. - Gunakan TLS (
channels.irc.tls=true) kecuali Anda sengaja menerima transportasi teks biasa.
Kontrol akses
Ada dua “gerbang” terpisah untuk kanal IRC:- Akses kanal (
groupPolicy+groups): apakah bot menerima pesan dari suatu kanal atau tidak. - Akses pengirim (
groupAllowFrom/groups["#channel"].allowFromper kanal): siapa yang diizinkan memicu bot di dalam kanal tersebut.
- Daftar izin DM (akses pengirim DM):
channels.irc.allowFrom - Daftar izin pengirim grup (akses pengirim kanal):
channels.irc.groupAllowFrom - Kontrol per kanal (aturan kanal + pengirim + penyebutan):
channels.irc.groups["#channel"]denganrequireMention,allowFrom,enabled,tools,toolsBySender,skills, dansystemPrompt channels.irc.groupPolicy="open"mengizinkan kanal yang belum dikonfigurasi (secara bawaan tetap dibatasi oleh penyebutan)
nick!user@host).
Pencocokan nick tanpa awalan dapat berubah dan hanya diaktifkan ketika channels.irc.dangerouslyAllowNameMatching: true.
Kendala umum: allowFrom untuk DM, bukan kanal
Jika Anda melihat log seperti:
irc: drop group sender alice!ident@host (policy=allowlist)
- menetapkan
channels.irc.groupAllowFrom(global untuk semua kanal), atau - menetapkan daftar izin pengirim per kanal:
channels.irc.groups["#channel"].allowFrom
#openclaw berbicara dengan bot):
Pemicu balasan (penyebutan)
Meskipun suatu kanal diizinkan (melaluigroupPolicy + groups) dan pengirim diizinkan, OpenClaw secara bawaan menerapkan pembatasan berdasarkan penyebutan dalam konteks grup. Bot dianggap disebut ketika pesan memuat nick bot yang terhubung atau cocok dengan pola penyebutan yang Anda konfigurasi.
Artinya, Anda mungkin melihat log seperti drop channel … (missing-mention) kecuali pesan menyertakan pola penyebutan yang cocok dengan bot.
Agar bot membalas di kanal IRC tanpa memerlukan penyebutan, nonaktifkan pembatasan berdasarkan penyebutan untuk kanal tersebut:
Catatan keamanan (disarankan untuk kanal publik)
Jika Anda mengizinkanallowFrom: ["*"] di kanal publik, siapa pun dapat memberi prompt kepada bot.
Untuk mengurangi risiko, batasi alat untuk kanal tersebut.
Alat yang sama untuk semua orang di kanal
Alat berbeda per pengirim (pemilik mendapat kewenangan lebih besar)
GunakantoolsBySender untuk menerapkan kebijakan yang lebih ketat pada "*" dan kebijakan yang lebih longgar pada nick Anda:
- Kunci
toolsBySendersebaiknya menggunakan awalan eksplisit (channel:,id:,e164:,username:,name:). Untuk IRC, gunakanid:dengan nilai identitas pengirim:id:aliceatauid:alice!~alice@203.0.113.7untuk pencocokan yang lebih kuat. - Kunci lama tanpa awalan masih diterima, hanya dicocokkan sebagai
id:, dan memunculkan peringatan penghentian dukungan. - Kebijakan pengirim pertama yang cocok akan digunakan;
"*"adalah fallback karakter pengganti.
NickServ
Untuk mengidentifikasi diri dengan NickServ setelah terhubung:enabled hanya perlu bernilai false untuk menonaktifkannya). service secara bawaan adalah NickServ; passwordFile merupakan alternatif untuk password sebaris.
Pendaftaran satu kali opsional saat terhubung (register: true memerlukan registerEmail):
register setelah nick terdaftar untuk menghindari percobaan REGISTER berulang.
Variabel lingkungan
Akun bawaan mendukung:IRC_HOSTIRC_PORTIRC_TLSIRC_NICKIRC_USERNAMEIRC_REALNAMEIRC_PASSWORDIRC_CHANNELS(dipisahkan koma)IRC_NICKSERV_PASSWORDIRC_NICKSERV_REGISTER_EMAIL
IRC_HOST tidak dapat ditetapkan dari .env ruang kerja; lihat Berkas .env ruang kerja.
Pemecahan masalah
- Jika bot terhubung tetapi tidak pernah membalas di kanal, periksa
channels.irc.groupsdan apakah pembatasan berdasarkan penyebutan membuang pesan (missing-mention). Jika Anda ingin bot membalas tanpa ping, tetapkanrequireMention:falseuntuk kanal tersebut. - Jika proses masuk gagal, periksa ketersediaan nick dan kata sandi server.
- Jika TLS gagal pada jaringan khusus, periksa host/port dan penyiapan sertifikat.
Terkait
- Ikhtisar Kanal — semua kanal yang didukung
- Pemasangan — autentikasi DM dan alur pemasangan
- Grup — perilaku obrolan grup dan pembatasan berdasarkan penyebutan
- Perutean Kanal — perutean sesi untuk pesan
- Keamanan — model akses dan penguatan