Get started
Perlindungan loop bot
Perlindungan loop bot
OpenClaw dapat menerima pesan yang ditulis oleh bot lain di channel yang mendukung allowBots.
Saat jalur itu diaktifkan, perlindungan loop pasangan mencegah dua identitas bot
saling membalas tanpa batas.
Penjaga ini diterapkan oleh runner balasan masuk inti. Setiap channel yang mendukungnya memetakan peristiwa masuknya sendiri menjadi fakta generik: akun atau cakupan, id percakapan, id bot pengirim, dan id bot penerima. Inti kemudian melacak pasangan peserta di kedua arah, menerapkan anggaran jendela geser, dan menekan pasangan tersebut selama masa jeda setelah anggaran terlampaui.
Default
Perlindungan loop pasangan aktif saat sebuah channel mengizinkan pesan yang dibuat bot mencapai dispatch. Default bawaan adalah:
maxEventsPerWindow: 20- pasangan bot dapat bertukar 20 peristiwa dalam jendelawindowSeconds: 60- panjang jendela gesercooldownSeconds: 60- waktu penekanan setelah pasangan melampaui anggaran
Penjaga ini tidak memengaruhi pesan normal yang ditulis manusia, deployment bot tunggal, pemfilteran pesan sendiri, atau balasan bot sekali jalan yang tetap berada di bawah anggaran.
Konfigurasikan default bersama
Atur channels.defaults.botLoopProtection sekali untuk memberi setiap channel yang mendukung
baseline yang sama. Penggantian channel dan akun masih dapat menyetel permukaan individual.
{ channels: { defaults: { botLoopProtection: { maxEventsPerWindow: 20, windowSeconds: 60, cooldownSeconds: 60, }, }, },}Atur enabled: false hanya saat kebijakan channel Anda secara sengaja mengizinkan
percakapan bot-ke-bot tanpa penekanan otomatis.
Ganti per channel atau akun
Channel yang mendukung melapiskan konfigurasinya sendiri di atas default bersama. Prioritasnya adalah:
channels.<channel>.<room-or-space>.botLoopProtection, saat channel mendukung penggantian per percakapanchannels.<channel>.accounts.<account>.botLoopProtection, saat channel mendukung akunchannels.<channel>.botLoopProtection, saat channel mendukung default tingkat ataschannels.defaults.botLoopProtection- default bawaan
{ channels: { defaults: { botLoopProtection: { maxEventsPerWindow: 20, }, }, discord: { botLoopProtection: { maxEventsPerWindow: 8, }, accounts: { molty: { allowBots: "mentions", botLoopProtection: { maxEventsPerWindow: 5, cooldownSeconds: 90, }, }, }, }, slack: { allowBots: "mentions", botLoopProtection: { maxEventsPerWindow: 8, }, }, matrix: { allowBots: "mentions", groups: { "!roomid:example.org": { botLoopProtection: { maxEventsPerWindow: 5, }, }, }, }, googlechat: { allowBots: true, groups: { "spaces/AAAA": { botLoopProtection: { maxEventsPerWindow: 5, }, }, }, }, },}Dukungan channel
- Discord: fakta
author.botnative, diberi kunci berdasarkan akun Discord, channel, dan pasangan bot. - Slack: fakta
bot_idnative untuk pesan yang ditulis bot yang diterima, diberi kunci berdasarkan akun Slack, channel, dan pasangan bot. - Matrix: akun bot Matrix yang dikonfigurasi, diberi kunci berdasarkan akun Matrix, room, dan pasangan bot yang dikonfigurasi.
- Google Chat: fakta
sender.type=BOTnative untuk pesan yang ditulis bot yang diterima, diberi kunci berdasarkan akun, space, dan pasangan bot.
Channel yang tidak mengekspos identitas bot masuk yang andal tetap menggunakan pemfilteran pesan sendiri dan kebijakan akses normalnya. Channel tersebut sebaiknya tidak ikut memakai penjaga ini sampai dapat mengidentifikasi kedua peserta dalam pasangan bot.
Lihat runtime SDK untuk detail implementasi Plugin.