Skip to content
Diese Seite wurde mit KI-Unterstützung erstellt und übersetzt. Falls Ihnen Ungenauigkeiten auffallen, helfen Sie gerne bei der Verbesserung. Auf GitHub bearbeiten

Browser-Werkzeug

Das Browser-Werkzeug bietet PRX-Agenten vollstandige Web-Automatisierungsfahigkeiten -- Navigation auf Seiten, Ausfullen von Formularen, Klicken auf Elemente, Extrahieren von Inhalten und Aufnehmen von Screenshots. Es verwendet eine austauschbare Backend-Architektur mit drei Automatisierungs-Engines und erzwingt Domain-Beschrankungen, um uneingeschrankten Web-Zugriff zu verhindern.

Browser-Werkzeuge sind Feature-gesteuert und erfordern browser.enabled = true in der Konfiguration. Wenn aktiviert, registriert PRX browser und browser_open in der Werkzeug-Registry. Das Browser-Werkzeug unterstutzt komplexe mehrstufige Web-Workflows, wahrend browser_open eine einfachere Schnittstelle zum Offnen einer URL und Extrahieren ihres Inhalts bietet.

PRX enthalt auch visionsbezogene Werkzeuge (screenshot, image, image_info), die das Browser-Werkzeug fur visuelle Aufgaben erganzen. Screenshots, die vom Browser-Werkzeug aufgenommen werden, konnen an visionfahige LLMs fur visuelles Reasoning weitergegeben werden.

Konfiguration

toml
[browser]
enabled = true
backend = "agent_browser"       # "agent_browser" | "rust_native" | "computer_use"
allowed_domains = ["github.com", "docs.rs", "*.openprx.dev", "stackoverflow.com"]
session_name = "default"        # Benannte Browser-Sitzung fur persistenten Zustand

Backend-Optionen

BackendBeschreibungAbhangigkeitenAm besten fur
agent_browserRuft die externe agent-browser-CLI auf, ein externes Headless-Browser-Werkzeugagent-browser-Binary im PATHAllgemeine Web-Automatisierung, JavaScript-lastige Seiten
rust_nativeEingebaute Rust-Browser-Implementierung mit Headless Chrome/ChromiumChromium installiertLeichtgewichtige Automatisierung, keine externen Abhangigkeiten
computer_useComputer-Use-Sidecar fur vollstandige Desktop-InteraktionAnthropic Computer-Use-SidecarOS-Level-Interaktionen, komplexe GUI-Workflows

Domain-Beschrankungen

Die allowed_domains-Liste steuert, auf welche Domains der Browser zugreifen kann. Domain-Matching unterstutzt:

  • Exakte Ubereinstimmung: "github.com" stimmt nur mit github.com uberein
  • Subdomain-Platzhalter: "*.openprx.dev" stimmt mit docs.openprx.dev, api.openprx.dev usw. uberein
  • Kein Platzhalter: Eine leere Liste blockiert jegliche Browser-Navigation
toml
[browser]
allowed_domains = [
  "github.com",
  "*.github.com",
  "docs.rs",
  "crates.io",
  "stackoverflow.com",
  "*.openprx.dev"
]

Verwendung

browser-Werkzeug

Das Haupt-browser-Werkzeug unterstutzt mehrere Aktionen fur komplexe Web-Workflows:

Zu einer URL navigieren:

json
{
  "name": "browser",
  "arguments": {
    "action": "navigate",
    "url": "https://github.com/openprx/prx"
  }
}

Ein Formularfeld ausfullen:

json
{
  "name": "browser",
  "arguments": {
    "action": "fill",
    "selector": "#search-input",
    "value": "PRX documentation"
  }
}

Ein Element anklicken:

json
{
  "name": "browser",
  "arguments": {
    "action": "click",
    "selector": "button[type='submit']"
  }
}

Einen Screenshot aufnehmen:

json
{
  "name": "browser",
  "arguments": {
    "action": "screenshot"
  }
}

Seiteninhalt extrahieren:

json
{
  "name": "browser",
  "arguments": {
    "action": "content"
  }
}

browser_open-Werkzeug

Ein vereinfachtes Werkzeug zum Offnen einer URL und Zuruckgeben ihres Inhalts:

json
{
  "name": "browser_open",
  "arguments": {
    "url": "https://docs.rs/tokio/latest/tokio/"
  }
}

Mehrstufiger Workflow-Beispiel

Ein typischer Recherche-Workflow konnte mehrere Browser-Aktionen verketten:

  1. Zu einer Suchmaschine navigieren
  2. Das Suchfeld mit einer Anfrage fullen
  3. Den Such-Button klicken
  4. Ergebnisse von der Seite extrahieren
  5. Zu einem relevanten Ergebnis navigieren
  6. Den detaillierten Inhalt extrahieren
  7. Einen Screenshot fur visuelle Referenz aufnehmen

Parameter

browser-Parameter

ParameterTypErforderlichStandardBeschreibung
actionstringJa--Auszufuhrende Aktion: "navigate", "fill", "click", "screenshot", "content", "scroll", "wait", "back", "forward"
urlstringBedingt--URL zum Navigieren (erforderlich fur "navigate"-Aktion)
selectorstringBedingt--CSS-Selektor fur das Zielelement (erforderlich fur "fill", "click")
valuestringBedingt--Auszufullender Wert (erforderlich fur "fill"-Aktion)
timeout_msintegerNein30000Maximale Wartezeit fur den Abschluss der Aktion

browser_open-Parameter

ParameterTypErforderlichStandardBeschreibung
urlstringJa--URL zum Offnen und Extrahieren von Inhalten

Vision-Werkzeug-Parameter

screenshot:

ParameterTypErforderlichStandardBeschreibung
targetstringNein"screen"Was aufgenommen werden soll: "screen" oder ein Fenster-Bezeichner

image:

ParameterTypErforderlichStandardBeschreibung
actionstringJa--Bildoperation: "resize", "crop", "convert"
pathstringJa--Pfad zur Bilddatei

image_info:

ParameterTypErforderlichStandardBeschreibung
pathstringJa--Pfad zur zu inspizierenden Bilddatei

Backend-Details

agent-browser

Das agent_browser-Backend delegiert an das externe agent-browser-CLI-Werkzeug, das eine Headless-Chrome-basierte Automatisierungsumgebung bereitstellt. Die Kommunikation erfolgt uber Stdio mit JSON-RPC-Nachrichten.

Vorteile:

  • Vollstandige JavaScript-Ausfuhrung
  • Cookie- und Sitzungspersistenz
  • Erweiterungsunterstutzung

rust_native

Das rust_native-Backend verwendet Rust-Bindings zur direkten Steuerung einer lokalen Chromium/Chrome-Installation. Es kommuniziert uber das Chrome DevTools Protocol (CDP).

Vorteile:

  • Keine externe Binary-Abhangigkeit (ausser Chromium)
  • Geringere Latenz als das Starten eines Subprozesses
  • Engere Integration mit PRX-Interna

computer_use

Das computer_use-Backend nutzt Anthropics Computer-Use-Sidecar fur OS-Level-Interaktionen einschliesslich Mausbewegung, Tastatureingabe und Bildschirmaufnahme. Dies geht uber Browser-Automatisierung hinaus zur vollstandigen Desktop-Steuerung.

Vorteile:

  • Kann mit nativen Anwendungen interagieren, nicht nur mit Browsern
  • Unterstutzt komplexe GUI-Workflows
  • Verarbeitet Popups, Dateidialoge und Systemeingabeaufforderungen

Sicherheit

Domain-Whitelist

Das Browser-Werkzeug erzwingt eine strikte Domain-Whitelist. Vor der Navigation zu einer URL:

  1. Die URL wird geparst und der Hostname wird extrahiert
  2. Der Hostname wird gegen allowed_domains gepruft
  3. Wenn keine Ubereinstimmung gefunden wird, wird die Navigation blockiert und ein Fehler zuruckgegeben

Dies verhindert, dass der Agent auf beliebige Websites zugreift, was ihn bosartigem Inhalt aussetzen oder unbeabsichtigte Aktionen auf authentifizierten Sitzungen auslosen konnte.

Sitzungsisolation

Browser-Sitzungen werden nach Namen isoliert. Verschiedene Agenten-Sitzungen oder Sub-Agenten konnen separate Browser-Kontexte verwenden, um Zustandsleckagen zu verhindern (Cookies, localStorage, Sitzungsdaten).

Inhaltsextraktionslimits

Die Seiteninhalt-Extraktion unterliegt dem web_search.fetch_max_chars-Limit, um Speichererschopfung durch ubermassig grosse Seiten zu verhindern.

Richtlinien-Engine

Browser-Werkzeugaufrufe durchlaufen die Sicherheitsrichtlinien-Engine. Das Werkzeug kann vollstandig verweigert oder uberwacht werden, um eine Genehmigung fur jede Navigation zu erfordern:

toml
[security.tool_policy.tools]
browser = "supervised"
browser_open = "allow"

Anmeldedaten-Sicherheit

Das Browser-Werkzeug injiziert keine Anmeldedaten oder Authentifizierungstoken in Browser-Sitzungen. Wenn der Agent sich auf einer Website authentifizieren muss, muss er das Browser-Werkzeug verwenden, um Login-Formulare explizit auszufullen, was Uberwachungsrichtlinien unterliegt.

Verwandte Seiten

Released under the Apache-2.0 License.