Get started

Protección contra bucles de bots

OpenClaw puede aceptar mensajes escritos por otros bots en canales que admiten allowBots. Cuando esta vía está habilitada, la protección contra bucles entre pares evita que dos identidades de bot se respondan entre sí indefinidamente.

La protección se aplica mediante el ejecutor principal de respuestas entrantes. Cada canal compatible convierte su evento entrante en datos genéricos: cuenta o ámbito, id. de conversación, id. del bot remitente e id. del bot receptor. El núcleo registra el par de participantes en ambas direcciones (de A a B y de B a A cuentan como el mismo par), aplica un límite de ventana deslizante y bloquea el par durante un período de espera después de que se supere el límite.

Valores predeterminados

La protección contra bucles entre pares está activa siempre que un canal permita que los mensajes escritos por bots lleguen al despacho. Valores predeterminados integrados:

Clave Valor predeterminado Significado
enabled true Protección activa para los canales que la admiten.
maxEventsPerWindow 20 Eventos que un par de bots puede intercambiar dentro de la ventana.
windowSeconds 60 Duración de la ventana deslizante.
cooldownSeconds 60 Tiempo de bloqueo después de que el par supere el límite.

La protección no afecta a los mensajes escritos por personas, las implementaciones con un solo bot, el filtrado de mensajes propios ni las respuestas de bots que no superen el límite.

Configurar valores predeterminados compartidos

Establezca channels.defaults.botLoopProtection una sola vez para proporcionar la misma configuración básica a todos los canales compatibles. Las anulaciones de canal, cuenta y sala pueden seguir ajustando superficies individuales.

json5
{  channels: {    defaults: {      botLoopProtection: {        maxEventsPerWindow: 20,        windowSeconds: 60,        cooldownSeconds: 60,      },    },  },}

Establezca enabled: false únicamente cuando la política de su canal permita intencionadamente conversaciones entre bots sin bloqueo automático.

Anular por canal, cuenta o sala

Los canales compatibles superponen su propia configuración al valor predeterminado compartido, clave por clave. Precedencia, de la más específica a la más general:

  1. channels.<channel>.<room-or-space>.botLoopProtection, cuando el canal admite anulaciones por conversación
  2. channels.<channel>.accounts.<account>.botLoopProtection, cuando el canal admite cuentas
  3. channels.<channel>.botLoopProtection, cuando el canal admite valores predeterminados de nivel superior
  4. channels.defaults.botLoopProtection
  5. valores predeterminados integrados
json5
{  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,      },    },  },}

Compatibilidad de canales

  • Discord: datos nativos de author.bot, identificados por cuenta de Discord, canal y par de bots.
  • Google Chat: datos nativos de sender.type=BOT para mensajes aceptados escritos por bots, identificados por cuenta, espacio y par de bots.
  • Matrix: cuentas de bot de Matrix configuradas, identificadas por cuenta de Matrix, sala y par de bots configurado.
  • Slack: datos nativos de bot_id para mensajes aceptados escritos por bots, identificados por cuenta de Slack, canal y par de bots.

Los canales que no proporcionan una identidad fiable del bot entrante siguen utilizando sus filtros habituales de mensajes propios y de políticas de acceso. No deben activar esta protección hasta que puedan identificar a ambos participantes del par de bots.

Consulte entorno de ejecución del SDK para obtener detalles sobre la implementación del Plugin.

Was this useful?
On this page

On this page