Automatisieren Sie browserbasierte Arbeitsabläufe mithilfe von LLMs und Computer Vision
Skyvern automatisiert browserbasierte Arbeitsabläufe mithilfe von LLMs und Computer Vision. Es bietet einen einfachen API-Endpunkt zur vollständigen Automatisierung manueller Arbeitsabläufe auf einer großen Anzahl von Websites und ersetzt spröde oder unzuverlässige Automatisierungslösungen.
Herkömmliche Ansätze zur Browserautomatisierung erforderten das Schreiben benutzerdefinierter Skripte für Websites, die häufig auf DOM-Parsing und XPath-basierten Interaktionen beruhten und bei jeder Änderung des Website-Layouts abbrachen.
Anstatt sich nur auf codedefinierte XPath-Interaktionen zu verlassen, verlässt sich Skyvern zusätzlich zu Computer Vision und LLMs auf Eingabeaufforderungen, um Elemente im Ansichtsfenster in Echtzeit zu analysieren, einen Interaktionsplan zu erstellen und mit ihnen zu interagieren.
Dieser Ansatz bietet uns einige Vorteile:
Skyvern kann auf noch nie dagewesenen Websites eingesetzt werden, da es in der Lage ist, visuelle Elemente den Aktionen zuzuordnen, die zum Abschließen eines Arbeitsablaufs erforderlich sind, ohne dass dafür angepasster Code erforderlich ist
Skyvern ist resistent gegen Änderungen des Website-Layouts, da es keine vordefinierten XPaths oder andere Selektoren gibt, nach denen unser System beim Navigieren sucht
Skyvern ist in der Lage, einen einzelnen Workflow auf eine große Anzahl von Websites anzuwenden, da es in der Lage ist, die zur Vervollständigung des Workflows erforderlichen Interaktionen zu durchdenken
Skyvern nutzt LLMs, um durch Interaktionen zu argumentieren und sicherzustellen, dass wir komplexe Situationen abdecken können. Beispiele hierfür sind:
Wenn Sie ein Kfz-Versicherungsangebot von Geico einholen möchten, ist die Antwort auf eine häufig gestellte Frage „Haben Sie mit 18 Jahren berechtigt zu fahren?“ nicht ausreichend. könnte daraus abgeleitet werden, dass der Fahrer seinen Führerschein im Alter von 16 Jahren erhielt
Wenn Sie eine Konkurrenzanalyse durchgeführt haben, geht es darum, zu verstehen, dass eine 22-Unzen-Dose von Arnold Palmer bei 7/11 mit ziemlicher Sicherheit das gleiche Produkt ist wie eine 23-Unzen-Dose bei Gopuff (auch wenn die Größen leicht unterschiedlich sind, was ein Rundungsfehler sein könnte!)
Möchten Sie Beispiele von Skyvern in Aktion sehen? Springe zu #real-world-examples-of-skyvern
Skyvern wurde vom aufgabengesteuerten autonomen Agentendesign inspiriert, das durch BabyAGI und AutoGPT populär gemacht wurde – mit einem großen Bonus: Wir geben Skyvern die Möglichkeit, mithilfe von Browser-Automatisierungsbibliotheken wie Playwright mit Websites zu interagieren.
Skyvern nutzt einen Schwarm von Agenten, um eine Website zu verstehen und ihre Aktionen zu planen und auszuführen:
Agent für interagierbare Elemente : Dieser Agent ist für das Parsen des HTML-Codes einer Website und das Extrahieren der interagierbaren Elemente verantwortlich.
Navigationsagent : Dieser Agent ist für die Planung der Navigation zur Erledigung einer Aufgabe verantwortlich. Beispiele hierfür sind das Klicken auf Schaltflächen, das Einfügen von Text, das Auswählen von Optionen usw.
Datenextraktionsagent : Dieser Agent ist für die Extraktion von Daten von einer Website verantwortlich. Es ist in der Lage, die Tabellen und den Text auf der Seite zu lesen und die Ausgabe in einem benutzerdefinierten strukturierten Format zu extrahieren
Passwort-Agent : Dieser Agent ist für das Ausfüllen von Passwortformularen auf einer Website verantwortlich. Es ist in der Lage, den Benutzernamen und das Passwort aus einem Passwort-Manager zu lesen und das Formular auszufüllen, während die Privatsphäre der benutzerdefinierten Geheimnisse gewahrt bleibt.
2FA-Agent : Dieser Agent ist für das Ausfüllen von 2FA-Formularen auf einer Website verantwortlich. Es ist in der Lage, Website-Anfragen für 2FAs abzufangen und entweder benutzerdefinierte APIs für 2FA-Codes anzufordern oder darauf zu warten, dass Benutzer 2FA-Codes eingeben, und dann den Anmeldevorgang abzuschließen.
Dynamischer Autovervollständigungs-Agent : Dieser Agent ist für das Ausfüllen dynamischer Autovervollständigungsformulare auf einer Website verantwortlich. Es ist in der Lage, die ihm angezeigten Optionen zu lesen, die entsprechende Option basierend auf den Eingaben des Benutzers auszuwählen und seine Eingaben basierend auf dem Feedback aus dem Formular anzupassen. Beliebte Beispiele sind: Adressformulare, Universitäts-Dropdown-Listen und mehr.
Wir bieten eine verwaltete Cloud-Version von Skyvern an, mit der Sie Skyvern ausführen können, ohne die Infrastruktur verwalten zu müssen. Es ermöglicht Ihnen, mehrere Skyvern-Instanzen parallel auszuführen, um Ihre Arbeitsabläufe im großen Maßstab zu automatisieren. Darüber hinaus ist die Skyvern-Cloud mit Anti-Bot-Erkennungsmechanismen, Proxy-Netzwerk und CAPTCHA-Lösung ausgestattet, damit Sie kompliziertere Arbeitsabläufe durchführen können.
Wenn Sie es ausprobieren möchten,
Navigieren Sie zu app.skyvern.com
Erstellen Sie ein Konto und erhalten Sie ein Guthaben im Wert von 5 USD
Starten Sie Ihre erste Aufgabe und sehen Sie Skyvern in Aktion!
Hier sind einige Tipps, die Ihnen bei Ihrem Abenteuer helfen können:
Skyvern ist wirklich gut darin, ein einzelnes Ziel zu erreichen. Wenn Sie ihm zu viele Anweisungen geben, besteht eine hohe Wahrscheinlichkeit, dass er unterwegs verwirrt wird.
Es ist sehr wichtig, die Ziele wirklich deutlich zu formulieren. Wenn Sie beispielsweise ein Versicherungsangebot erstellen, teilen Sie ihm ganz klar mit, woran es erkennen kann, dass es seine Ziele erreicht hat. Verwenden Sie Wörter wie „ABGESCHLOSSEN“ oder „BEENDEN“, um den Erfolgs- bzw. Fehlermodus anzugeben.
Workflows können verwendet werden, wenn Sie fortgeschrittenere Dinge tun möchten, wie zum Beispiel mehrere Anweisungen miteinander verketten oder sich sicher anmelden möchten. Wenn Sie dabei Hilfe benötigen, können Sie gerne etwas Zeit bei uns buchen! Wir helfen Ihnen jederzeit gerne weiter
Diese Schnellstartanleitung führt Sie durch die Einrichtung und Ausführung von Skyvern auf Ihrem lokalen Computer.
Stellen Sie sicher, dass Docker Desktop auf Ihrem Computer installiert ist und ausgeführt wird
Stellen Sie sicher, dass Postgres nicht lokal ausgeführt wird (führen Sie docker ps
aus, um dies zu überprüfen)
Klonen Sie das Repository und navigieren Sie zum Stammverzeichnis
Geben Sie den LLM-Anbieterschlüssel in docker-compose.yml ein. Wenn Sie Skyvern auf einem Remote-Server ausführen möchten, stellen Sie sicher, dass Sie in docker-compose.yml die richtige Server-IP für den UI-Container festlegen.
Führen Sie den folgenden Befehl über die Befehlszeile aus:
Docker komponieren -d
Navigieren Sie in Ihrem Browser zu http://localhost:8080
um mit der Verwendung der Benutzeroberfläche zu beginnen
Bevor Sie beginnen, stellen Sie sicher, dass Folgendes installiert ist:
Brew (wenn Sie einen Mac verwenden)
Poesie
brew install poetry
Knoten
Docker
Hinweis: Unser Setup-Skript erledigt diese beiden Schritte für Sie, sie dienen jedoch als Referenz.
Python 3.11
poetry env use 3.11
PostgreSQL 14 (wenn Sie einen Mac verwenden, installiert das Setup-Skript es für Sie, wenn Sie Homebrew installiert haben)
brew install postgresql
Klonen Sie das Repository und navigieren Sie zum Stammverzeichnis
Öffnen Sie Docker Desktop (funktioniert für Windows, macOS und Linux) oder führen Sie Docker Daemon aus
Führen Sie das Setup-Skript aus, um die erforderlichen Abhängigkeiten zu installieren und Ihre Umgebung einzurichten
./setup.sh
Starten Sie den Server
./run_skyvern.sh
Sie können damit beginnen, Anfragen an den Server zu senden. Wir haben jedoch eine einfache Benutzeroberfläche erstellt, um Ihnen den Einstieg zu erleichtern. Um die Benutzeroberfläche zu starten, führen Sie den folgenden Befehl aus:
./run_ui.sh
Navigieren Sie in Ihrem Browser zu http://localhost:8080
um mit der Verwendung der Benutzeroberfläche zu beginnen
Wenn Sie zu Skyvern beitragen möchten, müssen Sie die Pre-Commit-Hooks installieren, um die Qualität und Konsistenz des Codes sicherzustellen. Sie können dies tun, indem Sie den folgenden Befehl ausführen:
Pre-Commit-Installation
Aufgaben sind der Grundbaustein von Skyvern. Jede Aufgabe ist eine einzelne Anfrage an Skyvern, die es anweist, durch eine Website zu navigieren und ein bestimmtes Ziel zu erreichen.
Für Aufgaben müssen Sie eine url
, navigation_goal
und optional data_extraction_goal
angeben, wenn Sie Daten von der Website extrahieren möchten, und eine navigation_payload
wenn Sie zusätzlichen Kontext bereitstellen möchten, um Skyvern dabei zu helfen, Informationen auszufüllen oder auf einer Website gestellte Fragen zu beantworten.
Workflows sind eine Möglichkeit, mehrere Aufgaben zu einer zusammenhängenden Arbeitseinheit zu verketten.
Wenn Sie beispielsweise alle Rechnungen herunterladen möchten, die neuer als der 1. Januar sind, könnten Sie einen Workflow erstellen, der zunächst zur Seite „Rechnungen“ navigiert, dann nach unten filtert, um nur Rechnungen anzuzeigen, die neuer als der 1. Januar sind, eine Liste aller berechtigten Rechnungen extrahiert und iteriert durch jede Rechnung, um sie herunterzuladen.
Ein weiteres Beispiel: Wenn Sie den Kauf von Produkten in einem E-Commerce-Shop automatisieren möchten, könnten Sie einen Workflow erstellen, der zunächst zum gewünschten Produkt navigiert und es dann in den Warenkorb legt. Zweitens würde es zum Warenkorb navigieren und den Warenkorbstatus überprüfen. Abschließend wird der Bestellvorgang durchlaufen, um die Artikel zu kaufen.
Zu den unterstützten Workflow-Funktionen gehören:
Aufgaben (+ verkettete Aufgaben)
Schleifen
Dateianalyse
Hochladen von Dateien in den Blockspeicher
E-Mails versenden
Textaufforderungen
(In Kürze erhältlich) Bedingungen
(In Kürze erhältlich) Benutzerdefinierter Codeblock
Mit Skyvern können Sie das Ansichtsfenster des Browsers per Livestream auf Ihren lokalen Computer übertragen, sodass Sie genau sehen können, was Skyvern im Web tut. Dies ist nützlich, um Fehler zu beheben und zu verstehen, wie Skyvern mit einer Website interagiert, und bei Bedarf einzugreifen
Skyvern ist von Haus aus in der Lage, Formulareingaben auf Websites auszufüllen. Durch die Weitergabe von Informationen über navigation_goal
oder navigation_payload
kann Skyvern die Informationen verstehen und das Formular entsprechend ausfüllen.
Skyvern ist auch in der Lage, Daten von einer Website zu extrahieren. Durch die Angabe eines data_extraction_goal
kann Skyvern die Daten extrahieren und in der Antwort an Sie zurücksenden.
Sie können auch ein data_extraction_schema
angeben, um Skyvern im JSONC-Format genau mitzuteilen, welche Daten Sie von der Website extrahieren möchten. Die Ausgabe von Skyvern wird gemäß dem bereitgestellten Schema strukturiert.
Skyvern ist auch in der Lage, Dateien von einer Website herunterzuladen. Durch die Angabe eines file_download_goal
kann Skyvern die Datei herunterladen und in der Antwort einen Link zur Datei zurückgeben.
Skyvern unterstützt eine Reihe verschiedener Authentifizierungsmethoden, um die Automatisierung von Aufgaben hinter einer Anmeldung zu erleichtern.
Skyvern unterstützt derzeit die folgenden Passwort-Manager-Integrationen:
Bitwarden
1Passwort
LastPass
Skyvern unterstützt eine Reihe verschiedener 2FA-Methoden, damit Sie Arbeitsabläufe automatisieren können, die 2FA erfordern.
Beispiele hierfür sind:
QR-basierte 2FA (z. B. Google Authenticator, Authy)
E-Mail-basierte 2FA
SMS-basierte 2FA
Wir lieben es zu sehen, wie Skyvern in freier Wildbahn eingesetzt wird. Hier sind einige Beispiele dafür, wie Skyvern zur Automatisierung von Arbeitsabläufen in der realen Welt eingesetzt wird. Bitte öffnen Sie PRs, um Ihre eigenen Beispiele hinzuzufügen!
Wenn Sie diese Beispiele ausprobieren möchten, muss Skyvern lokal ausgeführt werden. Bitte führen Sie den folgenden Befehl aus, nachdem Sie die Schnellstartanleitung durchgelesen haben:
./run_skyvern.sh
Buchen Sie eine Demo, um es live zu sehen
Sehen Sie es in Aktion
Sehen Sie es in Aktion
Sehen Sie es in Aktion
Sehen Sie es in Aktion
Sehen Sie es in Aktion
Sehen Sie es in Aktion
Eine ausführlichere Dokumentation finden Sie auf unserer Dokumentationswebsite. Bitte teilen Sie uns mit, wenn etwas unklar ist oder fehlt, indem Sie ein Problem eröffnen oder uns per E-Mail oder Discord kontaktieren.
Anbieter | Unterstützte Modelle |
---|---|
OpenAI | gpt4-turbo, gpt-4o, gpt-4o-mini |
Anthropisch | Claude 3 (Haiku, Sonett, Opus), Claude 3.5 (Sonett) |
Azure OpenAI | Alle GPT-Modelle. Bessere Leistung mit einem multimodalen LM (Azure/gpt4-o) |
AWS-Grundgestein | Anthropic Claude 3 (Haiku, Sonett, Opus), Claude 3.5 (Sonett) |
Ollama | Demnächst verfügbar (Beiträge willkommen) |
Zwillinge | Demnächst verfügbar (Beiträge willkommen) |
Lama 3.2 | Demnächst verfügbar (Beiträge willkommen) |
Variable | Beschreibung | Typ | Beispielwert |
---|---|---|---|
ENABLE_OPENAI | Registrieren Sie OpenAI-Modelle | Boolescher Wert | true , false |
ENABLE_ANTHROPIC | Registrieren Sie anthropische Modelle | Boolescher Wert | true , false |
ENABLE_AZURE | Registrieren Sie Azure OpenAI-Modelle | Boolescher Wert | true , false |
ENABLE_BEDROCK | Registrieren Sie AWS Bedrock-Modelle | Boolescher Wert | true , false |
LLM_KEY | Der Name des Modells, das Sie verwenden möchten | Zeichenfolge | Derzeit unterstützte LLM-Schlüssel: OPENAI_GPT4_TURBO , OPENAI_GPT4V , OPENAI_GPT4O , OPENAI_GPT4O_MINI , ANTHROPIC_CLAUDE3 , ANTHROPIC_CLAUDE3_OPUS , ANTHROPIC_CLAUDE3_SONNET , ANTHROPIC_CLAUDE3_HAIKU , ANTHROPIC_CLAUDE3.5_SONNET , BEDROCK_ANTHROPIC_CLAUDE3_OPUS , BEDROCK_ANTHROPIC_CLAUDE3_SONNET , BEDROCK_ANTHROPIC_CLAUDE3_HAIKU , BEDROCK_ANTHROPIC_CLAUDE3.5_SONNET , AZURE_OPENAI |
OPENAI_API_KEY | OpenAI-API-Schlüssel | Zeichenfolge | sk-1234567890 |
OPENAI_API_BASE | OpenAI API Base, optional | Zeichenfolge | https://openai.api.base |
OPENAI_ORGANIZATION | OpenAI-Organisations-ID, optional | Zeichenfolge | your-org-id |
ANTHROPIC_API_KEY | Anthropischer API-Schlüssel | Zeichenfolge | sk-1234567890 |
AZURE_API_KEY | API-Schlüssel für die Azure-Bereitstellung | Zeichenfolge | sk-1234567890 |
AZURE_DEPLOYMENT | Azure OpenAI-Bereitstellungsname | Zeichenfolge | skyvern-deployment |
AZURE_API_BASE | Basis-URL der Azure-Bereitstellungs-API | Zeichenfolge | https://skyvern-deployment.openai.azure.com/ |
AZURE_API_VERSION | Azure-API-Version | Zeichenfolge | 2024-02-01 |
Dies ist unsere geplante Roadmap für die nächsten Monate. Wenn Sie Vorschläge haben oder eine hinzugefügte Funktion wünschen, zögern Sie bitte nicht, uns per E-Mail oder Discord zu kontaktieren.
Open Source – Open Source-Kerncodebasis von Skyvern
[BETA] Workflow-Unterstützung – Unterstützung für die Verkettung mehrerer Skyvern-Anrufe ermöglichen
Verbesserter Kontext – Verbessern Sie Skyverns Fähigkeit, Inhalte rund um interagierbare Elemente zu verstehen, indem Sie den relevanten Beschriftungskontext über die Texteingabe einführen
Kosteneinsparungen – Verbessern Sie die Stabilität von Skyvern und senken Sie die Betriebskosten von Skyvern, indem Sie den an Skyvern übergebenen Kontextbaum optimieren
Self-Service-Benutzeroberfläche – Verwerfen Sie die Streamlit-Benutzeroberfläche zugunsten einer React-basierten UI-Komponente, die es Benutzern ermöglicht, neue Jobs in Skyvern zu starten
Workflow UI Builder – Führen Sie eine Benutzeroberfläche ein, die es Benutzern ermöglicht, Workflows visuell zu erstellen und zu analysieren
Chrome-Ansichtsfenster-Streaming – Einführung einer Möglichkeit zum Live-Streaming des Chrome-Ansichtsfensters an den Browser des Benutzers (als Teil der Self-Service-Benutzeroberfläche).
Benutzeroberfläche für vergangene Läufe – Verwerfen Sie die Streamlit-Benutzeroberfläche zugunsten einer React-basierten Benutzeroberfläche, mit der Sie vergangene Läufe und deren Ergebnisse visualisieren können
Prompt Caching – Führen Sie eine Caching-Ebene in die LLM-Aufrufe ein, um die Kosten für den Betrieb von Skyvern drastisch zu senken (vergangene Aktionen merken und wiederholen!)
Web-Bewertungsdatensatz – Integrieren Sie Skyvern in öffentliche Benchmark-Tests, um die Qualität unserer Modelle im Laufe der Zeit zu verfolgen
Verbesserter Debug-Modus – Ermöglichen Sie Skyvern, seine Aktionen zu planen und eine „Genehmigung“ einzuholen, bevor Sie sie ausführen. So können Sie debuggen, was es tut, und die Eingabeaufforderung einfacher iterieren
Automatischer Workflow-Builder-Modus („Observer“) – Ermöglichen Sie Skyvern, beim Navigieren im Internet automatisch Workflows zu generieren, um die Erstellung neuer Workflows zu erleichtern
Chrome-Erweiterung – Ermöglichen Sie Benutzern die Interaktion mit Skyvern über eine Chrome-Erweiterung (einschließlich Sprachmodus, Speichern von Aufgaben usw.)
Skyvern Action Recorder – Ermöglichen Sie Skyvern, zu beobachten, wie ein Benutzer eine Aufgabe erledigt, und dann automatisch einen Workflow dafür zu generieren
Interaktiver Livestream – Ermöglichen Sie Benutzern die Interaktion mit dem Livestream in Echtzeit, um bei Bedarf einzugreifen (z. B. manuelles Absenden vertraulicher Formulare).
Integrieren Sie LLM-Observability-Tools – Integrieren Sie LLM-Observability-Tools, um ein Backtesting zeitnaher Änderungen mit spezifischen Datensätzen zu ermöglichen und die Leistung von Skyvern im Zeitverlauf zu visualisieren
Langchain-Integration – Erstellen Sie eine Langchain-Integration in langchain_community, um Skyvern als „Werkzeug“ zu verwenden.
Wir freuen uns über PRs und Vorschläge! Zögern Sie nicht, eine PR/Ausgabe zu eröffnen oder uns per E-Mail oder Discord zu kontaktieren. Bitte werfen Sie einen Blick auf unseren Beitragsleitfaden und die „Help Wanted“-Ausgaben, um loszulegen!
Wenn Sie mit dem Skyvern-Repository chatten möchten, um einen allgemeinen Überblick darüber zu erhalten, wie es aufgebaut ist, wie man darauf aufbaut und wie man Nutzungsfragen löst, schauen Sie sich Code Sage an.
Standardmäßig sammelt Skyvern grundlegende Nutzungsstatistiken, um uns zu helfen, zu verstehen, wie Skyvern genutzt wird. Wenn Sie die Telemetrie deaktivieren möchten, setzen Sie bitte die Umgebungsvariable SKYVERN_TELEMETRY
auf false
.
Das Open-Source-Repository von Skyvern wird über eine verwaltete Cloud unterstützt. Die gesamte Kernlogik, die Skyvern antreibt, ist in diesem Open-Source-Repository verfügbar, das unter der AGPL-3.0-Lizenz lizenziert ist, mit Ausnahme der Anti-Bot-Maßnahmen, die in unserem Managed-Cloud-Angebot verfügbar sind.
Wenn Sie Fragen oder Bedenken zur Lizenzierung haben, kontaktieren Sie uns bitte und wir helfen Ihnen gerne weiter.