chore(i18n): refresh de translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-14 13:06:58 +00:00
parent 40a82d974d
commit 100c8a091f

View File

@ -1,40 +1,40 @@
---
read_when:
- Hinzufügen von agentengesteuerter Browser-Automatisierung
- Fehlersuche, warum OpenClaw Ihr eigenes Chrome beeinträchtigt
- Implementieren von Browser-Einstellungen + Lebenszyklus in der macOS-App
- Hinzufügen einer agentengesteuerten Browser-Automatisierung
- Fehlerbehebung, warum openclaw Ihren eigenen Chrome beeinträchtigt
- Implementierung von Browser-Einstellungen + Lebenszyklus in der macOS-App
summary: Integrierter Browser-Steuerungsdienst + Aktionsbefehle
title: Browser (von OpenClaw verwaltet)
x-i18n:
generated_at: "2026-04-11T02:48:07Z"
generated_at: "2026-04-14T13:04:28Z"
model: gpt-5.4
provider: openai
source_hash: da6fed36a6f40a50e825f90e5616778954545bd7e52397f7e088b85251ee024f
source_hash: ae9ef725f544d4236d229f498c7187871c69bd18d31069b30a7e67fac53166a2
source_path: tools/browser.md
workflow: 15
---
# Browser (von openclaw verwaltet)
OpenClaw kann ein **dediziertes Chrome-/Brave-/Edge-/Chromium-Profil** ausführen, das der Agent steuert.
Es ist von Ihrem persönlichen Browser isoliert und wird über einen kleinen lokalen
Steuerungsdienst innerhalb des Gateway verwaltet (nur Loopback).
OpenClaw kann ein **dediziertes Chrome/Brave/Edge/Chromium-Profil** ausführen, das vom Agenten gesteuert wird.
Es ist von Ihrem persönlichen Browser getrennt und wird über einen kleinen lokalen
Steuerungsdienst innerhalb des Gateway verwaltet (nur loopback).
Sicht für Einsteiger:
Ansicht für Einsteiger:
- Stellen Sie es sich als einen **separaten, nur für Agenten bestimmten Browser** vor.
- Das Profil `openclaw` berührt **nicht** Ihr persönliches Browserprofil.
- Der Agent kann in einem sicheren Bereich **Tabs öffnen, Seiten lesen, klicken und tippen**.
- Das integrierte Profil `user` wird über Chrome MCP an Ihre echte angemeldete Chrome-Sitzung angehängt.
- Stellen Sie es sich als einen **separaten Browser nur für Agenten** vor.
- Das Profil `openclaw` greift **nicht** auf Ihr persönliches Browserprofil zu.
- Der Agent kann in einer sicheren Spur **Tabs öffnen, Seiten lesen, klicken und tippen**.
- Das integrierte Profil `user` verbindet sich über Chrome MCP mit Ihrer echten angemeldeten Chrome-Sitzung.
## Was Sie erhalten
- Ein separates Browserprofil namens **openclaw** (standardmäßig mit orangem Akzent).
- Ein separates Browserprofil namens **openclaw** (standardmäßig mit orangefarbenem Akzent).
- Deterministische Tab-Steuerung (auflisten/öffnen/fokussieren/schließen).
- Agentenaktionen (klicken/tippen/ziehen/auswählen), Snapshots, Screenshots, PDFs.
- Optionale Unterstützung mehrerer Profile (`openclaw`, `work`, `remote`, ...).
- Optionale Unterstützung für mehrere Profile (`openclaw`, `work`, `remote`, ...).
Dieser Browser ist **nicht** Ihr täglicher Browser. Er ist eine sichere, isolierte Oberfläche für
Dieser Browser ist **nicht** Ihr täglicher Hauptbrowser. Er ist eine sichere, isolierte Oberfläche für
Agentenautomatisierung und Verifizierung.
## Schnellstart
@ -50,11 +50,11 @@ Wenn Sie „Browser disabled“ erhalten, aktivieren Sie ihn in der Konfiguratio
Gateway neu.
Wenn `openclaw browser` vollständig fehlt oder der Agent meldet, dass das Browser-Tool
nicht verfügbar ist, springen Sie zu [Missing browser command or tool](/de/tools/browser#missing-browser-command-or-tool).
nicht verfügbar ist, springen Sie zu [Fehlender Browser-Befehl oder fehlendes Tool](/de/tools/browser#missing-browser-command-or-tool).
## Plugin-Steuerung
Das Standard-`browser`-Tool ist jetzt ein gebündeltes Plugin, das standardmäßig
Das Standard-Tool `browser` ist jetzt ein gebündeltes Plugin, das standardmäßig
aktiviert ist. Das bedeutet, dass Sie es deaktivieren oder ersetzen können, ohne den Rest des
Plugin-Systems von OpenClaw zu entfernen:
@ -71,23 +71,22 @@ Plugin-Systems von OpenClaw zu entfernen:
```
Deaktivieren Sie das gebündelte Plugin, bevor Sie ein anderes Plugin installieren, das denselben
Tool-Namen `browser` bereitstellt. Die Standard-Browser-Erfahrung benötigt beides:
`browser`-Tool-Namen bereitstellt. Für die Standard-Browser-Erfahrung werden beide benötigt:
- `plugins.entries.browser.enabled` nicht deaktiviert
- `browser.enabled=true`
Wenn Sie nur das Plugin ausschalten, verschwinden die gebündelte Browser-CLI (`openclaw browser`),
Wenn Sie nur das Plugin deaktivieren, verschwinden das gebündelte Browser-CLI (`openclaw browser`),
die Gateway-Methode (`browser.request`), das Agenten-Tool und der Standard-Browser-Steuerungsdienst
gemeinsam. Ihre `browser.*`-Konfiguration bleibt für ein
Ersatz-Plugin erhalten.
gemeinsam. Ihre `browser.*`-Konfiguration bleibt für ein Ersatz-Plugin zur Wiederverwendung erhalten.
Das gebündelte Browser-Plugin besitzt jetzt auch die Browser-Laufzeitimplementierung.
Der Core behält nur gemeinsame Plugin-SDK-Helfer sowie Kompatibilitäts-Re-Exporte für
ältere interne Importpfade. In der Praxis bedeutet das: Das Entfernen oder Ersetzen des Browser-
Plugin-Pakets entfernt den Funktionsumfang des Browsers, anstatt eine zweite
Core-eigene Laufzeit zurückzulassen.
Der Kern behält nur gemeinsam genutzte Plugin-SDK-Hilfen sowie Kompatibilitäts-Re-Exports für
ältere interne Importpfade. In der Praxis entfernt das Entfernen oder Ersetzen des Browser-
Plugin-Pakets den Browser-Funktionsumfang, anstatt eine zweite vom Kern verwaltete Laufzeit
zurückzulassen.
Änderungen an der Browser-Konfiguration erfordern weiterhin einen Gateway-Neustart, damit das gebündelte Plugin
Änderungen an der Browser-Konfiguration erfordern weiterhin einen Neustart des Gateway, damit das gebündelte Plugin
seinen Browser-Dienst mit den neuen Einstellungen erneut registrieren kann.
## Fehlender Browser-Befehl oder fehlendes Tool
@ -106,7 +105,7 @@ Beispiel für eine fehlerhafte Konfiguration:
}
```
Beheben Sie dies, indem Sie `browser` zur Plugin-Allowlist hinzufügen:
Beheben Sie das Problem, indem Sie `browser` zur Plugin-Allowlist hinzufügen:
```json5
{
@ -118,9 +117,9 @@ Beheben Sie dies, indem Sie `browser` zur Plugin-Allowlist hinzufügen:
Wichtige Hinweise:
- `browser.enabled=true` reicht für sich allein nicht aus, wenn `plugins.allow` gesetzt ist.
- `plugins.entries.browser.enabled=true` reicht für sich allein ebenfalls nicht aus, wenn `plugins.allow` gesetzt ist.
- `tools.alsoAllow: ["browser"]` lädt das gebündelte Browser-Plugin **nicht**. Es passt nur die Tool-Richtlinie an, nachdem das Plugin bereits geladen wurde.
- `browser.enabled=true` reicht allein nicht aus, wenn `plugins.allow` gesetzt ist.
- `plugins.entries.browser.enabled=true` reicht allein ebenfalls nicht aus, wenn `plugins.allow` gesetzt ist.
- `tools.alsoAllow: ["browser"]` lädt das gebündelte Browser-Plugin **nicht**. Es passt die Tool-Richtlinie nur an, nachdem das Plugin bereits geladen wurde.
- Wenn Sie keine restriktive Plugin-Allowlist benötigen, stellt das Entfernen von `plugins.allow` ebenfalls das standardmäßige Verhalten des gebündelten Browsers wieder her.
Typische Symptome:
@ -132,17 +131,17 @@ Typische Symptome:
## Profile: `openclaw` vs `user`
- `openclaw`: verwalteter, isolierter Browser (keine Erweiterung erforderlich).
- `user`: integriertes Profil zum Anhängen an Chrome MCP für Ihre **echte angemeldete Chrome-**
- `user`: integriertes Chrome-MCP-Anbindungsprofil für Ihre **echte angemeldete Chrome-**
Sitzung.
Für Aufrufe des Agenten-Browser-Tools:
Für Browser-Tool-Aufrufe des Agenten:
- Standard: Verwenden Sie den isolierten Browser `openclaw`.
- Bevorzugen Sie `profile="user"`, wenn bereits angemeldete Sitzungen wichtig sind und der Benutzer
am Computer ist, um auf einen Anhänge-Prompt zu klicken oder ihn zu genehmigen.
- Bevorzugen Sie `profile="user"`, wenn bestehende angemeldete Sitzungen wichtig sind und der Benutzer
am Computer ist, um eine eventuelle Anbindungsaufforderung anzuklicken oder zu bestätigen.
- `profile` ist die explizite Überschreibung, wenn Sie einen bestimmten Browsermodus möchten.
Setzen Sie `browser.defaultProfile: "openclaw"`, wenn Sie standardmäßig den verwalteten Modus verwenden möchten.
Setzen Sie `browser.defaultProfile: "openclaw"`, wenn Sie den verwalteten Modus standardmäßig verwenden möchten.
## Konfiguration
@ -154,11 +153,11 @@ Die Browser-Einstellungen befinden sich in `~/.openclaw/openclaw.json`.
enabled: true, // Standard: true
ssrfPolicy: {
// dangerouslyAllowPrivateNetwork: true, // nur für vertrauenswürdigen Zugriff auf private Netzwerke aktivieren
// allowPrivateNetwork: true, // Legacy-Alias
// allowPrivateNetwork: true, // veralteter Alias
// hostnameAllowlist: ["*.example.com", "example.com"],
// allowedHostnames: ["localhost"],
},
// cdpUrl: "http://127.0.0.1:18792", // Legacy-Überschreibung für einzelnes Profil
// cdpUrl: "http://127.0.0.1:18792", // veraltete Überschreibung für ein einzelnes Profil
remoteCdpTimeoutMs: 1500, // HTTP-Timeout für Remote-CDP (ms)
remoteCdpHandshakeTimeoutMs: 3000, // WebSocket-Handshake-Timeout für Remote-CDP (ms)
defaultProfile: "openclaw",
@ -189,30 +188,30 @@ Die Browser-Einstellungen befinden sich in `~/.openclaw/openclaw.json`.
Hinweise:
- Der Browser-Steuerungsdienst bindet an Loopback auf einem aus `gateway.port`
abgeleiteten Port (Standard: `18791`, also Gateway + 2).
- Der Browser-Steuerungsdienst bindet an loopback auf einem Port, der von `gateway.port`
abgeleitet ist (Standard: `18791`, also Gateway + 2).
- Wenn Sie den Gateway-Port überschreiben (`gateway.port` oder `OPENCLAW_GATEWAY_PORT`),
verschieben sich die abgeleiteten Browser-Ports, damit sie in derselben „Familie“ bleiben.
- `cdpUrl` verwendet standardmäßig den verwalteten lokalen CDP-Port, wenn es nicht gesetzt ist.
- `remoteCdpTimeoutMs` gilt für Erreichbarkeitsprüfungen von Remote-CDP (nicht Loopback).
- `remoteCdpHandshakeTimeoutMs` gilt für Erreichbarkeitsprüfungen des WebSocket-Handshakes von Remote-CDP.
- Browser-Navigation/Öffnen von Tabs ist vor der Navigation durch SSRF-Schutz abgesichert und wird nach der Navigation nach bestem Aufwand anhand der endgültigen `http(s)`-URL erneut geprüft.
- Im strikten SSRF-Modus werden auch Erkennung/Sondierungen von Remote-CDP-Endpunkten (`cdpUrl`, einschließlich Abfragen von `/json/version`) geprüft.
- `browser.ssrfPolicy.dangerouslyAllowPrivateNetwork` ist standardmäßig deaktiviert. Setzen Sie es nur dann auf `true`, wenn Sie absichtlich privaten Netzwerkzugriff per Browser vertrauen.
- `browser.ssrfPolicy.allowPrivateNetwork` bleibt als Legacy-Alias aus Kompatibilitätsgründen unterstützt.
- `attachOnly: true` bedeutet „niemals einen lokalen Browser starten; nur anhängen, wenn er bereits läuft.“
- `color` + profilspezifisches `color` tönen die Browser-UI, damit Sie sehen können, welches Profil aktiv ist.
- Das Standardprofil ist `openclaw` (eigenständiger, von OpenClaw verwalteter Browser). Verwenden Sie `defaultProfile: "user"`, um sich für den angemeldeten Benutzerbrowser zu entscheiden.
- Reihenfolge der automatischen Erkennung: Systemstandardbrowser, wenn Chromium-basiert; sonst Chrome → Brave → Edge → Chromium → Chrome Canary.
- `remoteCdpTimeoutMs` gilt für Erreichbarkeitsprüfungen von Remote-CDP (nicht-loopback).
- `remoteCdpHandshakeTimeoutMs` gilt für Erreichbarkeitsprüfungen des Remote-CDP-WebSocket-Handshakes.
- Browser-Navigation/Tab-Öffnung wird vor der Navigation durch SSRF-Schutz abgesichert und nach der Navigation bei der finalen `http(s)`-URL nach bestem Bemühen erneut geprüft.
- Im strikten SSRF-Modus werden auch die Erkennung und Prüfungen von Remote-CDP-Endpunkten (`cdpUrl`, einschließlich `/json/version`-Lookups) geprüft.
- `browser.ssrfPolicy.dangerouslyAllowPrivateNetwork` ist standardmäßig deaktiviert. Setzen Sie es nur dann auf `true`, wenn Sie den Browserzugriff auf private Netzwerke bewusst als vertrauenswürdig einstufen.
- `browser.ssrfPolicy.allowPrivateNetwork` bleibt als veralteter Alias aus Kompatibilitätsgründen unterstützt.
- `attachOnly: true` bedeutet: „Niemals einen lokalen Browser starten; nur verbinden, wenn er bereits läuft.“
- `color` + profilspezifisches `color` färben die Browser-Oberfläche ein, damit Sie sehen können, welches Profil aktiv ist.
- Das Standardprofil ist `openclaw` (eigenständiger, von OpenClaw verwalteter Browser). Verwenden Sie `defaultProfile: "user"`, um den angemeldeten Benutzerbrowser zu nutzen.
- Reihenfolge der automatischen Erkennung: System-Standardbrowser, wenn Chromium-basiert; andernfalls Chrome → Brave → Edge → Chromium → Chrome Canary.
- Lokale `openclaw`-Profile weisen `cdpPort`/`cdpUrl` automatisch zu — setzen Sie diese nur für Remote-CDP.
- `driver: "existing-session"` verwendet Chrome DevTools MCP statt rohem CDP. Setzen Sie für diesen Treiber
nicht `cdpUrl`.
- Setzen Sie `browser.profiles.<name>.userDataDir`, wenn ein Profil mit existing-session
an ein nicht standardmäßiges Chromium-Benutzerprofil wie Brave oder Edge angehängt werden soll.
- `driver: "existing-session"` verwendet Chrome DevTools MCP anstelle von rohem CDP. Setzen Sie
für diesen Treiber kein `cdpUrl`.
- Setzen Sie `browser.profiles.<name>.userDataDir`, wenn sich ein existing-session-Profil
an ein nicht standardmäßiges Chromium-Benutzerprofil wie Brave oder Edge anbinden soll.
## Brave verwenden (oder einen anderen Chromium-basierten Browser)
Wenn Ihr **Systemstandardbrowser** Chromium-basiert ist (Chrome/Brave/Edge/usw.),
Wenn Ihr **System-Standardbrowser** Chromium-basiert ist (Chrome/Brave/Edge/etc),
verwendet OpenClaw ihn automatisch. Setzen Sie `browser.executablePath`, um die
automatische Erkennung zu überschreiben:
@ -247,42 +246,42 @@ openclaw config set browser.executablePath "/usr/bin/google-chrome"
## Lokale vs. Remote-Steuerung
- **Lokale Steuerung (Standard):** Das Gateway startet den Loopback-Steuerungsdienst und kann einen lokalen Browser starten.
- **Remote-Steuerung (Node-Host):** Führen Sie einen Node-Host auf dem Rechner aus, der den Browser hat; das Gateway leitet Browser-Aktionen an ihn weiter.
- **Lokale Steuerung (Standard):** Das Gateway startet den loopback-Steuerungsdienst und kann einen lokalen Browser starten.
- **Remote-Steuerung (Node-Host):** Führen Sie einen Node-Host auf dem Rechner aus, auf dem sich der Browser befindet; das Gateway leitet Browser-Aktionen an ihn weiter.
- **Remote-CDP:** Setzen Sie `browser.profiles.<name>.cdpUrl` (oder `browser.cdpUrl`), um
sich an einen Remote-Chromium-basierten Browser anzuhängen. In diesem Fall startet OpenClaw keinen lokalen Browser.
eine Verbindung zu einem Remote-Chromium-basierten Browser herzustellen. In diesem Fall startet OpenClaw keinen lokalen Browser.
Das Verhalten beim Stoppen unterscheidet sich je nach Profilmodus:
Das Verhalten beim Beenden unterscheidet sich je nach Profilmodus:
- lokal verwaltete Profile: `openclaw browser stop` stoppt den Browserprozess, den
- lokal verwaltete Profile: `openclaw browser stop` beendet den Browser-Prozess, den
OpenClaw gestartet hat
- reine Attach-only- und Remote-CDP-Profile: `openclaw browser stop` schließt die aktive
- attach-only- und Remote-CDP-Profile: `openclaw browser stop` schließt die aktive
Steuerungssitzung und gibt Playwright-/CDP-Emulationsüberschreibungen frei (Viewport,
Farbschema, Gebietsschema, Zeitzone, Offline-Modus und ähnlicher Zustand), auch
wenn kein Browserprozess von OpenClaw gestartet wurde
Farbschema, Gebietsschema, Zeitzone, Offline-Modus und ähnlichen Zustand), auch
wenn kein Browser-Prozess von OpenClaw gestartet wurde
Remote-CDP-URLs können Auth enthalten:
Remote-CDP-URLs können Authentifizierung enthalten:
- Query-Tokens (z. B. `https://provider.example?token=<token>`)
- HTTP-Basic-Auth (z. B. `https://user:pass@provider.example`)
- Query-Token (z. B. `https://provider.example?token=<token>`)
- HTTP Basic Auth (z. B. `https://user:pass@provider.example`)
OpenClaw behält die Auth bei Aufrufen von `/json/*`-Endpunkten und beim Verbinden
mit dem CDP-WebSocket bei. Bevorzugen Sie Umgebungsvariablen oder Secret-Manager für
Tokens, statt sie in Konfigurationsdateien festzuschreiben.
OpenClaw behält die Authentifizierung bei Aufrufen von `/json/*`-Endpunkten und bei der Verbindung
zum CDP-WebSocket bei. Verwenden Sie für Token bevorzugt Umgebungsvariablen oder Secrets-Manager,
anstatt sie in Konfigurationsdateien zu committen.
## Node-Browser-Proxy (Zero-Config-Standard)
## Node-Browser-Proxy (standardmäßig ohne Konfiguration)
Wenn Sie einen **Node-Host** auf dem Rechner ausführen, der Ihren Browser hat, kann OpenClaw
Browser-Tool-Aufrufe automatisch ohne zusätzliche Browser-Konfiguration an diesen Node weiterleiten.
Wenn Sie einen **Node-Host** auf dem Rechner ausführen, auf dem sich Ihr Browser befindet, kann OpenClaw
Browser-Tool-Aufrufe ohne zusätzliche Browser-Konfiguration automatisch an diesen Node weiterleiten.
Dies ist der Standardpfad für Remote-Gateways.
Hinweise:
- Der Node-Host stellt seinen lokalen Browser-Steuerungsserver über einen **Proxy-Befehl** bereit.
- Profile stammen aus der eigenen `browser.profiles`-Konfiguration des Nodes (wie lokal).
- `nodeHost.browserProxy.allowProfiles` ist optional. Lassen Sie es leer, um das Legacy-/Standardverhalten zu erhalten: Alle konfigurierten Profile bleiben über die Proxy-Oberfläche erreichbar, einschließlich Routen zum Erstellen/Löschen von Profilen.
- Wenn Sie `nodeHost.browserProxy.allowProfiles` setzen, behandelt OpenClaw dies als Least-Privilege-Grenze: Nur in der Allowlist aufgeführte Profile können adressiert werden, und Routen zum Erstellen/Löschen persistenter Profile werden auf der Proxy-Oberfläche blockiert.
- Deaktivieren Sie es, wenn Sie es nicht möchten:
- Profile stammen aus der eigenen `browser.profiles`-Konfiguration des Node (wie lokal).
- `nodeHost.browserProxy.allowProfiles` ist optional. Lassen Sie es leer für das bisherige/standardmäßige Verhalten: Alle konfigurierten Profile bleiben über den Proxy erreichbar, einschließlich der Routen zum Erstellen und Löschen von Profilen.
- Wenn Sie `nodeHost.browserProxy.allowProfiles` setzen, behandelt OpenClaw dies als Least-Privilege-Grenze: Nur allowlistete Profile können angesprochen werden, und Routen zum Erstellen und Löschen persistenter Profile werden auf der Proxy-Oberfläche blockiert.
- Deaktivieren, wenn Sie es nicht möchten:
- Auf dem Node: `nodeHost.browserProxy.enabled=false`
- Auf dem Gateway: `gateway.nodes.browser.mode="off"`
@ -290,8 +289,8 @@ Hinweise:
[Browserless](https://browserless.io) ist ein gehosteter Chromium-Dienst, der
CDP-Verbindungs-URLs über HTTPS und WebSocket bereitstellt. OpenClaw kann beide Formen verwenden, aber
für ein Remote-Browserprofil ist die direkte WebSocket-URL
aus der Browserless-Dokumentation zur Verbindung die einfachste Option.
für ein Remote-Browserprofil ist die einfachste Option die direkte WebSocket-URL
aus der Browserless-Verbindungsdokumentation.
Beispiel:
@ -316,14 +315,14 @@ Hinweise:
- Ersetzen Sie `<BROWSERLESS_API_KEY>` durch Ihr echtes Browserless-Token.
- Wählen Sie den Regionsendpunkt, der zu Ihrem Browserless-Konto passt (siehe deren Dokumentation).
- Wenn Browserless Ihnen eine HTTPS-Basis-URL gibt, können Sie sie entweder für eine direkte CDP-Verbindung in
`wss://` umwandeln oder die HTTPS-URL beibehalten und OpenClaw
`/json/version` erkennen lassen.
- Wenn Browserless Ihnen eine HTTPS-Basis-URL gibt, können Sie sie entweder in
`wss://` für eine direkte CDP-Verbindung umwandeln oder die HTTPS-URL beibehalten und OpenClaw
`/json/version` ermitteln lassen.
## Direkte WebSocket-CDP-Anbieter
Einige gehostete Browser-Dienste stellen einen **direkten WebSocket**-Endpunkt statt
der standardmäßigen HTTP-basierten CDP-Erkennung (`/json/version`) bereit. OpenClaw unterstützt beides:
der standardmäßigen HTTP-basierten CDP-Erkennung (`/json/version`) bereit. OpenClaw unterstützt beide:
- **HTTP(S)-Endpunkte** — OpenClaw ruft `/json/version` auf, um die
WebSocket-Debugger-URL zu ermitteln, und verbindet sich dann.
@ -331,12 +330,12 @@ der standardmäßigen HTTP-basierten CDP-Erkennung (`/json/version`) bereit. Ope
und überspringt `/json/version`. Verwenden Sie dies für Dienste wie
[Browserless](https://browserless.io),
[Browserbase](https://www.browserbase.com) oder jeden Anbieter, der Ihnen eine
WebSocket-URL gibt.
WebSocket-URL bereitstellt.
### Browserbase
[Browserbase](https://www.browserbase.com) ist eine Cloud-Plattform zum Ausführen
von Headless-Browsern mit integrierter CAPTCHA-Lösung, Stealth-Modus und Residential-
headless Browser mit integrierter CAPTCHA-Lösung, Tarnmodus und Residential-
Proxys.
```json5
@ -362,74 +361,74 @@ Hinweise:
aus dem [Overview-Dashboard](https://www.browserbase.com/overview).
- Ersetzen Sie `<BROWSERBASE_API_KEY>` durch Ihren echten Browserbase-API-Schlüssel.
- Browserbase erstellt beim WebSocket-Verbindungsaufbau automatisch eine Browser-Sitzung, daher ist
kein manueller Schritt zum Erstellen einer Sitzung erforderlich.
kein manueller Schritt zur Sitzungserstellung erforderlich.
- Die kostenlose Stufe erlaubt eine gleichzeitige Sitzung und eine Browser-Stunde pro Monat.
Siehe [pricing](https://www.browserbase.com/pricing) für die Limits kostenpflichtiger Tarife.
- In den [Browserbase-Dokumenten](https://docs.browserbase.com) finden Sie die vollständige API-
Siehe [Preise](https://www.browserbase.com/pricing) für Limits der kostenpflichtigen Tarife.
- Siehe die [Browserbase-Dokumentation](https://docs.browserbase.com) für die vollständige API-
Referenz, SDK-Anleitungen und Integrationsbeispiele.
## Sicherheit
Wichtige Grundsätze:
Wichtige Konzepte:
- Die Browser-Steuerung ist nur über Loopback erreichbar; der Zugriff läuft über die Authentifizierung des Gateway oder das Node-Pairing.
- Die eigenständige Loopback-Browser-HTTP-API verwendet **nur Authentifizierung mit gemeinsamem Secret**:
Bearer-Authentifizierung mit Gateway-Token, `x-openclaw-password` oder HTTP Basic Auth mit dem
- Die Browser-Steuerung ist nur über loopback erreichbar; der Zugriff erfolgt über die Authentifizierung des Gateway oder die Node-Kopplung.
- Die eigenständige loopback-Browser-HTTP-API verwendet **nur Shared-Secret-Authentifizierung**:
Gateway-Token-Bearer-Authentifizierung, `x-openclaw-password` oder HTTP Basic Auth mit dem
konfigurierten Gateway-Passwort.
- Tailscale-Serve-Identitäts-Header und `gateway.auth.mode: "trusted-proxy"` authentifizieren
diese eigenständige Loopback-Browser-API **nicht**.
- Wenn die Browser-Steuerung aktiviert ist und keine Authentifizierung mit gemeinsamem Secret konfiguriert ist, generiert OpenClaw
- Tailscale-Serve-Identity-Header und `gateway.auth.mode: "trusted-proxy"` authentifizieren
diese eigenständige loopback-Browser-API **nicht**.
- Wenn die Browser-Steuerung aktiviert ist und keine Shared-Secret-Authentifizierung konfiguriert wurde, generiert OpenClaw
beim Start automatisch `gateway.auth.token` und speichert es in der Konfiguration.
- OpenClaw generiert dieses Token **nicht** automatisch, wenn `gateway.auth.mode`
bereits `password`, `none` oder `trusted-proxy` ist.
- OpenClaw generiert dieses Token **nicht** automatisch, wenn `gateway.auth.mode` bereits
`password`, `none` oder `trusted-proxy` ist.
- Halten Sie das Gateway und alle Node-Hosts in einem privaten Netzwerk (Tailscale); vermeiden Sie öffentliche Erreichbarkeit.
- Behandeln Sie Remote-CDP-URLs/-Tokens als Secrets; bevorzugen Sie Umgebungsvariablen oder einen Secret-Manager.
- Behandeln Sie Remote-CDP-URLs/-Token als Geheimnisse; bevorzugen Sie Umgebungsvariablen oder einen Secrets-Manager.
Tipps zu Remote-CDP:
Tipps für Remote-CDP:
- Bevorzugen Sie, wenn möglich, verschlüsselte Endpunkte (HTTPS oder WSS) und kurzlebige Tokens.
- Vermeiden Sie es, langlebige Tokens direkt in Konfigurationsdateien einzubetten.
- Bevorzugen Sie nach Möglichkeit verschlüsselte Endpunkte (HTTPS oder WSS) und kurzlebige Token.
- Vermeiden Sie es, langlebige Token direkt in Konfigurationsdateien einzubetten.
## Profile (mehrere Browser)
OpenClaw unterstützt mehrere benannte Profile (Routing-Konfigurationen). Profile können sein:
- **von openclaw verwaltet**: eine dedizierte Chromium-basierte Browser-Instanz mit eigenem User-Data-Verzeichnis + CDP-Port
- **remote**: eine explizite CDP-URL (Chromium-basierter Browser läuft anderswo)
- **bestehende Sitzung**: Ihr bestehendes Chrome-Profil über automatisches Verbinden mit Chrome DevTools MCP
- **von openclaw verwaltet**: eine dedizierte Chromium-basierte Browserinstanz mit eigenem Benutzerdatenverzeichnis + CDP-Port
- **remote**: eine explizite CDP-URL (Chromium-basierter Browser, der anderswo ausgeführt wird)
- **bestehende Sitzung**: Ihr bestehendes Chrome-Profil über Chrome DevTools MCP mit automatischer Verbindung
Standardwerte:
Standardeinstellungen:
- Das Profil `openclaw` wird automatisch erstellt, falls es fehlt.
- Das Profil `user` ist für das Anhängen an eine bestehende Sitzung über Chrome MCP integriert.
- Profile für bestehende Sitzungen sind zusätzlich zu `user` Opt-in; erstellen Sie sie mit `--driver existing-session`.
- Das Profil `user` ist für die Anbindung bestehender Sitzungen über Chrome MCP integriert.
- Profile für bestehende Sitzungen sind zusätzlich zu `user` opt-in; erstellen Sie sie mit `--driver existing-session`.
- Lokale CDP-Ports werden standardmäßig aus **1880018899** zugewiesen.
- Beim Löschen eines Profils wird sein lokales Datenverzeichnis in den Papierkorb verschoben.
- Das Löschen eines Profils verschiebt sein lokales Datenverzeichnis in den Papierkorb.
Alle Steuerungsendpunkte akzeptieren `?profile=<name>`; die CLI verwendet `--browser-profile`.
Alle Steuerungsendpunkte akzeptieren `?profile=<name>`; das CLI verwendet `--browser-profile`.
## Bestehende Sitzung über Chrome DevTools MCP
## Existing-session über Chrome DevTools MCP
OpenClaw kann sich auch über den
offiziellen Chrome DevTools MCP-Server an ein laufendes Chromium-basiertes Browser-Profil anhängen. Dadurch werden die Tabs und der Anmeldestatus
wiederverwendet, die in diesem Browser-Profil bereits geöffnet sind.
OpenClaw kann sich auch über den offiziellen Chrome DevTools MCP-Server an ein laufendes Chromium-basiertes Browserprofil anbinden.
Dadurch werden die in diesem Browserprofil bereits geöffneten Tabs und der Anmeldestatus
wiederverwendet.
Offizielle Hintergrund- und Setup-Referenzen:
Offizielle Hintergrund- und Einrichtungsreferenzen:
- [Chrome for Developers: Use Chrome DevTools MCP with your browser session](https://developer.chrome.com/blog/chrome-devtools-mcp-debug-your-browser-session)
- [Chrome for Developers: Verwenden Sie Chrome DevTools MCP mit Ihrer Browser-Sitzung](https://developer.chrome.com/blog/chrome-devtools-mcp-debug-your-browser-session)
- [Chrome DevTools MCP README](https://github.com/ChromeDevTools/chrome-devtools-mcp)
Integriertes Profil:
- `user`
Optional: Erstellen Sie Ihr eigenes benutzerdefiniertes Profil für bestehende Sitzungen, wenn Sie einen
Optional: Erstellen Sie Ihr eigenes benutzerdefiniertes existing-session-Profil, wenn Sie einen
anderen Namen, eine andere Farbe oder ein anderes Browser-Datenverzeichnis möchten.
Standardverhalten:
- Das integrierte Profil `user` verwendet automatisches Verbinden über Chrome MCP und zielt auf das
lokale Standardprofil von Google Chrome.
- Das integrierte Profil `user` verwendet die automatische Verbindung von Chrome MCP, die auf das
standardmäßige lokale Google-Chrome-Profil zielt.
Verwenden Sie `userDataDir` für Brave, Edge, Chromium oder ein nicht standardmäßiges Chrome-Profil:
@ -448,19 +447,19 @@ Verwenden Sie `userDataDir` für Brave, Edge, Chromium oder ein nicht standardm
}
```
Dann im passenden Browser:
Dann im entsprechenden Browser:
1. Öffnen Sie die Inspektionsseite dieses Browsers für Remote-Debugging.
2. Aktivieren Sie Remote-Debugging.
3. Lassen Sie den Browser weiterlaufen und genehmigen Sie den Verbindungs-Prompt, wenn OpenClaw sich anhängt.
3. Lassen Sie den Browser weiterlaufen und bestätigen Sie die Verbindungsaufforderung, wenn OpenClaw sich anbindet.
Häufige Inspektionsseiten:
Gängige Inspektionsseiten:
- Chrome: `chrome://inspect/#remote-debugging`
- Brave: `brave://inspect/#remote-debugging`
- Edge: `edge://inspect/#remote-debugging`
Smoke-Test für Live-Attach:
Live-Smoke-Test für die Anbindung:
```bash
openclaw browser --browser-profile user start
@ -469,7 +468,7 @@ openclaw browser --browser-profile user tabs
openclaw browser --browser-profile user snapshot --format ai
```
So sieht ein erfolgreicher Ablauf aus:
Woran Sie Erfolg erkennen:
- `status` zeigt `driver: existing-session`
- `status` zeigt `transport: chrome-mcp`
@ -477,66 +476,66 @@ So sieht ein erfolgreicher Ablauf aus:
- `tabs` listet Ihre bereits geöffneten Browser-Tabs auf
- `snapshot` gibt Refs aus dem ausgewählten Live-Tab zurück
Was Sie prüfen sollten, wenn das Anhängen nicht funktioniert:
Was Sie prüfen sollten, wenn die Anbindung nicht funktioniert:
- der Zielbrowser auf Chromium-Basis hat Version `144+`
- Remote-Debugging ist auf der Inspektionsseite dieses Browsers aktiviert
- der Browser hat den Zustimmungs-Prompt zum Anhängen angezeigt und Sie haben ihn akzeptiert
- `openclaw doctor` migriert alte browserbasierte Konfigurationen mit Erweiterung und prüft, ob
Chrome lokal für Standardprofile mit automatischem Verbinden installiert ist, kann aber
- der Browser hat die Einwilligungsaufforderung zur Anbindung angezeigt und Sie haben sie akzeptiert
- `openclaw doctor` migriert alte Browser-Konfigurationen auf Erweiterungsbasis und prüft,
ob Chrome lokal für Standardprofile mit automatischer Verbindung installiert ist, kann aber
browserseitiges Remote-Debugging nicht für Sie aktivieren
Verwendung durch Agenten:
Verwendung durch den Agenten:
- Verwenden Sie `profile="user"`, wenn Sie den angemeldeten Browser-Zustand des Benutzers benötigen.
- Wenn Sie ein benutzerdefiniertes Profil für bestehende Sitzungen verwenden, übergeben Sie diesen expliziten Profilnamen.
- Wählen Sie diesen Modus nur, wenn sich der Benutzer am Computer befindet, um den Anhänge-
Prompt zu genehmigen.
- Verwenden Sie `profile="user"`, wenn Sie den angemeldeten Browserstatus des Benutzers benötigen.
- Wenn Sie ein benutzerdefiniertes existing-session-Profil verwenden, übergeben Sie diesen expliziten Profilnamen.
- Wählen Sie diesen Modus nur, wenn der Benutzer am Computer ist, um die
Verbindungsaufforderung zu bestätigen.
- das Gateway oder der Node-Host kann `npx chrome-devtools-mcp@latest --autoConnect` starten
Hinweise:
- Dieser Pfad ist risikoreicher als das isolierte Profil `openclaw`, weil er
- Dieser Pfad ist risikoreicher als das isolierte Profil `openclaw`, da er
innerhalb Ihrer angemeldeten Browser-Sitzung agieren kann.
- OpenClaw startet den Browser für diesen Treiber nicht; es hängt sich nur an eine
- OpenClaw startet den Browser für diesen Treiber nicht; es bindet sich nur an eine
bestehende Sitzung an.
- OpenClaw verwendet hier den offiziellen Chrome-DevTools-MCP-Ablauf `--autoConnect`. Wenn
`userDataDir` gesetzt ist, übergibt OpenClaw dies, um gezielt dieses explizite
Chromium-User-Data-Verzeichnis anzusprechen.
- Screenshots für bestehende Sitzungen unterstützen Seitenaufnahmen und Elementaufnahmen mit `--ref`
aus Snapshots, aber keine CSS-Selektoren mit `--element`.
- Seitenscreenshots für bestehende Sitzungen funktionieren ohne Playwright über Chrome MCP.
- OpenClaw verwendet hier den offiziellen `--autoConnect`-Ablauf von Chrome DevTools MCP. Wenn
`userDataDir` gesetzt ist, gibt OpenClaw ihn weiter, um gezielt dieses explizite
Chromium-Benutzerdatenverzeichnis zu verwenden.
- Screenshots in bestehenden Sitzungen unterstützen Seitenaufnahmen und `--ref`-Element-
Aufnahmen aus Snapshots, aber keine CSS-`--element`-Selektoren.
- Seitenscreenshots in bestehenden Sitzungen funktionieren ohne Playwright über Chrome MCP.
Ref-basierte Element-Screenshots (`--ref`) funktionieren dort ebenfalls, aber `--full-page`
kann nicht mit `--ref` oder `--element` kombiniert werden.
- Aktionen in bestehenden Sitzungen sind weiterhin eingeschränkter als im verwalteten Browser-
Pfad:
- `click`, `type`, `hover`, `scrollIntoView`, `drag` und `select` benötigen
- `click`, `type`, `hover`, `scrollIntoView`, `drag` und `select` erfordern
Snapshot-Refs statt CSS-Selektoren
- `click` unterstützt nur die linke Maustaste (keine Button-Overrides oder Modifikatoren)
- `click` unterstützt nur die linke Maustaste (keine Tastenüberschreibungen oder Modifikatoren)
- `type` unterstützt `slowly=true` nicht; verwenden Sie `fill` oder `press`
- `press` unterstützt `delayMs` nicht
- `hover`, `scrollIntoView`, `drag`, `select`, `fill` und `evaluate` unterstützen
keine Timeout-Überschreibungen pro Aufruf
- `select` unterstützt derzeit nur einen einzelnen Wert
- `wait --url` für bestehende Sitzungen unterstützt exakte, Teilstring- und Glob-Muster
- Existing-session `wait --url` unterstützt exakte, Teilstring- und Glob-Muster
wie andere Browser-Treiber. `wait --load networkidle` wird noch nicht unterstützt.
- Upload-Hooks für bestehende Sitzungen benötigen `ref` oder `inputRef`, unterstützen jeweils nur eine Datei
- Upload-Hooks in bestehenden Sitzungen erfordern `ref` oder `inputRef`, unterstützen jeweils nur eine Datei
und unterstützen kein CSS-`element`-Targeting.
- Dialog-Hooks für bestehende Sitzungen unterstützen keine Timeout-Überschreibungen.
- Dialog-Hooks in bestehenden Sitzungen unterstützen keine Timeout-Überschreibungen.
- Einige Funktionen erfordern weiterhin den verwalteten Browser-Pfad, darunter Batch-
Aktionen, PDF-Export, Download-Abfangung und `responsebody`.
- Bestehende Sitzungen sind hostlokal. Wenn Chrome auf einem anderen Rechner oder in einem
anderen Netzwerk-Namespace läuft, verwenden Sie stattdessen Remote-CDP oder einen Node-Host.
- Existing-session ist host-lokal. Wenn sich Chrome auf einem anderen Rechner oder in einem
anderen Netzwerknamensraum befindet, verwenden Sie stattdessen Remote-CDP oder einen Node-Host.
## Isolationsgarantien
- **Dediziertes User-Data-Verzeichnis**: Berührt niemals Ihr persönliches Browserprofil.
- **Dedizierte Ports**: Vermeidet `9222`, um Kollisionen mit Entwicklungs-Workflows zu verhindern.
- **Deterministische Tab-Steuerung**: Tabs werden über `targetId` adressiert, nicht über „letzter Tab“.
- **Dediziertes Benutzerdatenverzeichnis**: greift niemals auf Ihr persönliches Browserprofil zu.
- **Dedizierte Ports**: vermeidet `9222`, um Kollisionen mit Entwicklungs-Workflows zu verhindern.
- **Deterministische Tab-Steuerung**: Ziel-Tabs über `targetId`, nicht über „letzter Tab“.
## Browser-Auswahl
Beim lokalen Starten wählt OpenClaw den ersten verfügbaren Browser:
Beim lokalen Start wählt OpenClaw den ersten verfügbaren Browser:
1. Chrome
2. Brave
@ -554,9 +553,9 @@ Plattformen:
## Steuerungs-API (optional)
Nur für lokale Integrationen stellt das Gateway eine kleine Loopback-HTTP-API bereit:
Nur für lokale Integrationen stellt das Gateway eine kleine loopback-HTTP-API bereit:
- Status/start/stop: `GET /`, `POST /start`, `POST /stop`
- Status/Start/Stopp: `GET /`, `POST /start`, `POST /stop`
- Tabs: `GET /tabs`, `POST /tabs/open`, `POST /tabs/focus`, `DELETE /tabs/:targetId`
- Snapshot/Screenshot: `GET /snapshot`, `POST /screenshot`
- Aktionen: `POST /navigate`, `POST /act`
@ -571,21 +570,21 @@ Nur für lokale Integrationen stellt das Gateway eine kleine Loopback-HTTP-API b
Alle Endpunkte akzeptieren `?profile=<name>`.
Wenn Gateway-Authentifizierung mit gemeinsamem Secret konfiguriert ist, erfordern Browser-HTTP-Routen ebenfalls Authentifizierung:
Wenn Shared-Secret-Gateway-Authentifizierung konfiguriert ist, erfordern Browser-HTTP-Routen ebenfalls Authentifizierung:
- `Authorization: Bearer <gateway token>`
- `x-openclaw-password: <gateway password>` oder HTTP Basic Auth mit diesem Passwort
Hinweise:
- Diese eigenständige Loopback-Browser-API verwendet **keine** Trusted-Proxy- oder
Tailscale-Serve-Identitäts-Header.
- Wenn `gateway.auth.mode` `none` oder `trusted-proxy` ist, übernehmen diese Loopback-Browser-
Routen diese identitätsbehafteten Modi nicht; halten Sie sie auf reines Loopback beschränkt.
- Diese eigenständige loopback-Browser-API verwendet **keine** trusted-proxy- oder
Tailscale-Serve-Identity-Header.
- Wenn `gateway.auth.mode` auf `none` oder `trusted-proxy` gesetzt ist, übernehmen diese loopback-Browser-
Routen diese identitätstragenden Modi nicht; halten Sie sie nur auf loopback erreichbar.
### Fehlervertrag von `/act`
`POST /act` verwendet eine strukturierte Fehlerantwort für Validierungs- und
`POST /act` verwendet eine strukturierte Fehlerantwort für Validierungen und
Richtlinienfehler auf Routenebene:
```json
@ -595,38 +594,38 @@ Richtlinienfehler auf Routenebene:
Aktuelle `code`-Werte:
- `ACT_KIND_REQUIRED` (HTTP 400): `kind` fehlt oder wird nicht erkannt.
- `ACT_INVALID_REQUEST` (HTTP 400): Die Aktions-Payload ist bei Normalisierung oder Validierung fehlgeschlagen.
- `ACT_INVALID_REQUEST` (HTTP 400): Die Normalisierung oder Validierung der Aktions-Payload ist fehlgeschlagen.
- `ACT_SELECTOR_UNSUPPORTED` (HTTP 400): `selector` wurde mit einer nicht unterstützten Aktionsart verwendet.
- `ACT_EVALUATE_DISABLED` (HTTP 403): `evaluate` (oder `wait --fn`) ist per Konfiguration deaktiviert.
- `ACT_TARGET_ID_MISMATCH` (HTTP 403): `targetId` auf oberster Ebene oder im Batch steht im Konflikt mit dem Anfrageziel.
- `ACT_EXISTING_SESSION_UNSUPPORTED` (HTTP 501): Die Aktion wird für Profile mit bestehender Sitzung nicht unterstützt.
- `ACT_TARGET_ID_MISMATCH` (HTTP 403): `targetId` auf oberster Ebene oder in einem Batch steht im Konflikt mit dem Anfrageziel.
- `ACT_EXISTING_SESSION_UNSUPPORTED` (HTTP 501): Die Aktion wird für existing-session-Profile nicht unterstützt.
Andere Laufzeitfehler können weiterhin `{ "error": "<message>" }` ohne ein
Feld `code` zurückgeben.
`code`-Feld zurückgeben.
### Playwright-Anforderung
Einige Funktionen (navigate/act/AI-Snapshot/Role-Snapshot, Element-Screenshots,
Einige Funktionen (navigate/act/AI-Snapshot/role-Snapshot, Element-Screenshots,
PDF) erfordern Playwright. Wenn Playwright nicht installiert ist, geben diese Endpunkte
einen klaren 501-Fehler zurück.
Was ohne Playwright weiterhin funktioniert:
- ARIA-Snapshots
- Seitenscreenshots für den verwalteten Browser `openclaw`, wenn ein WebSocket
pro Tab für CDP verfügbar ist
- Seitenscreenshots für Profile mit `existing-session` / Chrome MCP
- Ref-basierte Screenshots (`--ref`) für bestehende Sitzungen aus Snapshot-Ausgaben
- Seiten-Screenshots für den verwalteten Browser `openclaw`, wenn pro Tab ein CDP-
WebSocket verfügbar ist
- Seiten-Screenshots für `existing-session` / Chrome-MCP-Profile
- `existing-session` ref-basierte Screenshots (`--ref`) aus der Snapshot-Ausgabe
Was weiterhin Playwright benötigt:
Was weiterhin Playwright erfordert:
- `navigate`
- `act`
- AI-Snapshots / Role-Snapshots
- AI-Snapshots / role-Snapshots
- Element-Screenshots mit CSS-Selektoren (`--element`)
- vollständiger PDF-Export des Browsers
Element-Screenshots lehnen auch `--full-page` ab; die Route gibt `fullPage is
Element-Screenshots lehnen außerdem `--full-page` ab; die Route gibt `fullPage is
not supported for element screenshots` zurück.
Wenn Sie `Playwright is not available in this gateway build` sehen, installieren Sie das vollständige
@ -635,8 +634,8 @@ OpenClaw mit Browser-Unterstützung neu.
#### Playwright-Installation in Docker
Wenn Ihr Gateway in Docker läuft, vermeiden Sie `npx playwright` (Konflikte mit npm-Overrides).
Verwenden Sie stattdessen die gebündelte CLI:
Wenn Ihr Gateway in Docker ausgeführt wird, vermeiden Sie `npx playwright` (Konflikte mit npm-Overrides).
Verwenden Sie stattdessen das gebündelte CLI:
```bash
docker compose run --rm openclaw-cli \
@ -644,8 +643,8 @@ docker compose run --rm openclaw-cli \
```
Um Browser-Downloads dauerhaft zu speichern, setzen Sie `PLAYWRIGHT_BROWSERS_PATH` (zum Beispiel
`/home/node/.cache/ms-playwright`) und stellen Sie sicher, dass `/home/node` über
`OPENCLAW_HOME_VOLUME` oder ein Bind-Mount persistent gespeichert wird. Siehe [Docker](/de/install/docker).
`/home/node/.cache/ms-playwright`) und stellen Sie sicher, dass `/home/node` über `OPENCLAW_HOME_VOLUME`
oder einen Bind-Mount persistent gespeichert wird. Siehe [Docker](/de/install/docker).
## So funktioniert es (intern)
@ -658,7 +657,7 @@ Ablauf auf hoher Ebene:
- Wenn Playwright fehlt, sind nur Nicht-Playwright-Operationen verfügbar.
Dieses Design hält den Agenten auf einer stabilen, deterministischen Schnittstelle, während Sie
lokale/entfernte Browser und Profile austauschen können.
lokale/Remote-Browser und Profile austauschen können.
## CLI-Kurzreferenz
@ -696,9 +695,9 @@ Inspektion:
Hinweis zum Lebenszyklus:
- Für reine Attach-only- und Remote-CDP-Profile ist `openclaw browser stop` weiterhin der
richtige Bereinigungsbefehl nach Tests. Er schließt die aktive Steuerungssitzung und
entfernt temporäre Emulationsüberschreibungen, statt den zugrunde liegenden
- Für attach-only- und Remote-CDP-Profile ist `openclaw browser stop` nach Tests
weiterhin der richtige Bereinigungsbefehl. Er schließt die aktive Steuerungssitzung und
entfernt temporäre Emulationsüberschreibungen, anstatt den zugrunde liegenden
Browser zu beenden.
- `openclaw browser errors --clear`
- `openclaw browser requests --filter api --clear`
@ -750,9 +749,9 @@ Zustand:
Hinweise:
- `upload` und `dialog` sind **Arming**-Aufrufe; führen Sie sie vor dem Klick/Drücken aus,
- `upload` und `dialog` sind **Vorbereitungsaufrufe**; führen Sie sie vor dem Klick/Tastendruck aus,
der den Dateiauswahldialog/Dialog auslöst.
- Ausgabepfade für Downloads und Traces sind auf OpenClaw-Temp-Wurzeln beschränkt:
- Pfade für Download- und Trace-Ausgaben sind auf OpenClaw-Temp-Wurzeln beschränkt:
- Traces: `/tmp/openclaw` (Fallback: `${os.tmpdir()}/openclaw`)
- Downloads: `/tmp/openclaw/downloads` (Fallback: `${os.tmpdir()}/openclaw/downloads`)
- Upload-Pfade sind auf eine OpenClaw-Temp-Wurzel für Uploads beschränkt:
@ -761,36 +760,36 @@ Hinweise:
- `snapshot`:
- `--format ai` (Standard, wenn Playwright installiert ist): gibt einen AI-Snapshot mit numerischen Refs zurück (`aria-ref="<n>"`).
- `--format aria`: gibt den Accessibility-Baum zurück (keine Refs; nur zur Inspektion).
- `--efficient` (oder `--mode efficient`): kompaktes Role-Snapshot-Preset (interaktiv + kompakt + Tiefe + niedrigere `maxChars`).
- Konfigurationsstandard (nur Tool/CLI): Setzen Sie `browser.snapshotDefaults.mode: "efficient"`, um effiziente Snapshots zu verwenden, wenn der Aufrufer keinen Modus übergibt (siehe [Gateway configuration](/de/gateway/configuration-reference#browser)).
- `--efficient` (oder `--mode efficient`): kompaktes Preset für Role-Snapshots (interactive + compact + depth + geringere maxChars).
- Standardwert der Konfiguration (nur Tool/CLI): Setzen Sie `browser.snapshotDefaults.mode: "efficient"`, um effiziente Snapshots zu verwenden, wenn der Aufrufer keinen Modus übergibt (siehe [Gateway-Konfiguration](/de/gateway/configuration-reference#browser)).
- Role-Snapshot-Optionen (`--interactive`, `--compact`, `--depth`, `--selector`) erzwingen einen rollenbasierten Snapshot mit Refs wie `ref=e12`.
- `--frame "<iframe selector>"` begrenzt rollenbasierte Snapshots auf ein iframe (zusammen mit Rollen-Refs wie `e12`).
- `--frame "<iframe selector>"` begrenzt Role-Snapshots auf ein iframe (gekoppelt mit Role-Refs wie `e12`).
- `--interactive` gibt eine flache, leicht auswählbare Liste interaktiver Elemente aus (am besten zum Ausführen von Aktionen).
- `--labels` fügt einen Screenshot nur des Viewports mit eingeblendeten Ref-Labels hinzu (gibt `MEDIA:<path>` aus).
- `click`/`type`/usw. benötigen ein `ref` aus `snapshot` (entweder numerisch `12` oder Rollen-Ref `e12`).
- `--labels` fügt einen Screenshot nur des Viewports mit überlagerten Ref-Labels hinzu (gibt `MEDIA:<path>` aus).
- `click`/`type`/etc erfordern einen `ref` aus `snapshot` (entweder numerisch `12` oder Role-Ref `e12`).
CSS-Selektoren werden für Aktionen absichtlich nicht unterstützt.
## Snapshots und Refs
OpenClaw unterstützt zwei Arten von „Snapshots“:
OpenClaw unterstützt zwei „Snapshot“-Stile:
- **AI-Snapshot (numerische Refs)**: `openclaw browser snapshot` (Standard; `--format ai`)
- Ausgabe: ein Text-Snapshot, der numerische Refs enthält.
- Aktionen: `openclaw browser click 12`, `openclaw browser type 23 "hello"`.
- Intern wird die Ref über Playwrights `aria-ref` aufgelöst.
- Intern wird der Ref über Playwrights `aria-ref` aufgelöst.
- **Role-Snapshot (Rollen-Refs wie `e12`)**: `openclaw browser snapshot --interactive` (oder `--compact`, `--depth`, `--selector`, `--frame`)
- Ausgabe: eine rollenbasierte Liste/Struktur mit `[ref=e12]` (und optional `[nth=1]`).
- **Role-Snapshot (Role-Refs wie `e12`)**: `openclaw browser snapshot --interactive` (oder `--compact`, `--depth`, `--selector`, `--frame`)
- Ausgabe: eine rollenbasierte Liste/Baumstruktur mit `[ref=e12]` (und optional `[nth=1]`).
- Aktionen: `openclaw browser click e12`, `openclaw browser highlight e12`.
- Intern wird die Ref über `getByRole(...)` aufgelöst (plus `nth()` bei Duplikaten).
- Fügen Sie `--labels` hinzu, um einen Viewport-Screenshot mit eingeblendeten `e12`-Labels einzuschließen.
- Intern wird der Ref über `getByRole(...)` aufgelöst (plus `nth()` bei Duplikaten).
- Fügen Sie `--labels` hinzu, um einen Viewport-Screenshot mit überlagerten `e12`-Labels einzuschließen.
Ref-Verhalten:
Verhalten von Refs:
- Refs sind **über Navigationen hinweg nicht stabil**; wenn etwas fehlschlägt, führen Sie `snapshot` erneut aus und verwenden Sie eine frische Ref.
- Wenn der Role-Snapshot mit `--frame` aufgenommen wurde, sind Rollen-Refs bis zum nächsten Role-Snapshot auf dieses iframe beschränkt.
- Refs sind **nicht stabil über Navigationen hinweg**; wenn etwas fehlschlägt, führen Sie `snapshot` erneut aus und verwenden Sie einen neuen Ref.
- Wenn der Role-Snapshot mit `--frame` aufgenommen wurde, sind Role-Refs bis zum nächsten Role-Snapshot auf dieses iframe beschränkt.
## Erweiterte Wartemöglichkeiten
## Verbesserte Wartefunktionen
Sie können auf mehr als nur Zeit/Text warten:
@ -800,10 +799,10 @@ Sie können auf mehr als nur Zeit/Text warten:
- `openclaw browser wait --load networkidle`
- Auf ein JS-Prädikat warten:
- `openclaw browser wait --fn "window.ready===true"`
- Darauf warten, dass ein Selektor sichtbar wird:
- Warten, bis ein Selektor sichtbar wird:
- `openclaw browser wait "#main"`
Diese lassen sich kombinieren:
Diese können kombiniert werden:
```bash
openclaw browser wait "#main" \
@ -818,19 +817,19 @@ openclaw browser wait "#main" \
Wenn eine Aktion fehlschlägt (z. B. „not visible“, „strict mode violation“, „covered“):
1. `openclaw browser snapshot --interactive`
2. Verwenden Sie `click <ref>` / `type <ref>` (bevorzugen Sie Rollen-Refs im interaktiven Modus)
2. Verwenden Sie `click <ref>` / `type <ref>` (bevorzugen Sie Role-Refs im interaktiven Modus)
3. Wenn es weiterhin fehlschlägt: `openclaw browser highlight <ref>`, um zu sehen, worauf Playwright zielt
4. Wenn sich die Seite merkwürdig verhält:
4. Wenn sich die Seite seltsam verhält:
- `openclaw browser errors --clear`
- `openclaw browser requests --filter api --clear`
5. Für tiefgehendes Debugging: zeichnen Sie einen Trace auf:
5. Für tiefgehendes Debugging: Zeichnen Sie einen Trace auf:
- `openclaw browser trace start`
- reproduzieren Sie das Problem
- `openclaw browser trace stop` (gibt `TRACE:<path>` aus)
## JSON-Ausgabe
`--json` ist für Skripting und strukturierte Tooling-Anwendungen.
`--json` ist für Skripting und strukturierte Tooling-Workflows gedacht.
Beispiele:
@ -841,17 +840,17 @@ openclaw browser requests --filter api --json
openclaw browser cookies --json
```
Role-Snapshots in JSON enthalten `refs` plus einen kleinen `stats`-Block (Zeilen/Zeichen/Refs/interaktiv), damit Tools über Payload-Größe und Dichte nachdenken können.
Role-Snapshots in JSON enthalten `refs` plus einen kleinen Block `stats` (Zeilen/Zeichen/Refs/interaktiv), damit Tools Rückschlüsse auf Payload-Größe und -Dichte ziehen können.
## Einstellungen für Zustand und Umgebung
## Regler für Zustand und Umgebung
Diese sind nützlich für Workflows nach dem Muster „die Website soll sich wie X verhalten“:
Diese sind nützlich für Workflows nach dem Muster „die Website so verhalten lassen wie X“:
- Cookies: `cookies`, `cookies set`, `cookies clear`
- Storage: `storage local|session get|set|clear`
- Offline: `set offline on|off`
- Header: `set headers --headers-json '{"X-Debug":"1"}'` (Legacy-`set headers --json '{"X-Debug":"1"}'` wird weiterhin unterstützt)
- HTTP-Basic-Auth: `set credentials user pass` (oder `--clear`)
- Header: `set headers --headers-json '{"X-Debug":"1"}'` (veraltet `set headers --json '{"X-Debug":"1"}'` wird weiterhin unterstützt)
- HTTP Basic Auth: `set credentials user pass` (oder `--clear`)
- Geolokalisierung: `set geo <lat> <lon> --origin "https://example.com"` (oder `--clear`)
- Medien: `set media dark|light|no-preference|none`
- Zeitzone / Gebietsschema: `set timezone ...`, `set locale ...`
@ -859,17 +858,17 @@ Diese sind nützlich für Workflows nach dem Muster „die Website soll sich wie
- `set device "iPhone 14"` (Playwright-Gerätevoreinstellungen)
- `set viewport 1280 720`
## Sicherheit und Datenschutz
## Sicherheit & Datenschutz
- Das Browserprofil `openclaw` kann angemeldete Sitzungen enthalten; behandeln Sie es als sensibel.
- Das Browserprofil openclaw kann angemeldete Sitzungen enthalten; behandeln Sie es als sensibel.
- `browser act kind=evaluate` / `openclaw browser evaluate` und `wait --fn`
führen beliebiges JavaScript im Seitenkontext aus. Prompt-Injection kann dies
steuern. Deaktivieren Sie es mit `browser.evaluateEnabled=false`, wenn Sie es nicht benötigen.
- Für Logins und Hinweise zu Anti-Bot-Systemen (X/Twitter usw.) siehe [Browser login + X/Twitter posting](/de/tools/browser-login).
- Halten Sie Gateway/Node-Host privat (nur Loopback oder nur Tailnet).
führen beliebiges JavaScript im Seitenkontext aus. Prompt Injection kann
dies steuern. Deaktivieren Sie es mit `browser.evaluateEnabled=false`, wenn Sie es nicht benötigen.
- Zu Anmeldungen und Anti-Bot-Hinweisen (X/Twitter usw.) siehe [Browser-Anmeldung + X/Twitter-Posting](/de/tools/browser-login).
- Halten Sie den Gateway/Node-Host privat (nur loopback oder tailnet).
- Remote-CDP-Endpunkte sind mächtig; tunneln und schützen Sie sie.
Beispiel für den strikten Modus (private/interne Ziele standardmäßig blockieren):
Beispiel für den strikten Modus (blockiert standardmäßig private/interne Ziele):
```json5
{
@ -877,7 +876,7 @@ Beispiel für den strikten Modus (private/interne Ziele standardmäßig blockier
ssrfPolicy: {
dangerouslyAllowPrivateNetwork: false,
hostnameAllowlist: ["*.example.com", "example.com"],
allowedHostnames: ["localhost"], // optionale exakte Erlaubnis
allowedHostnames: ["localhost"], // optionale exakte Zulassung
},
},
}
@ -885,17 +884,74 @@ Beispiel für den strikten Modus (private/interne Ziele standardmäßig blockier
## Fehlerbehebung
Für Linux-spezifische Probleme (insbesondere Snap-Chromium) siehe
[Browser troubleshooting](/de/tools/browser-linux-troubleshooting).
Für Linux-spezifische Probleme (insbesondere Snap Chromium) siehe
[Browser-Fehlerbehebung](/de/tools/browser-linux-troubleshooting).
Für Setups mit WSL2-Gateway + Windows-Chrome auf getrennten Hosts siehe
[WSL2 + Windows + remote Chrome CDP troubleshooting](/de/tools/browser-wsl2-windows-remote-cdp-troubleshooting).
Für Setups mit aufgeteilten Hosts zwischen WSL2-Gateway und Windows-Chrome siehe
[WSL2 + Windows + Fehlerbehebung für Remote-Chrome-CDP](/de/tools/browser-wsl2-windows-remote-cdp-troubleshooting).
### CDP-Startfehler vs. SSRF-Blockierung bei Navigation
Dies sind unterschiedliche Fehlerklassen und sie verweisen auf unterschiedliche Codepfade.
- **CDP-Start- oder Bereitschaftsfehler** bedeutet, dass OpenClaw nicht bestätigen kann, dass die Browser-Steuerungsebene fehlerfrei funktioniert.
- **SSRF-Blockierung bei Navigation** bedeutet, dass die Browser-Steuerungsebene fehlerfrei funktioniert, aber ein Ziel für die Seitennavigation durch eine Richtlinie abgelehnt wird.
Häufige Beispiele:
- CDP-Start- oder Bereitschaftsfehler:
- `Chrome CDP websocket for profile "openclaw" is not reachable after start`
- `Remote CDP for profile "<name>" is not reachable at <cdpUrl>`
- SSRF-Blockierung bei Navigation:
- `open`, `navigate`, Snapshot- oder Tab-Öffnungsabläufe schlagen mit einem Browser-/Netzwerk-Richtlinienfehler fehl, während `start` und `tabs` weiterhin funktionieren
Verwenden Sie diese minimale Sequenz, um die beiden Fälle zu unterscheiden:
```bash
openclaw browser --browser-profile openclaw start
openclaw browser --browser-profile openclaw tabs
openclaw browser --browser-profile openclaw open https://example.com
```
So lesen Sie die Ergebnisse:
- Wenn `start` mit `not reachable after start` fehlschlägt, beheben Sie zuerst Probleme mit der CDP-Bereitschaft.
- Wenn `start` erfolgreich ist, aber `tabs` fehlschlägt, ist die Steuerungsebene weiterhin nicht fehlerfrei. Behandeln Sie dies als Problem mit der CDP-Erreichbarkeit, nicht als Problem der Seitennavigation.
- Wenn `start` und `tabs` erfolgreich sind, aber `open` oder `navigate` fehlschlagen, ist die Browser-Steuerungsebene aktiv und der Fehler liegt in der Navigationsrichtlinie oder auf der Zielseite.
- Wenn `start`, `tabs` und `open` alle erfolgreich sind, ist der grundlegende Steuerungspfad des verwalteten Browsers fehlerfrei.
Wichtige Verhaltensdetails:
- Die Browser-Konfiguration verwendet standardmäßig ein Fail-Closed-SSRF-Richtlinienobjekt, auch wenn Sie `browser.ssrfPolicy` nicht konfigurieren.
- Für das lokal über loopback verwaltete Profil `openclaw` überspringen CDP-Zustandsprüfungen bewusst die SSRF-Erreichbarkeitsdurchsetzung des Browsers für die eigene lokale Steuerungsebene von OpenClaw.
- Der Navigationsschutz ist getrennt. Ein erfolgreiches Ergebnis von `start` oder `tabs` bedeutet nicht, dass ein späteres Ziel von `open` oder `navigate` erlaubt ist.
Sicherheitshinweise:
- Lockern Sie die Browser-SSRF-Richtlinie standardmäßig **nicht**.
- Bevorzugen Sie enge Host-Ausnahmen wie `hostnameAllowlist` oder `allowedHostnames` gegenüber breitem Zugriff auf private Netzwerke.
- Verwenden Sie `dangerouslyAllowPrivateNetwork: true` nur in bewusst vertrauenswürdigen Umgebungen, in denen Browser-Zugriff auf private Netzwerke erforderlich und geprüft ist.
Beispiel: Navigation blockiert, Steuerungsebene fehlerfrei
- `start` erfolgreich
- `tabs` erfolgreich
- `open http://internal.example` fehlschlägt
Das bedeutet in der Regel, dass der Browserstart in Ordnung ist und das Navigationsziel eine Richtlinienprüfung benötigt.
Beispiel: Start blockiert, bevor Navigation relevant wird
- `start` schlägt mit `not reachable after start` fehl
- `tabs` schlägt ebenfalls fehl oder kann nicht ausgeführt werden
Das weist auf Browserstart oder CDP-Erreichbarkeit hin, nicht auf ein Problem mit der Allowlist für Seiten-URLs.
## Agenten-Tools + wie die Steuerung funktioniert
Der Agent erhält **ein Tool** für Browser-Automatisierung:
Der Agent erhält **ein Tool** für die Browser-Automatisierung:
- `browser` — status/start/stop/tabs/open/focus/close/snapshot/screenshot/navigate/act
- `browser`Status/Start/Stopp/Tabs/Öffnen/Fokussieren/Schließen/Snapshot/Screenshot/Navigate/Act
Zuordnung:
@ -905,14 +961,14 @@ Zuordnung:
- `browser` akzeptiert:
- `profile`, um ein benanntes Browserprofil auszuwählen (openclaw, chrome oder Remote-CDP).
- `target` (`sandbox` | `host` | `node`), um auszuwählen, wo sich der Browser befindet.
- In Sandbox-Sitzungen erfordert `target: "host"` `agents.defaults.sandbox.browser.allowHostControl=true`.
- Wenn `target` weggelassen wird: Standardmäßig verwenden Sandbox-Sitzungen `sandbox`, Nicht-Sandbox-Sitzungen `host`.
- Wenn ein Browser-fähiger Node verbunden ist, kann das Tool automatisch dorthin weiterleiten, sofern Sie nicht `target="host"` oder `target="node"` festlegen.
- In sandboxed Sitzungen erfordert `target: "host"` `agents.defaults.sandbox.browser.allowHostControl=true`.
- Wenn `target` weggelassen wird: sandboxed Sitzungen verwenden standardmäßig `sandbox`, nicht-sandboxed Sitzungen standardmäßig `host`.
- Wenn ein browserfähiger Node verbunden ist, kann das Tool automatisch dorthin routen, sofern Sie `target="host"` oder `target="node"` nicht festlegen.
So bleibt der Agent deterministisch und vermeidet fragile Selektoren.
Dadurch bleibt der Agent deterministisch und vermeidet fragile Selektoren.
## Verwandt
- [Tools Overview](/de/tools) — alle verfügbaren Agenten-Tools
- [Sandboxing](/de/gateway/sandboxing) — Browser-Steuerung in Sandbox-Umgebungen
- [Security](/de/gateway/security) — Risiken der Browser-Steuerung und Härtung
- [Tools-Übersicht](/de/tools) — alle verfügbaren Agenten-Tools
- [Sandboxing](/de/gateway/sandboxing) — Browser-Steuerung in sandboxed Umgebungen
- [Sicherheit](/de/gateway/security) — Risiken und Härtung der Browser-Steuerung