La política tiene una acción por clave: las seis categorías configurables y las cinco claves adicionales. La decisión para una petición es la excepción propia del bot, si la tiene; si no, la acción más fuerte de las claves que se le aplican.
Valores por defecto
Todas las claves están en log, salvo ai_search, ai_user_agent y search_engine, que están en allow. Las personas siempre pasan.
Plantillas
Una plantilla sustituye la política entera. El modo, spoofed_challenge y las excepciones por bot no cambian. Las claves de policy que envíes en el mismo cambio se aplican encima de la plantilla.
| Clave | search_ok_block_training | verified_only | block_unverified_automation |
|---|---|---|---|
| Nombre en el panel | Permitir buscadores e IA de búsqueda, bloquear entrenamiento | Solo verificados | Bloquear todo lo automatizado no verificado |
ai_training | block | allow | log |
ai_search | allow | allow | allow |
ai_user_agent | allow | allow | allow |
search_engine | allow | allow | allow |
unverified_automation | log | challenge | block |
spoofed | challenge | block | block |
unverified_bot | log | block | log |
trap_hit | log | challenge | block |
secret_probe | log | block | block |
robots_violation | log | log | block |
agent_burst | log | challenge | block |
Cambiar la política
Control de rastreadores IA → Resumen → Configuración: Plantillas → Aplicar y después ajusta la Acción por categoría. Revisar y guardar enseña las diferencias antes de guardar.
openwaf-cloud ctl zones set example.com ai_agents.template=search_ok_block_training ai_agents.policy.spoofed=block \
--reason "Bloquear el entrenamiento y los rastreadores falsos"ai_agents en un PATCH …/edge es un JSON merge patch: los objetos se mezclan (la política, clave a clave), las listas se sustituyen enteras y null devuelve un campo a su valor por defecto. template es de solo escritura.
curl -sS -X PATCH "https://dash.openwaf.dev/v1/orgs/$ORG/zones/example.com/edge" \
-H "Authorization: Bearer $OPENWAF_TOKEN" \
-H "X-Change-Reason: Bloquear el entrenamiento y los rastreadores falsos" \
-H "Content-Type: application/json" \
-d '{"ai_agents": {"template": "search_ok_block_training", "policy": {"spoofed": "block"}}}'ai_agents_settings con {"zone": "example.com", "template": "search_ok_block_training", "patch": {"policy": {"spoofed": "block"}}, "reason": "…"}. Sin patch ni template solo lee los ajustes.
Excepciones por bot
bot_overrides (hasta 100 entradas {bot_id, action}) fija la acción de un bot del catálogo, sea cual sea su categoría. La lista se sustituye entera.
Configuración → Excepciones por rastreador → Añadir rastreador, elige el rastreador y su acción.
Pares bot:acción separados por comas; "" quita todas las excepciones.
openwaf-cloud ctl zones set example.com ai_agents.bot_overrides=gptbot:block,ccbot:allow --reason "Política por bot"{"ai_agents": {"bot_overrides": [{"bot_id": "gptbot", "action": "block"}, {"bot_id": "ccbot", "action": "allow"}]}}ai_agents_settings con "patch": {"bot_overrides": [{"bot_id": "gptbot", "action": "block"}]}.
Registro y aplicar
mode | Efecto |
|---|---|
log (por defecto) | Las decisiones se calculan y se cuentan con enforced: false; el tráfico pasa. Los informes las enseñan como «se habría aplicado». |
enforce | Las decisiones se aplican. |
La acción tarpit necesita tarpit.enabled; consulta Trampa y laberinto.
Un nombre con su propia política
hosts.<nombre>.ai_agents sustituye entera la configuración de la zona para ese nombre; el primer cambio de un nombre parte de la configuración de la zona. En el panel, usa Se aplica a en la configuración; en MCP, pasa host; en la CLI, usa --host:
openwaf-cloud ctl zones set example.com --host shop.example.com ai_agents.mode=enforce --reason "Aplicar en la tienda"