Coût de la bande passante des agents IA : Les vrais chiffres par tâche
Un agent de navigateur télécharge chaque image, police et traqueur à chaque étape. À 8 navigations par tâche, cela fait 24 Mo - environ 700 Go par mois pour mille tâches par jour. Voici où cela va et comment le réduire.
Le coût de la bande passante des agents IA que personne ne prévoit est celui qui arrive avec le navigateur. Un scraper HTTP récupère le HTML qu'il analyse et s'arrête. Un agent utilise un vrai Chromium : il télécharge les images pour que l'étape de vision puisse les voir, les polices web pour que la mise en page se stabilise, les balises d'analyse parce que personne ne lui a dit de ne pas le faire - et il le refait à chaque navigation, à chaque nouvelle tentative, pour chaque tâche. Cet article fait l'arithmétique à voix haute, vous montre comment mesurer votre propre chiffre au lieu de faire confiance au nôtre, et répertorie les leviers qui réduisent une facture de gigaoctet résidentiel d'environ 10 fois.
L'arithmétique : poids de la page multiplié par les étapes multiplié par les tâches
Commencez par les mesures que nous avons publiées auparavant : un rendu complet de navigateur d'une page moderne déplace 2-5 Mo une fois que les images, médias, polices et scripts tiers sont chargés, tandis que la même page avec les actifs bloqués est souvent inférieure à 150 Ko de HTML. Prenez 3 Mo comme moyenne de travail pour un chargement de page frais. Comptez maintenant les navigations plutôt que les étapes - un agent qui clique à l'intérieur d'une page télécharge très peu à nouveau, mais chaque nouvelle URL est une nouvelle page. Une tâche de recherche ou de vérification de prix réaliste en touche environ huit :
- Par tâche : 8 navigations x 3 Mo = 24 Mo à travers le proxy.
- Par jour : 1 000 tâches x 24 Mo = 24 000 Mo = ~23 Go.
- Par mois : 23 Go x 30 = ~700 Go.
- Par facture : au tarif de 1 à 6 $ par Go du marché résidentiel, cela fait 700 à 4 200 $ par mois - environ 0,07 $ par tâche à un tarif moyen de 3 $ par Go.
Sept cents par tâche semblent dérisoires jusqu'à ce que ce soit la plus grande ligne dans l'économie unitaire de votre agent. Contrairement aux jetons, cela évolue avec la lourdeur de vos cibles plutôt qu'avec la difficulté de votre tâche : une tâche triviale sur un marché riche en images coûte plus cher qu'une tâche complexe sur un site textuel. Si la tarification par Go est nouvelle pour vous, notre explication de ce qu'un gigaoctet résidentiel achète réellement couvre le côté pages par Go de la même équation.
Mesurez votre propre coût de bande passante des agents IA
Le nôtre est une moyenne ; le vôtre dépend entièrement de vos cibles. Chromium peut écrire un fichier HAR de chaque requête qu'il effectue, et l'utilisation du navigateur expose cela via record_har_path. Utilisez record_har_mode="full" pour que les champs de taille soient remplis, et record_har_content="omit" pour obtenir les comptes d'octets sans intégrer chaque corps de réponse dans le fichier :
from browser_use import Browser
browser = Browser(
proxy={
"server": "http://gate.quantumproxies.io:8000",
"username": "USER",
"password": "PASS",
},
record_har_path="./runs/task-01.har",
record_har_mode="full", # 'minimal' drops the size fields you need
record_har_content="omit", # sizes yes, response bodies no
)
Ensuite, additionnez-le. Un proxy facture dans les deux sens, donc les en-têtes de requête comptent aussi, et HAR écrit -1 lorsqu'une taille est inconnue - fixez-les à zéro plutôt que de les laisser soustraire silencieusement :
import json, sys
har = json.load(open(sys.argv[1]))
entries = har["log"]["entries"]
def size(d, *keys):
return sum(max(0, d.get(k, 0) or 0) for k in keys)
total = 0
by_type = {}
for e in entries:
up = size(e["request"], "headersSize", "bodySize")
down = size(e["response"], "headersSize", "bodySize")
total += up + down
mime = e["response"].get("content", {}).get("mimeType", "?").split(";")[0]
by_type[mime] = by_type.get(mime, 0) + up + down
print(f"{len(entries)} requests, {total/1_048_576:.2f} MB billed")
for mime, n in sorted(by_type.items(), key=lambda kv: -kv[1])[:8]:
print(f" {n/1024:8.0f} KB {mime}")
Exécutez cela sur trois tâches représentatives et vous aurez un coût réel par tâche. La répartition par MIME est la partie utile : sur la plupart des sites grand public, les premières lignes sont des images, des vidéos, des polices et des analyses, et aucune d'elles ne nourrit le raisonnement de votre agent.

Levier 1 : arrêtez de télécharger ce que l'agent ne lit jamais
C'est le grand et cela vaut 5-10 fois à lui seul. Dans Playwright ou Puppeteer, vous interceptez les requêtes et les annulez par type de ressource - la recette est dans notre guide pour réduire une facture de Go proxy. Dans l'utilisation du navigateur, vous avez deux outils plus grossiers mais efficaces : les indicateurs de lancement de Chromium via args, et le jeu d'extensions par défaut, qui inclut uBlock Origin plus la gestion des cookies et le nettoyage des URL et est activé par enable_default_extensions. Laissez cela activé - chaque appel de publicité et de traqueur qu'il tue est un appel pour lequel vous n'êtes pas facturé.
browser = Browser(
proxy=PROXY,
enable_default_extensions=True, # uBlock Origin: fewer tracker requests
args=[
"--blink-settings=imagesEnabled=false", # no image bytes at all
"--disable-remote-fonts", # no web font downloads
"--autoplay-policy=user-gesture-required",# no video streaming itself
"--mute-audio",
],
)
Un avertissement honnête : tuer les images aveugle un agent piloté par la vision. Si votre agent raisonne sur des captures d'écran, testez-le avec les images désactivées avant de le déployer - de nombreuses tâches survivent car le DOM porte toujours le texte et la structure, mais une tâche qui identifie des produits par photo ne le fera pas. Si cela échoue, abandonnez imagesEnabled=false et conservez les économies sur les polices, les médias et les traqueurs, qui représentent toujours la majeure partie du gain.
Levier 2 : enfermez l'agent
Un agent qui se perd est un agent qui diffuse des vidéos à travers votre passerelle résidentielle mesurée. L'utilisation du navigateur a allowed_domains et prohibited_domains pour cela, avec allowed_domains prenant la priorité lorsque vous définissez les deux. Les modèles comme *.example.com couvrent les sous-domaines ; les jokers dans la position TLD sont rejetés délibérément, et les listes de plus de cent entrées sont optimisées en ensembles. Définissez-le sur chaque agent de production - c'est un contrôle de coût avant d'être un contrôle de sécurité.
Levier 3 : réutilisez le profil et limitez les nouvelles tentatives
Un profil incognito frais par exécution signifie un cache HTTP vide, donc l'agent retélécharge le même logo, feuille de style et ensemble de frameworks à chaque tâche sur le même site. Pointer user_data_dir vers un répertoire persistant permet au cache de faire son travail entre les exécutions. Le compromis est l'identité : un profil mis en cache avec des cookies est une empreinte stable, donc épinglez un profil à une IP de sortie fixe plutôt que de le laisser se déplacer dans le pool - le jumelage est couvert dans notre guide de configuration du proxy pour l'utilisation du navigateur.
Les nouvelles tentatives sont l'autre multiplicateur silencieux. Trois tentatives sur une page de 3 Mo transforment une navigation échouée en 9 Mo, et les agents réessaient plus que les scrapers car le modèle continue de décider de "réessayer". Limitez-le à une nouvelle tentative, et faites en sorte que la nouvelle tentative change l'IP de sortie au lieu de répéter la même requête à travers la même adresse bloquée. Deux tentatives à travers deux IP battent cinq à travers une, à 40 % des octets.
Voyez combien coûte un gigaoctet sur le résidentiel payant par Go

Levier 4 : n'utilisez pas un agent dont vous n'avez pas besoin
C'est la partie franche. Un agent mérite son coût lorsque le chemin est inconnu - lorsqu'il doit chercher, lire, décider et naviguer vers des données dont l'URL n'aurait pu être écrite à l'avance. Lorsque vous connaissez déjà l'URL et les champs, utiliser un navigateur pour les obtenir est le moyen le plus coûteux de le faire. Une API Scraper qui renvoie du markdown propre ou du JSON livre la même page sous forme d'environ 30-60 Ko de texte extrait au lieu de 3 Mo de rendu, car le dépouillement des actifs et l'analyse se font à la périphérie et vous êtes facturé pour le résultat, pas le trafic brut. Sur la tarification par requête, qui tourne généralement autour de 1 à 3 $ pour mille requêtes réussies sur le marché, huit pages coûtent des centimes.
Le modèle qui gagne en production est hybride : laissez l'agent explorer et décider, puis confiez la partie répétable à un chemin d'API. Une fois qu'il a découvert que le prix se trouve à une URL spécifique dans un champ spécifique, cette recherche ne devrait plus jamais passer par un navigateur. Nos notes sur navigateur sans tête contre requêtes HTTP quantifient le même compromis pour le scraping classique, et la pile d'agents plus large est dans infrastructure web pour les agents IA.
À quoi ressemble la facture optimisée
Empilez les leviers et refaites l'arithmétique. Les actifs bloqués font passer la page fraîche moyenne de 3 Mo à environ 300 Ko, donc huit navigations deviennent 2,4 Mo au lieu de 24 Mo. Mille tâches par jour représentent alors environ 2,3 Go par jour et 70 Go par mois - 70 à 420 $ aux tarifs du marché, contre 700 à 4 200 $ auparavant. Rien n'a changé dans la capacité de l'agent ; il a simplement cessé de payer pour télécharger des photographies qu'il n'a jamais regardées.
Questions fréquemment posées
Quelle quantité de bande passante un agent IA utilise-t-il ?
Prévoyez environ 3 Mo par chargement de page frais avec les actifs activés, donc environ 24 Mo pour une tâche qui touche huit URL. Les pages riches en vidéos sont plusieurs fois plus élevées ; les sites axés sur le texte sont plus bas. Mesurez les vôtres avec un enregistrement HAR plutôt que de supposer - l'écart entre les sites cibles est plus grand que l'écart entre les cadres d'agents.
Pourquoi les agents coûtent-ils plus de bande passante que les scrapers ?
Un scraper récupère un document et l'analyse. Un agent rend la page complète - images, polices, médias, analyses - parce qu'il a besoin que la page se comporte comme une page, et il le refait à chaque navigation et à chaque nouvelle tentative. Il explore également : il visite des pages qu'un scraper ne demanderait jamais, car il ne sait pas à l'avance laquelle contient la réponse.
Les appels API LLM passent-ils par le proxy ?
Ils ne devraient pas. Configurez le proxy uniquement sur la session du navigateur. Si vous définissez HTTP_PROXY ou HTTPS_PROXY comme variables d'environnement pour être minutieux, chaque requête de modèle passe également par votre passerelle résidentielle mesurée - invites et réponses, à chaque étape. C'est du pur gaspillage, et c'est l'une des plus grandes économies faciles à trouver dans un agent existant.
Une API de scraping est-elle moins chère qu'un agent ?
Pour les URL connues et les champs connus, presque toujours. Vous recevez du markdown ou du JSON analysé mesuré en dizaines de kilooctets plutôt qu'un rendu de plusieurs mégaoctets, et la tarification par requête sur le marché se situe autour de 1 à 3 $ pour mille appels réussis. L'agent vaut son coût lorsque le chemin doit être découvert - utilisez-le pour explorer, puis confiez les recherches répétables à l'API.
Les agents devraient-ils utiliser des proxies de centre de données pour économiser de l'argent ?
Là où la cible les tolère, oui - la bande passante du centre de données est plusieurs fois moins chère par gigaoctet et la vitesse est meilleure. Le hic, c'est que le trafic des agents semble déjà non humain, donc une IP de centre de données sur un site protégé a tendance à échouer, et une tâche échouée coûte ses octets deux fois. Par défaut, utilisez le centre de données sur les cibles non protégées et réservez le résidentiel pour les sites qui filtrent réellement par réputation IP.
La bande passante est la ligne discrète dans l'économie des agents, et elle répond à l'ingénierie ennuyeuse : mesurez avec un HAR, bloquez ce que l'agent ne lit jamais, clôturez les domaines, réutilisez le cache, limitez les nouvelles tentatives, et refusez de rendre une page dont vous connaissez déjà l'URL. Faites les six et un mois de 700 Go devient un mois de 70 Go sans perte de capacité.
Exécutez vos agents sur des proxies résidentiels payants par Go