Torna agli aggiornamenti
New releaseJul 24, 2026

skyvern v1.0.47

Automatizza i flussi di lavoro basati su browser con l'IA

Condividi


🐉 Automazione dei flussi di lavoro basati su browser usando LLM e Computer Vision 🐉

Skyvern automatizza i flussi di lavoro basati su browser usando LLM e computer vision. Fornisce un SDK compatibile con Playwright che aggiunge funzionalità AI sopra Playwright, oltre a un costruttore di flussi di lavoro senza codice per aiutare utenti tecnici e non tecnici ad automatizzare flussi di lavoro manuali su qualsiasi sito web, sostituendo soluzioni di automazione fragili o inaffidabili.

Gli approcci tradizionali all'automazione dei browser richiedevano la scrittura di script personalizzati per i siti web, spesso basandosi sul parsing del DOM e interazioni basate su XPath che si rompevano ogni volta che i layout del sito cambiavano.

Invece di affidarsi solo a interazioni XPath definite dal codice, Skyvern si basa su Vision LLM per apprendere e interagire con i siti web.

Come funziona

Skyvern è stato ispirato dal design degli agenti autonomi guidati da compiti reso popolare da BabyAGI e AutoGPT -- con un grande vantaggio: diamo a Skyvern la capacità di interagire con i siti web usando librerie di automazione browser come Playwright.

Skyvern utilizza uno sciame di agenti per comprendere un sito web, pianificare ed eseguire le sue azioni:

Questo approccio ha alcuni vantaggi:

  1. Skyvern può operare su siti web mai visti prima, poiché è in grado di mappare elementi visivi alle azioni necessarie per completare un flusso di lavoro, senza alcun codice personalizzato
  2. Skyvern è resistente ai cambiamenti di layout dei siti web, poiché non ci sono XPath predefiniti o altri selettori che il nostro sistema cerca durante la navigazione
  3. Skyvern è in grado di prendere un singolo flusso di lavoro e applicarlo a un gran numero di siti web, poiché è in grado di ragionare sulle interazioni necessarie per completare il flusso di lavoro Un rapporto tecnico dettagliato può essere trovato qui.

Demo

https://github.com/user-attachments/assets/5cab4668-e8e2-4982-8551-aab05ff73a7f

Avvio rapido

Skyvern Cloud

Skyvern Cloud è una versione cloud gestita di Skyvern che ti permette di eseguire Skyvern senza preoccuparti dell'infrastruttura. Ti permette di eseguire più istanze di Skyvern in parallelo e viene fornito con meccanismi anti-bot, rete proxy e risolutori CAPTCHA.

Se desideri provarlo, vai su app.skyvern.com e crea un account.

Esecuzione locale (UI + Server)

Scegli il metodo di configurazione preferito:

Database predefinito: skyvern quickstart e skyvern run server utilizzano per impostazione predefinita un database SQLite in ~/.skyvern/data.db in modo che il percorso pip funzioni senza Postgres o Docker. Per usare Postgres invece, passa --postgres per un container locale o --database-string per un database esistente. Docker Compose usa sempre il servizio Postgres in bundle.

Opzione A: pip install (Consigliato per configurazione locale gestita da Python)

Dipendenze necessarie:

Inoltre, per Windows:

  • Rust
  • VS Code con strumenti di sviluppo C++ e Windows SDK

1. Installa Skyvern```bash

pip install "skyvern[all]"

#### 2. Esegui Skyvern```bash
skyvern quickstart

Il pip quickstart utilizza SQLite per impostazione predefinita. Per un container Postgres locale, esegui skyvern quickstart --postgres.

Opzione B: Docker Compose

Utilizza questa opzione se desideri tutto containerizzato (Postgres, API, UI) e non vuoi installare Python/Node localmente.

  1. Installa Docker Desktop
  2. Clona il repository: ```bash git clone https://github.com/skyvern-ai/skyvern.git && cd skyvern
  3. Configura il tuo provider LLM in .env (il comando quickstart --docker-compose qui sotto lo creerà da .env.example se mancante): ```bash cp .env.example .env # if not already created

    edit .env to add your LLM API key

  4. Avvia tutto: ```bash docker compose up -d
  5. Apri http://localhost:8080

Risoluzione dei problemi

(sqlite3.OperationalError) table organizations already exists — Hai incontrato un bug noto in pip install skyvern==1.0.31. Correzione:```bash rm ~/.skyvern/data.db # remove the leftover SQLite file pip install --upgrade skyvern # 1.0.32+ contains the fix skyvern quickstart

Se sei ancora su 1.0.31 e non puoi aggiornare, installa tramite uv invece:```bash
uv pip install skyvern

pip install skyvern fails with ResolutionImpossible (litellm / fastmcp) — Hai riscontrato un conflitto di risoluzione delle dipendenze nella versione 1.0.31. Aggiorna a 1.0.32+ o usa uv: uv pip install skyvern.

SDK

Skyvern è un'estensione di Playwright che aggiunge automazione del browser basata su AI. Ti offre tutta la potenza di Playwright con capacità AI aggiuntive: usa prompt in linguaggio naturale per interagire con gli elementi, estrarre dati e automatizzare flussi di lavoro complessi multi-step.

Installazione:

  • Python SDK / cloud API: pip install skyvern
  • Server locale + UI impacchettata: pip install "skyvern[all]" quindi esegui skyvern quickstart
  • Server locale + UI impacchettata con Postgres: pip install "skyvern[all]" quindi esegui skyvern quickstart --postgres
  • UI impacchettata per un'API esistente: pip install "skyvern[ui]" quindi esegui skyvern run ui --api-url <api-url> --api-key <api-key>
  • TypeScript: npm install @skyvern/client

Comandi di Pagina Basati su AI

Skyvern aggiunge quattro comandi AI fondamentali direttamente sull'oggetto page:

ComandoDescrizione
page.act(prompt)Esegui azioni usando linguaggio naturale (ad es., "Clicca il pulsante di login")
page.extract(prompt, schema)Estrai dati strutturati dalla pagina con schema JSON opzionale
page.validate(prompt)Valida lo stato della pagina, restituisce bool (ad es., "Verifica se l'utente ha effettuato il login")
page.prompt(prompt, schema)Invia prompt arbitrari all'LLM con schema di risposta opzionale

Inoltre, page.agent fornisce comandi di flusso di lavoro di più alto livello:

ComandoDescrizione
page.agent.run_task(prompt)Esegui compiti complessi multi-step
page.agent.login(credential_type, credential_id)Autenticati con credenziali salvate (Skyvern, Bitwarden, 1Password)
page.agent.download_files(prompt)Naviga e scarica file
page.agent.run_workflow(workflow_id)Esegui flussi di lavoro predefiniti

Azioni Playwright Potenziate da AI

Tutte le azioni Playwright standard supportano un parametro prompt opzionale per la localizzazione degli elementi basata su AI:

AzionePlaywrightPotenziato da AI
Clicpage.click("#btn")page.click(prompt="Click login button")
Compilapage.fill("#email", "[email protected]")page.fill(prompt="Email field", value="[email protected]")
Selezionapage.select_option("#country", "US")page.select_option(prompt="Country dropdown", value="US")
Caricapage.upload_file("#file", "doc.pdf")page.upload_file(prompt="Upload area", files="doc.pdf")

Tre modalità di interazione:```python

1. Traditional Playwright - CSS/XPath selectors

await page.click("#submit-button")

2. AI-powered - natural language

await page.click(prompt="Click the green Submit button")

3. AI fallback - tries selector first, falls back to AI if it fails

await page.click("#submit-btn", prompt="Click the Submit button")

### Comandi AI principali - Esempi```python
# act - Perform actions using natural language
await page.act("Click the login button and wait for the dashboard to load")

# extract - Extract structured data with optional JSON schema
result = await page.extract("Get the product name and price")
result = await page.extract(
    prompt="Extract order details",
    schema={"order_id": "string", "total": "number", "items": "array"}
)

# validate - Check page state (returns bool)
is_logged_in = await page.validate("Check if the user is logged in")

# prompt - Send arbitrary prompts to the LLM
summary = await page.prompt("Summarize what's on this page")

Esempi di Avvio Rapido

Esegui tramite UI:```bash skyvern run all

Vai a http://localhost:8080 per eseguire le attività tramite l'interfaccia web. Se l'interfaccia pacchettizzata non è presente, `skyvern run ui` offrirà di installare il pacchetto UI corrispondente. Per la configurazione non interattiva, usa `skyvern run ui --install-ui` o `skyvern run all --install-ui`.

Per eseguire solo l'interfaccia pacchettizzata contro un'API Skyvern esistente, installa `skyvern[ui]` e passa
`--api-url`; la CLI deduce `--wss-url` dall'URL dell'API a meno che non lo sovrascriva. Puoi anche impostare
`VITE_API_BASE_URL`, `VITE_WSS_BASE_URL`, `VITE_ARTIFACT_API_BASE_URL`, `VITE_SKYVERN_API_KEY`,
e `VITE_BROWSER_STREAMING_MODE` prima di eseguire `skyvern run ui`.

**Python SDK:**```python
from skyvern import Skyvern

# Local mode
skyvern = Skyvern.local()

# Or connect to Skyvern Cloud
skyvern = Skyvern(api_key="your-api-key")

# Launch browser and get page
browser = await skyvern.launch_cloud_browser()
page = await browser.get_working_page()

# Mix Playwright with AI-powered actions
await page.goto("https://example.com")
await page.click("#login-button")  # Traditional Playwright
await page.agent.login(credential_type="skyvern", credential_id="cred_123")  # AI login
await page.click(prompt="Add first item to cart")  # AI-augmented click
await page.agent.run_task("Complete checkout with: John Snow, 12345")  # AI task

TypeScript SDK:```typescript import { Skyvern } from "@skyvern/client";

const skyvern = new Skyvern({ apiKey: "your-api-key" }); const browser = await skyvern.launchCloudBrowser(); const page = await browser.getWorkingPage();

// Mix Playwright with AI-powered actions await page.goto("https://example.com"); await page.click("#login-button"); // Traditional Playwright await page.agent.login("skyvern", { credentialId: "cred_123" }); // AI login await page.click({ prompt: "Add first item to cart" }); // AI-augmented click await page.agent.runTask("Complete checkout with: John Snow, 12345"); // AI task

await browser.close();

**Esecuzione semplice di un'attività:**```python
from skyvern import Skyvern

skyvern = Skyvern()
task = await skyvern.run_task(prompt="Find the top post on hackernews today")
print(task)

Utilizzo Avanzato

Controlla il tuo browser (Chrome)

Fai controllare a Skyvern il tuo browser Chrome esistente — con tutti i tuoi cookie, login ed estensioni.

Passo 1: Abilita il debug remoto in Chrome

  1. Apri Chrome e naviga su chrome://inspect/#remote-debugging
  2. Clicca Abilita per avviare il server di debug
  3. Dovresti vedere: Server in esecuzione su: 127.0.0.1:9222

[!TIP] Il comando skyvern init browser può farlo automaticamente — apre chrome://inspect/#remote-debugging, aspetta che tu lo abiliti e salva la configurazione.

Passo 2: Collega Skyvern

Opzione A — Codice Python:```python from skyvern import Skyvern

skyvern = Skyvern( base_url="http://localhost:8000", api_key="YOUR_API_KEY", browser_address="http://127.0.0.1:9222", ) task = await skyvern.run_task( prompt="Find the top post on hackernews today", )

**Opzione B — Skyvern Service:**

Aggiungi due variabili al tuo file .env:```bash
BROWSER_TYPE=cdp-connect
BROWSER_REMOTE_DEBUGGING_URL=http://127.0.0.1:9222

Riavvia il servizio Skyvern con skyvern run all ed esegui il task tramite UI o codice

Collega Skyvern Cloud al tuo browser locale

Lascia che Skyvern Cloud controlli un browser Chrome in esecuzione sulla tua macchina — con tutti i tuoi cookie, login ed estensioni esistenti. Utile per automatizzare siti in cui hai già effettuato l'accesso o che si trovano dietro una VPN.```bash

One command to start Chrome + create a tunnel to Skyvern Cloud

skyvern browser serve --tunnel

Poi usa l'URL del tunnel nel tuo task:```python
from skyvern import Skyvern

skyvern = Skyvern(api_key="your-api-key")
task = await skyvern.run_task(
    prompt="Download the latest invoice from my account",
    browser_address="https://abc123.ngrok-free.dev",
)

[!WARNING] Utilizzare sempre --api-key quando si espone il browser tramite un tunnel. Senza di esso, chiunque abbia l'URL ha il controllo completo del browser. Vedi la documentazione sulla sicurezza.

Vedi la documentazione completa per tutte le opzioni, la configurazione manuale del tunnel e la risoluzione dei problemi.

Ottieni uno schema di output coerente dalla tua esecuzione

Puoi farlo aggiungendo il parametro data_extraction_schema:```python from skyvern import Skyvern

skyvern = Skyvern() task = await skyvern.run_task( prompt="Find the top post on hackernews today", data_extraction_schema={ "type": "object", "properties": { "title": { "type": "string", "description": "The title of the top post" }, "url": { "type": "string", "description": "The URL of the top post" }, "points": { "type": "integer", "description": "Number of points the post has received" } } } )

### Comandi utili per il debug dei problemi```bash
# Launch the Skyvern Server Separately*
skyvern run server

# Launch the Skyvern UI
skyvern run ui

# Check status of the Skyvern service
skyvern status

# Stop the Skyvern service
skyvern stop all

# Stop the Skyvern UI
skyvern stop ui

# Stop the Skyvern Server Separately
skyvern stop server

Performance & Evaluation

Skyvern ha prestazioni SOTA sul benchmark WebBench con un'accuratezza del 64,4%. Il rapporto tecnico e la valutazione sono disponibili qui.

Prestazioni sulle attività di WRITE (es. compilare moduli, accedere, scaricare file, ecc.)

Skyvern è l'agente con le migliori prestazioni sulle attività di WRITE (es. compilare moduli, accedere, scaricare file, ecc.), che sono utilizzate principalmente per attività affini alla RPA (Robotic Process Automation).

Funzionalità di Skyvern

Attività di Skyvern

Le attività sono il mattone fondamentale all'interno di Skyvern. Ogni attività è una singola richiesta a Skyvern, che lo istruisce a navigare attraverso un sito web e a raggiungere un obiettivo specifico.

Le attività richiedono di specificare un url, un prompt, e possono opzionalmente includere uno schema dei dati (se si desidera che l'output sia conforme a uno schema specifico) e codici di errore (se si vuole che Skyvern smetta di funzionare in situazioni specifiche).

Flussi di lavoro di Skyvern

I flussi di lavoro sono un modo per concatenare più attività insieme per formare un'unità di lavoro coesa.

Ad esempio, se si volessero scaricare tutte le fatture successive al 1° gennaio, si potrebbe creare un flusso di lavoro che prima naviga alla pagina delle fatture, poi filtra per mostrare solo le fatture successive al 1° gennaio, estrae un elenco di tutte le fatture idonee e scorre ciascuna fattura per scaricarla.

Un altro esempio: se si volesse automatizzare l'acquisto di prodotti da un negozio e-commerce, si potrebbe creare un flusso di lavoro che prima naviga fino al prodotto desiderato, poi lo aggiunge al carrello. In secondo luogo, navigherebbe al carrello e ne convaliderebbe lo stato. Infine, passerebbe attraverso il processo di pagamento per acquistare gli articoli.

Le funzionalità supportate dei flussi di lavoro includono:

  1. Browser Task
  2. Browser Action
  3. Estrazione dati
  4. Validazione
  5. Cicli For
  6. Analisi di file
  7. Invio di email
  8. Prompt di testo
  9. Blocco Richiesta HTTP
  10. Blocco di codice personalizzato
  11. Caricamento di file nel block storage
  12. (Prossimamente) Condizionali

Livestreaming

Skyvern permette di trasmettere in diretta il viewport del browser alla propria macchina locale, in modo da poter vedere esattamente cosa sta facendo Skyvern sul web. Questo è utile per il debug e per comprendere come Skyvern interagisce con un sito web, e per intervenire quando necessario.

Compilazione di moduli

Skyvern è nativamente in grado di compilare input di moduli sui siti web. Il passaggio di informazioni tramite navigation_goal consentirà a Skyvern di comprendere le informazioni e compilare il modulo di conseguenza.

Estrazione dati

Skyvern è anche in grado di estrarre dati da un sito web.

Puoi anche specificare uno schema di estrazione dati direttamente all'interno del prompt principale per dire a Skyvern esattamente quali dati desideri estrarre dal sito web, in formato jsonc. L'output di Skyvern sarà strutturato in base allo schema fornito.

Download di file

Skyvern è anche in grado di scaricare file da un sito web. Tutti i file scaricati vengono automaticamente caricati nel block storage (se configurato) e puoi accedervi tramite l'interfaccia utente.

Autenticazione

Skyvern supporta diversi metodi di autenticazione per facilitare l'automazione delle attività protette da login. Se desideri provarlo, contattaci via email o su discord.

🔐 Supporto 2FA (TOTP)

Skyvern supporta diversi metodi di autenticazione a due fattori per consentire l'automazione di flussi di lavoro che richiedono 2FA.

Esempi includono:

  1. 2FA basata su QR (es. Google Authenticator, Authy)
  2. 2FA basata su email
  3. 2FA basata su SMS

🔐 Scopri di più sul supporto 2FA qui.

Integrazioni con gestori di password

Skyvern attualmente supporta le seguenti integrazioni con gestori di password:

  • Bitwarden
  • Custom Credential Service (HTTP API)
  • 1Password
  • LastPass

Model Context Protocol (MCP)

Skyvern supporta il Model Context Protocol (MCP) per permetterti di utilizzare qualsiasi LLM che supporti MCP.

Consulta la documentazione MCP qui

Integrazione con Zapier / Make.com / N8N

Skyvern supporta Zapier, Make.com, e N8N per permetterti di connettere i tuoi flussi di lavoro Skyvern ad altre app.

🔐 Scopri di più sul supporto 2FA qui.

Esempi reali di Skyvern

Adoriamo vedere come Skyvern viene utilizzato "sul campo". Ecco alcuni esempi di come Skyvern viene utilizzato per automatizzare flussi di lavoro nel mondo reale. Invia una PR per aggiungere i tuoi esempi!

Download di fatture su molti siti web diversi

Prenota una demo per vederlo dal vivo

Automatizza il processo di candidatura

💡 Vedi in azione

Automatizza l'approvvigionamento di materiali per un'azienda manifatturiera

💡 Vedi in azione

💡 Vedi in azione

Compilare moduli di contatto casuali

💡 Vedi in azione

Ottenere preventivi assicurativi da compagnie assicurative in qualsiasi lingua

💡 Vedi in azione

💡 Vedi in azione

Configurazione per i contributori

Assicurati di avere uv installato.

  1. Esegui questo comando per creare il tuo ambiente virtuale (.venv)
    uv sync --group dev
    
  2. Esegui la configurazione iniziale del server
    uv run skyvern quickstart
    
  3. Naviga a http://localhost:8080 nel tuo browser per iniziare a usare l'interfaccia utente La CLI di Skyvern supporta ambienti Windows, WSL, macOS e Linux.

Documentazione

La documentazione più estesa è disponibile sulla nostra 📕 pagina docs. Faccelo sapere se qualcosa non è chiaro o manca aprendo un'issue o contattandoci via email o su discord.

LLM supportati

ProviderModelli supportati
OpenAIGPT-5.5, GPT-5.4, GPT-5, GPT-4.1, o3, o4-mini
AnthropicClaude 4.7 Opus, Claude 4.6 (Sonnet, Opus), Claude 4.5 (Haiku, Sonnet, Opus)
Azure OpenAIQualsiasi modello GPT distribuito nella tua sottoscrizione Azure
AWS BedrockClaude 4.7, Claude 4.6 (Sonnet, Opus), Claude 4.5 (Sonnet, Opus)
GeminiGemini 3.1 Pro, Gemini 3 Flash, Gemini 2.5 Pro/Flash
OllamaEsegui qualsiasi modello ospitato localmente tramite Ollama
OpenRouterAccedi ai modelli tramite OpenRouter
Compatibile OpenAIQualsiasi endpoint API personalizzato che segue il formato delle API di OpenAI (tramite liteLLM)

Per una configurazione dettagliata degli LLM, inclusi tutte le chiavi modello disponibili, le variabili d'ambiente e le configurazioni multi-modello, consulta la documentazione sulla configurazione LLM.

Contribuire

Accogliamo con favore PR e suggerimenti! Non esitare ad aprire una PR/issue o contattarci via email o su discord. Dai un'occhiata alla nostra guida per contribuire e alle issue "Help Wanted" per iniziare!

Se vuoi chattare con il repository skyvern per ottenere una panoramica generale di come è strutturato, come basarti su di esso e come risolvere domande sull'utilizzo, dai un'occhiata a Code Sage.

Telemetria

Per impostazione predefinita, Skyvern raccoglie statistiche di utilizzo di base per aiutarci a capire come viene utilizzato. Se desideri disattivare la telemetria, imposta la variabile d'ambiente SKYVERN_TELEMETRY su false.

Licenza

Il repository open source di Skyvern è supportato tramite un cloud gestito. Tutta la logica principale che alimenta Skyvern è disponibile in questo repository open source con licenza AGPL-3.0, ad eccezione delle misure anti-bot disponibili nella nostra offerta cloud gestita.

Se hai domande o dubbi sulla licenza, contattaci e saremo lieti di aiutarti.

Cronologia stelle

Star History Chart

Categorie