# Categorías

> Las siete categorías de cada petición y las claves adicionales de la política: bots no verificables, trampas, sondeo de secretos, robots.txt y ráfagas.

Con el control de rastreadores IA activado, cada petición recibe exactamente una categoría.

| Categoría | Panel | Qué es |
|---|---|---|
| `ai_training` | Rastreador de IA | Rastreadores que recogen contenido para entrenar modelos (GPTBot, ClaudeBot, CCBot, Google-Extended…). |
| `ai_search` | Búsqueda con IA | Rastreadores de buscadores con IA que indexan páginas para citarlas (OAI-SearchBot, PerplexityBot…). |
| `ai_user_agent` | Asistente de IA | Agentes que piden una página porque una persona acaba de preguntar a un asistente (ChatGPT-User, Perplexity-User, firmas Web Bot Auth). |
| `search_engine` | Buscador | Buscadores clásicos (Googlebot, Bingbot, Applebot, DuckDuckBot…). |
| `unverified_automation` | Automatización no verificada | Automatización sin identidad verificable: navegadores sin interfaz, Playwright, `python-requests`, `curl/`, un User-Agent vacío, comportamiento de escáner, clientes que siguieron la trampa. |
| `spoofed` | Suplantado | Dice ser un bot del catálogo y la [verificación](https://developers.openwaf.dev/es/ai-crawl-control/verification/) lo desmiente. |
| `human` | Humano | Todo lo demás. Siempre permitido; no se configura. |

## Claves adicionales de la política

Además de las seis categorías configurables, la política tiene cinco claves para situaciones que se pueden sumar a la categoría. Cuando se aplican varias, gana la acción más fuerte.

| Clave | Panel | Cuándo se aplica |
|---|---|---|
| `unverified_bot` | Rastreadores no verificables | El User-Agent nombra un bot del catálogo que no publica rangos de IP, DNS inverso ni firmas (ClaudeBot, Bytespider…). |
| `trap_hit` | Siguieron la trampa | El cliente (IP o huella TLS) siguió antes el [enlace trampa](https://developers.openwaf.dev/es/ai-crawl-control/trap-and-tarpit/). |
| `secret_probe` | Sondeo de secretos | La ruta busca secretos: `.env` y `.env.*`, `terraform.tfstate*`, `/@fs/`, `serviceaccount/token`, `.git/config`, `.git/HEAD`, `.aws/credentials`, `id_rsa`, `wp-config.php.*`, `.npmrc`, `docker-compose*.yml`, `.DS_Store`… |
| `robots_violation` | Violaciones de robots.txt | Un bot del catálogo pide una ruta que tu `robots.txt` le prohíbe (RFC 9309: gana la regla más larga, `Allow` en caso de empate). |
| `agent_burst` | Ráfaga compuesta | Un agente en modo código lanza muchos endpoints distintos en segundos, recorre identificadores o pagina de forma sistemática. |

El borde lee las respuestas de `robots.txt` que pasan por él (y lo pide a tu origen si no ha visto ninguno de un nombre en 6 horas) para detectar las violaciones.

## Acciones

| Acción | Panel | Efecto en modo aplicar |
|---|---|---|
| `allow` | Permitir | Solo contar. |
| `log` | Registrar | Contar y dejar un evento destacado. |
| `challenge` | Reto | El [reto de navegador](https://developers.openwaf.dev/es/waf/browser-challenge/) en las navegaciones HTML `GET`; `403` JSON en el resto. |
| `block` | Bloquear | La [respuesta de bloqueo](https://developers.openwaf.dev/es/ai-crawl-control/settings/#block-response): 403 y la página de bloqueo por defecto. |
| `tarpit` | Laberinto | Un laberinto lento de páginas generadas en los `GET` de HTML; `403` en el resto. Necesita `tarpit.enabled`. |

`GET /robots.txt` nunca se reta ni se bloquea.
