Get started
Protezione dai loop dei bot
OpenClaw può accettare messaggi scritti da altri bot nei canali che supportano allowBots. Quando questo percorso è abilitato, la protezione dai cicli tra coppie impedisce a due identità bot di rispondersi indefinitamente.
La protezione viene applicata dal gestore principale delle risposte in ingresso. Ogni canale compatibile converte il proprio evento in ingresso in informazioni generiche: account o ambito, ID della conversazione, ID del bot mittente e ID del bot destinatario. Il componente principale tiene traccia della coppia di partecipanti in entrambe le direzioni (da A a B e da B ad A sono considerate la stessa coppia), applica un limite in una finestra temporale scorrevole e sospende la coppia per un periodo di attesa dopo il superamento del limite.
Valori predefiniti
La protezione dai cicli tra coppie è attiva ogni volta che un canale consente ai messaggi creati da bot di raggiungere lo smistamento. Valori predefiniti integrati:
| Chiave | Valore predefinito | Significato |
|---|---|---|
enabled |
true |
Protezione attiva per i canali che la supportano. |
maxEventsPerWindow |
20 |
Eventi che una coppia di bot può scambiarsi entro la finestra. |
windowSeconds |
60 |
Durata della finestra temporale scorrevole. |
cooldownSeconds |
60 |
Tempo di sospensione dopo che la coppia supera il limite. |
La protezione non influisce sui messaggi scritti da persone, sulle distribuzioni con un solo bot, sul filtraggio dei messaggi inviati a sé stessi o sulle risposte dei bot che rimangono entro il limite.
Configurare i valori predefiniti condivisi
Imposta una sola volta channels.defaults.botLoopProtection per fornire a tutti i canali compatibili la stessa configurazione di base. Le sostituzioni a livello di canale, account e stanza possono comunque adattare le singole superfici.
{ channels: { defaults: { botLoopProtection: { maxEventsPerWindow: 20, windowSeconds: 60, cooldownSeconds: 60, }, }, },}Imposta enabled: false solo quando la politica del canale consente intenzionalmente conversazioni tra bot senza sospensione automatica.
Sostituire i valori per canale, account o stanza
I canali compatibili sovrappongono la propria configurazione al valore predefinito condiviso, chiave per chiave. Precedenza, dal livello più specifico:
channels.<channel>.<room-or-space>.botLoopProtection, quando il canale supporta sostituzioni per singola conversazionechannels.<channel>.accounts.<account>.botLoopProtection, quando il canale supporta gli accountchannels.<channel>.botLoopProtection, quando il canale supporta valori predefiniti di primo livellochannels.defaults.botLoopProtection- valori predefiniti integrati
{ channels: { defaults: { botLoopProtection: { maxEventsPerWindow: 20, }, }, discord: { botLoopProtection: { maxEventsPerWindow: 8, }, accounts: { secondary: { allowBots: "mentions", botLoopProtection: { maxEventsPerWindow: 5, cooldownSeconds: 90, }, }, }, }, googlechat: { allowBots: true, groups: { "spaces/AAAA": { botLoopProtection: { maxEventsPerWindow: 5, }, }, }, }, matrix: { allowBots: "mentions", groups: { "!roomid:example.org": { botLoopProtection: { maxEventsPerWindow: 5, }, }, }, }, slack: { allowBots: "mentions", botLoopProtection: { maxEventsPerWindow: 8, }, }, },}Compatibilità dei canali
- Discord: informazioni native
author.bot, indicizzate per account Discord, canale e coppia di bot. - Google Chat: informazioni native
sender.type=BOTper i messaggi accettati creati da bot, indicizzate per account, spazio e coppia di bot. - Matrix: account bot Matrix configurati, indicizzati per account Matrix, stanza e coppia di bot configurata.
- Slack: informazioni native
bot_idper i messaggi accettati creati da bot, indicizzate per account Slack, canale e coppia di bot.
I canali che non espongono un'identità bot in ingresso affidabile continuano a utilizzare i normali filtri per i messaggi inviati a sé stessi e per le politiche di accesso. Non devono adottare questa protezione finché non sono in grado di identificare entrambi i partecipanti della coppia di bot.
Consulta Runtime dell'SDK per i dettagli di implementazione dei plugin.