Aller au contenu

Agents qui naviguent sur le web

Certains agents fonctionnent en conduisant réellement un navigateur : charger une page, lire ce qui est rendu, suivre des liens, prendre une capture d’écran ou un PDF. C’est ainsi qu’ils gèrent les sites qui construisent leur contenu en JavaScript.

Vous rencontrerez cela par le biais de l’agent de navigateur, de la fonctionnalité de navigateur ou du mode de navigation d’un travail d’enrichissement.

Sites web publics, sur HTTP et HTTPS. Rien d’autre.

Le navigateur fonctionne quelque part sans accès à quoi que ce soit de privé — ni nos services internes, ni quoi que ce soit sur votre propre réseau. Les demandes pour des adresses privées ou réservées sont refusées à la frontière, et le refus est basé sur l’adresse à laquelle on se connecte réellement, et non sur une vérification antérieure. Un nom d’hôte qui résout à une adresse publique lorsqu’il est inspecté et à une adresse privée lorsqu’il est utilisé est toujours refusé.

Cela vaut la peine d’être su pour deux raisons :

  • Les URL internes ne fonctionneront pas. Pointer un agent de navigation vers quelque chose sur votre propre intranet, une adresse IP privée ou localhost échouera. Il n’y a aucun paramètre pour changer cela.
  • C’est une frontière, pas un filtre. Cela ne dépend pas du comportement de l’agent, donc une invite qui incite un agent à essayer ne passera toujours pas.

L’agent est informé clairement et lui est dit de ne pas réessayer :

Blocage par la frontière de sortie du navigateur … Ne pas réessayer — c’est une politique, pas un échec transitoire.

Cette formulation est délibérée. Sans elle, l’échec ressemble à un dépassement de délai, et l’agent gaspille ses étapes restantes à réessayer quelque chose qui ne réussira jamais. Un refus est rapide — environ un dixième de seconde — donc une destination bloquée ne vous coûte presque rien.

Sur HTTP simple, vous pouvez plutôt voir la page rapportée comme retournant le statut 403. Même cause.

Tous les échecs ne terminent pas l’exécution. Lorsque la page est le problème — un élément que l’agent cherchait n’est pas là, la page est lente à charger, le site répond avec une page d’erreur telle que “non trouvé”, ou l’adresse n’existe pas — l’agent est informé de ce qui a mal tourné et de ce qu’il faut essayer ensuite, et ajuste : il attend plus longtemps, essaie une autre partie de la page, ou choisit une autre URL. Il abandonne après quelques tentatives modifiées et le signale dans son résultat. Une destination refusée ou un site qui bloque les navigateurs automatisés termine immédiatement l’exécution, car réessayer ne peut pas aider.

Ce que vous voyez Ce que c’est généralement
Bloqué par la frontière de sortie du navigateur La destination est privée, réservée ou non autorisée
Statut 403 sur une URL que vous vous attendiez à fonctionner Même chose que ci-dessus, sur HTTP simple
Un délai d’attente de navigation Le site est vraiment lent, ou attend quelque chose qui n’arrivera jamais
Une page vide ou partielle Le site n’a rien rendu d’utile, ou nécessite une connexion
L’agent s’arrête après plusieurs tentatives Il a un budget d’étapes ; un site qui nécessite de nombreuses interactions peut l’épuiser

Le travail du navigateur est mesuré en secondes de navigateur — une unité distincte des jetons de modèle, car le temps qu’une page prend n’a rien à voir avec la quantité lue par le modèle. Voir les références des unités de facturation.

Une page qui est refusée coûte toujours le moment qu’il a fallu pour refuser, ce qui est négligeable. Une page qui ne répond pas jusqu’à ce qu’elle dépasse le délai de réflexion coûte le temps d’attente.