Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Automatisation du navigateur

Ce guide couvre la configuration des capacités d’automatisation de navigateur dans ZeroClaw, y compris l’automatisation en mode headless et l’accès à l’interface graphique via VNC.

Aperçu

ZeroClaw prend en charge plusieurs méthodes d’accès aux navigateurs :

MéthodeCas d’utilisationExigences
CLI agent-browserAutomatisation headless, agents IAnpm, Chrome
VNC + noVNCGUI d’accès, débogageXvfb, x11vnc, noVNC
Chrome Bureau à DistanceGUI distant via GoogleXFCE, compte Google

Démarrage rapide : automatisation sans tête

Installer agent-browser

Linux

# Installer CLI
npm install -g agent-browser

# Télécharger Chrome for Testing (inclut les dépendances système)
agent-browser install --with-deps

macOS / Windows

# Installer CLI
npm install -g agent-browser

- Téléchargez Chrome for Testing
agent-browser install

2. Vérifier la configuration ZeroClaw

L’outil de navigateur est activé par défaut avec allowed_domains = ["*"]. Restreignez les domaines ou désactivez-le via zeroclaw config set :

sh

zeroclaw config set browser.allowed_domains '["example.com", "docs.example.com"]'
zeroclaw config set browser.enabled false

Tableau de bord de la passerelle

Ouvrez /config/browser dans le tableau de bord web.

zerocode

Dans le volet Config, sous Navigateur.

Politique de schéma d’URL. browser_open accepte à la fois les URL http:// et https:// (tout comme web_fetch, http_request et l’outil browser, qui acceptent déjà le HTTP en clair). Le bloc local/private-host et la liste d’autorisation allowed_domains s’appliquent à http:// exactement comme à https://. Étant donné que allowed_domains est par défaut défini sur ["*"], la configuration par défaut permet d’ouvrir tout hôte public via HTTP en clair. Pour réduire l’exposition au HTTP en clair, remplacez la liste d’autorisation par joker par les hôtes publics spécifiques en lesquels vous avez confiance. Notez que cela n’impose pas HTTPS pour ces hôtes : la liste d’autorisation contrôle les origines et non les schémas ; un comportement HTTPS uniquement pour un hôte autorisé nécessite que cet hôte lui-même redirige ou refuse le HTTP en clair (HSTS, 308 côté serveur), ou une future politique de navigateur sensible aux schémas.

Pour le backend agent_browser, définissez browser.headed = true pour lancer le navigateur en mode visible (headed) à des fins de débogage ou de configuration initiale de la connexion, ou browser.headed = false pour forcer le mode headless. Lorsque browser.headed n’est pas défini, Zeroclaw conserve le comportement hérité de l’environnement AGENT_BROWSER_HEADED. Le backend rust-native continue d’utiliser browser.native_headless.

Consultez la référence de configuration pour connaître tous les champs et valeurs par défaut des navigateurs.

3. Test

sh

echo Ouvrez https://example.com et dites-moi ce qu'il indique | zeroclaw agent -a assistant

Configuration VNC (accès GUI)

À des fins de débogage ou lorsque vous avez besoin d’un accès visuel au navigateur :

Installer les dépendances

Debian/Ubuntu

apt-get install -y xvfb x11vnc fluxbox novnc websockify

# Facultatif : environnement de bureau pour Chrome Remote Desktop
apt-get install -y xfce4 xfce4-goodies

Démarrer le serveur VNC

bash

#!/bin/bash
# Start virtual display with VNC access

DISPLAY_NUM=99
VNC_PORT=5900
NOVNC_PORT=6080
RESOLUTION=1920x1080x24

# Démarrer Xvfb
Xvfb :$DISPLAY_NUM -screen 0 $RESOLUTION -ac &
sleep 1

# Démarrer le gestionnaire de fenêtre
fluxbox -display :$DISPLAY_NUM &
sleep 1

# Démarrer x11vnc
x11vnc -display :$DISPLAY_NUM -rfbport $VNC_PORT -forever -shared -nopw -bg
sleep 1

- Démarrez noVNC (VNC basé sur le web)
websockify --web=/usr/share/novnc $NOVNC_PORT localhost:$VNC_PORT &

echo « VNC disponible à : »
echo Client VNC : localhost:$VNC_PORT
echo Navigateur Web : http://localhost:$NOVNC_PORT/vnc.html

Accès VNC

  • Client VNC : Se connecter à localhost:5900
  • Navigateur Web : ouvrez http://localhost:6080/vnc.html

- Ouvrez le navigateur sur l’affichage VNC

sh

DISPLAY=:99 google-chrome --no-sandbox https://example.com &

Bureau à distance Chrome

Installer

sh

- Téléchargez et installez
wget https://dl.google.com/linux/direct/chrome-remote-desktop_current_amd64.deb
apt-get install -y ./chrome-remote-desktop_current_amd64.deb

# Configurer la session
echo "xfce4-session" > ~/.chrome-remote-desktop-session
chmod +x ~/.chrome-remote-desktop-session

Configuration

  1. Visitez https://remotedesktop.google.com/headless
  2. Copiez la commande de configuration de « Debian Linux »
  3. Exécutez-le sur votre serveur
  4. Démarrer le service : systemctl --user start chrome-remote-desktop

Accès à distance

Allez sur https://remotedesktop.google.com/access depuis n’importe quel appareil.

Tests

Tests CLI

sh

- OpenBasic et FermerBasic
agent-browser open https://example.com
agent-browser get title
agent-browser close

# Instantané avec refs
agent-browser open https://example.com
agent-browser snapshot -i
agent-browser close

# Capture d’écran
agent-browser open https://example.com
agent-browser screenshot /tmp/test.png
agent-browser close

Tests d’intégration ZeroClaw

sh

# Extraction du contenu
echo Ouvrez https://example.com et résumez-le. | zeroclaw agent -a assistant

# Navigation
echo Accéder à https://github.com/trending et lister les 3 principaux dépôts | zeroclaw agent -a assistant

Interaction des formulaires
echo Allez sur Wikipédia, recherchez « langage de programmation Rust » et résumez | zeroclaw agent -a assistant

Dépannage

“Élément non trouvé”

La page n’est peut-être pas complètement chargée. Ajout d’un temps d’attente :

sh

agent-browser open https://slow-site.com
agent-browser wait --load networkidle
agent-browser snapshot -i

Fenêtres de consentement aux cookies bloquant l’accès

Gérer le consentement aux cookies d’abord :

sh

agent-browser open https://site-with-cookies.com
agent-browser snapshot -i
agent-browser click @accept_cookies  - Cliquez sur le bouton d'acceptation
agent-browser snapshot -i  # Maintenant, récupère le contenu réel

Restrictions réseau du bac à sable Docker

Si web_fetch échoue dans le sandbox Docker, utilisez agent-browser à la place :

sh

- Ne faites que renvoyer la chaîne traduite, rien d’autre.
agent-browser open https://example.com
agent-browser get text body

Notes de sécurité

  • agent-browser exécute Chrome en mode headless avec isolation
  • Pour les sites sensibles, utilisez --session-name afin de persister l’état d’authentification
  • La config --allowed-domains restreint la navigation à des domaines spécifiques
  • Les ports VNC (5900, 6080) doivent être protégés par un pare-feu ou Tailscale

Lié