Voltar às atualizações
New releaseJul 24, 2026

skyvern v1.0.47

Automatize fluxos de trabalho baseados em navegador com IA

Compartilhar


🐉 Automatize fluxos de trabalho baseados em navegador usando LLMs e Visão Computacional 🐉

Skyvern automatiza fluxos de trabalho baseados em navegador usando LLMs e visão computacional. Ele fornece um SDK compatível com Playwright que adiciona funcionalidades de IA sobre o Playwright, além de um construtor de fluxos de trabalho sem código para ajudar usuários técnicos e não técnicos a automatizar fluxos de trabalho manuais em qualquer site, substituindo soluções de automação frágeis ou não confiáveis.

Abordagens tradicionais para automação de navegador exigiam a criação de scripts personalizados para sites, muitas vezes baseados em análise de DOM e interações baseadas em XPath, que quebravam sempre que o layout do site mudava.

Em vez de depender apenas de interações XPath definidas em código, o Skyvern utiliza LLMs de Visão para aprender e interagir com os sites.

Como funciona

O Skyvern foi inspirado no design de agente autônomo orientado por tarefas popularizado pelo BabyAGI e AutoGPT — com um grande diferencial: damos ao Skyvern a capacidade de interagir com sites usando bibliotecas de automação de navegador como Playwright.

O Skyvern usa um enxame de agentes para compreender um site, planejar e executar suas ações:

Essa abordagem tem algumas vantagens:

  1. O Skyvern pode operar em sites que nunca viu antes, pois é capaz de mapear elementos visuais para ações necessárias para concluir um fluxo de trabalho, sem qualquer código personalizado.
  2. O Skyvern é resistente a mudanças de layout do site, pois não há XPaths pré-determinados ou outros seletores que nosso sistema procura ao tentar navegar.
  3. O Skyvern é capaz de pegar um único fluxo de trabalho e aplicá-lo a um grande número de sites, pois consegue raciocinar sobre as interações necessárias para concluir o fluxo de trabalho. Um relatório técnico detalhado pode ser encontrado aqui.

Demonstração

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

Início Rápido

Skyvern Cloud

Skyvern Cloud é uma versão gerenciada em nuvem do Skyvern que permite executar o Skyvern sem se preocupar com a infraestrutura. Ele permite executar várias instâncias do Skyvern em paralelo e vem com mecanismos de detecção anti-bot, rede de proxy e resolvedores de CAPTCHA.

Se quiser experimentar, acesse app.skyvern.com e crie uma conta.

Executar Localmente (Interface + Servidor)

Escolha o método de configuração preferido:

Banco de dados padrão: skyvern quickstart e skyvern run server usam por padrão um banco de dados SQLite em ~/.skyvern/data.db, então o caminho pip funciona sem Postgres ou Docker. Para usar Postgres, passe --postgres para um contêiner local ou --database-string para um banco de dados existente. O Docker Compose sempre usa o serviço Postgres incluído.

Opção A: pip install (Recomendado para configuração local gerenciada por Python)

Dependências necessárias:

Além disso, para Windows:

  • Rust
  • VS Code com ferramentas de desenvolvimento C++ e Windows SDK

1. Instalar o Skyvern```bash

pip install "skyvern[all]"

#### 2. Executar o Skyvern```bash
skyvern quickstart

O pip quickstart usa SQLite por padrão. Para um contêiner Postgres local, execute skyvern quickstart --postgres.

Opção B: Docker Compose

Use esta opção se quiser tudo em contêineres (Postgres, API, UI) e não quiser instalar Python/Node localmente.

  1. Instale o Docker Desktop
  2. Clone o repositório: ```bash git clone https://github.com/skyvern-ai/skyvern.git && cd skyvern
  3. Configure seu provedor de LLM em .env (o comando quickstart --docker-compose abaixo criará a partir de .env.example se estiver ausente): ```bash cp .env.example .env # if not already created

    edit .env to add your LLM API key

  4. Iniciar tudo: ```bash docker compose up -d
  5. Abra http://localhost:8080

Solução de Problemas

(sqlite3.OperationalError) table organizations already exists — Você encontrou um bug conhecido no pip install skyvern==1.0.31. Correção:```bash rm ~/.skyvern/data.db # remove the leftover SQLite file pip install --upgrade skyvern # 1.0.32+ contains the fix skyvern quickstart

Se você ainda estiver na versão 1.0.31 e não puder atualizar, instale via uv em vez disso:```bash
uv pip install skyvern

pip install skyvern falha com ResolutionImpossible (litellm / fastmcp) — Você encontrou um conflito de resolução de dependências na versão 1.0.31. Atualize para 1.0.32+ ou use uv: uv pip install skyvern.

SDK

Skyvern é uma extensão do Playwright que adiciona automação de navegador com IA. Ela oferece todo o poder do Playwright com capacidades adicionais de IA — use comandos em linguagem natural para interagir com elementos, extrair dados e automatizar fluxos de trabalho complexos de várias etapas.

Instalação:

  • Python SDK / API na nuvem: pip install skyvern
  • Servidor local + IU empacotada: pip install "skyvern[all]" e depois execute skyvern quickstart
  • Servidor local + IU empacotada com PostgreSQL: pip install "skyvern[all]" e depois execute skyvern quickstart --postgres
  • IU empacotada para uma API existente: pip install "skyvern[ui]" e depois execute skyvern run ui --api-url <api-url> --api-key <api-key>
  • TypeScript: npm install @skyvern/client

Comandos de Página com IA

Skyvern adiciona quatro comandos de IA principais diretamente no objeto page:

ComandoDescrição
page.act(prompt)Realizar ações usando linguagem natural (por exemplo, "Clique no botão de login")
page.extract(prompt, schema)Extrair dados estruturados da página com esquema JSON opcional
page.validate(prompt)Validar o estado da página, retorna bool (por exemplo, "Verificar se o usuário está logado")
page.prompt(prompt, schema)Enviar prompts arbitrários para o LLM com esquema de resposta opcional

Além disso, page.agent fornece comandos de fluxo de trabalho de nível superior:

ComandoDescrição
page.agent.run_task(prompt)Executar tarefas complexas de várias etapas
page.agent.login(credential_type, credential_id)Autenticar com credenciais armazenadas (Skyvern, Bitwarden, 1Password)
page.agent.download_files(prompt)Navegar e baixar arquivos
page.agent.run_workflow(workflow_id)Executar fluxos de trabalho pré-construídos

Ações do Playwright Aumentadas por IA

Todas as ações padrão do Playwright suportam um parâmetro opcional prompt para localização de elementos com IA:

AçãoPlaywrightAumentada por IA
Cliquepage.click("#btn")page.click(prompt="Clique no botão de login")
Preencherpage.fill("#email", "[email protected]")page.fill(prompt="Campo de email", value="[email protected]")
Selecionarpage.select_option("#country", "US")page.select_option(prompt="Menu suspenso de país", value="US")
Uploadpage.upload_file("#file", "doc.pdf")page.upload_file(prompt="Área de upload", files="doc.pdf")

Três modos de interação:```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")

### Comandos Principais de IA - Exemplos```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")

Exemplos de Início Rápido

Executar via UI:```bash skyvern run all

Navegue até http://localhost:8080 para executar tarefas através da interface web. Se a UI empacotada estiver faltando, `skyvern run ui` se oferecerá para instalar o pacote de UI correspondente. Para configuração não interativa, use `skyvern run ui --install-ui` ou `skyvern run all --install-ui`.

Para executar apenas a UI empacotada contra uma API Skyvern existente, instale `skyvern[ui]` e passe
`--api-url`; a CLI infere `--wss-url` a partir da URL da API, a menos que você a substitua. Você também pode definir
`VITE_API_BASE_URL`, `VITE_WSS_BASE_URL`, `VITE_ARTIFACT_API_BASE_URL`, `VITE_SKYVERN_API_KEY`,
e `VITE_BROWSER_STREAMING_MODE` antes de executar `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();

**Execução de tarefa simples:**```python
from skyvern import Skyvern

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

Uso Avançado

Controle seu próprio navegador (Chrome)

Deixe o Skyvern controlar seu navegador Chrome existente — com todos os seus cookies, logins e extensões.

Passo 1: Ativar a depuração remota no Chrome

  1. Abra o Chrome e navegue para chrome://inspect/#remote-debugging
  2. Clique em Ativar para iniciar o servidor de depuração
  3. Você deve ver: Servidor rodando em: 127.0.0.1:9222

[!DICA] O comando skyvern init browser pode fazer isso automaticamente — ele abre chrome://inspect/#remote-debugging, espera você ativar e salva a configuração.

Passo 2: Conectar o Skyvern

Opção A — Código 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", )

**Opção B — Serviço Skyvern:**

Adicione duas variáveis ao seu arquivo .env:```bash
BROWSER_TYPE=cdp-connect
BROWSER_REMOTE_DEBUGGING_URL=http://127.0.0.1:9222

Reinicie o serviço Skyvern skyvern run all e execute a tarefa através da UI ou código

Conecte o Skyvern Cloud ao seu navegador local

Permita que o Skyvern Cloud controle um navegador Chrome em execução na sua máquina — com todos os seus cookies, logins e extensões existentes. Útil para automatizar sites onde você já está logado ou atrás de uma VPN.```bash

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

skyvern browser serve --tunnel

Em seguida, use o URL do túnel na sua tarefa:```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] Sempre use --api-key ao expor seu navegador através de um túnel. Sem ele, qualquer pessoa com a URL tem controle total do seu navegador. Consulte a documentação de segurança.

Consulte a documentação completa para todas as opções, configuração manual de túnel e solução de problemas.

Obtenha um esquema de saída consistente de sua execução

Você pode fazer isso adicionando o parâmetro 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" } } } )

### Comandos úteis para depurar problemas```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

Desempenho e Avaliação

Skyvern possui desempenho de ponta no benchmark WebBench com uma precisão de 64,4%. O relatório técnico + avaliação pode ser encontrado aqui

Desempenho em tarefas WRITE (ex: preenchimento de formulários, login, download de arquivos, etc)

Skyvern é o agente com melhor desempenho em tarefas WRITE (ex: preenchimento de formulários, login, download de arquivos, etc), que são usadas principalmente para tarefas adjacentes a RPA (Automação de Processos Robóticos).

Funcionalidades do Skyvern

Tarefas do Skyvern

Tarefas são o bloco fundamental dentro do Skyvern. Cada tarefa é uma única solicitação ao Skyvern, instruindo-o a navegar por um site e alcançar um objetivo específico.

As tarefas exigem que você especifique uma url, um prompt, e podem incluir opcionalmente um data schema (se desejar que a saída esteja em conformidade com um esquema específico) e error codes (se desejar que o Skyvern pare de executar em situações específicas).

Fluxos de Trabalho do Skyvern

Fluxos de trabalho são uma forma de encadear várias tarefas para formar uma unidade de trabalho coesa.

Por exemplo, se você quisesse baixar todas as faturas mais recentes que 1º de janeiro, poderia criar um fluxo de trabalho que primeiro navegasse até a página de faturas, depois filtrasse para mostrar apenas faturas posteriores a 1º de janeiro, extraísse uma lista de todas as faturas elegíveis e iterasse por cada fatura para baixá-la.

Outro exemplo é se você quisesse automatizar a compra de produtos em uma loja de e-commerce, poderia criar um fluxo de trabalho que primeiro navegasse até o produto desejado e o adicionasse ao carrinho. Em segundo lugar, navegaria até o carrinho e validaria o estado do carrinho. Finalmente, percorreria o processo de checkout para comprar os itens.

Os recursos de fluxo de trabalho suportados incluem:

  1. Tarefa do Navegador
  2. Ação do Navegador
  3. Extração de Dados
  4. Validação
  5. Laços For
  6. Análise de arquivos
  7. Envio de e-mails
  8. Prompts de Texto
  9. Bloco de Requisição HTTP
  10. Bloco de Código Personalizado
  11. Upload de arquivos para armazenamento em bloco
  12. (Em breve) Condicionais

Transmissão ao Vivo

O Skyvern permite que você transmita ao vivo a janela de visualização do navegador para sua máquina local, para que você possa ver exatamente o que o Skyvern está fazendo na web. Isso é útil para depuração e para entender como o Skyvern está interagindo com um site, e intervir quando necessário.

Preenchimento de Formulários

O Skyvern é nativamente capaz de preencher entradas de formulário em sites. Passar informações via navigation_goal permitirá que o Skyvern compreenda as informações e preencha o formulário adequadamente.

Extração de Dados

O Skyvern também é capaz de extrair dados de um site.

Você também pode especificar um data_extraction_schema diretamente no prompt principal para dizer ao Skyvern exatamente quais dados deseja extrair do site, no formato jsonc. A saída do Skyvern será estruturada de acordo com o esquema fornecido.

Download de Arquivos

O Skyvern também é capaz de baixar arquivos de um site. Todos os arquivos baixados são automaticamente enviados para o armazenamento em bloco (se configurado), e você pode acessá-los através da interface do usuário.

Autenticação

O Skyvern suporta diversos métodos de autenticação para facilitar a automação de tarefas atrás de um login. Se você quiser experimentar, entre em contato conosco via e-mail ou discord.

🔐 Suporte a 2FA (TOTP)

O Skyvern suporta diversos métodos de 2FA para permitir que você automatize fluxos de trabalho que exigem 2FA.

Exemplos incluem:

  1. 2FA baseada em QR (ex: Google Authenticator, Authy)
  2. 2FA baseada em e-mail
  3. 2FA baseada em SMS

🔐 Saiba mais sobre suporte a 2FA aqui.

Integrações com Gerenciadores de Senhas

Atualmente, o Skyvern suporta as seguintes integrações com gerenciadores de senhas:

  • Bitwarden
  • Serviço de Credenciais Personalizado (API HTTP)
  • 1Password
  • LastPass

Model Context Protocol (MCP)

O Skyvern suporta o Model Context Protocol (MCP) para permitir que você use qualquer LLM que suporte MCP.

Veja a documentação do MCP aqui

Integração com Zapier / Make.com / N8N

O Skyvern suporta Zapier, Make.com e N8N para permitir que você conecte seus fluxos de trabalho do Skyvern a outros aplicativos.

🔐 Saiba mais sobre suporte a 2FA aqui.

Exemplos reais do Skyvern

Adoramos ver como o Skyvern está sendo usado no mundo real. Aqui estão alguns exemplos de como o Skyvern está sendo usado para automatizar fluxos de trabalho no mundo real. Por favor, abra PRs para adicionar seus próprios exemplos!

Download de Faturas em muitos sites diferentes

Agende uma demonstração para ver ao vivo

Automatize o processo de candidatura a empregos

💡 Veja em ação

Automatize a aquisição de materiais para uma empresa de manufatura

💡 Veja em ação

💡 Veja em ação

Preenchendo formulários de contato aleatórios

💡 Veja em ação

Obtendo cotações de seguros de seguradoras em qualquer idioma

💡 Veja em ação

💡 Veja em ação

Configuração do Contribuidor

Certifique-se de ter o uv instalado.

  1. Execute isso para criar seu ambiente virtual (.venv)
    uv sync --group dev
    
  2. Execute a configuração inicial do servidor
    uv run skyvern quickstart
    
  3. Navegue até http://localhost:8080 no seu navegador para começar a usar a interface do usuário A CLI do Skyvern suporta ambientes Windows, WSL, macOS e Linux.

Documentação

Documentação mais extensa pode ser encontrada em nossa 📕 página de docs. Por favor, nos informe se algo não estiver claro ou ausente, abrindo uma issue ou entrando em contato conosco via e-mail ou discord.

LLMs Suportados

ProvedorModelos Suportados
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 OpenAIQuaisquer modelos GPT implantados em sua assinatura 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
OllamaExecute qualquer modelo hospedado localmente via Ollama
OpenRouterAcesse modelos através do OpenRouter
Compatível com OpenAIQualquer endpoint de API personalizado que siga o formato da API da OpenAI (via liteLLM)

Para configuração detalhada de LLM, incluindo todas as chaves de modelo disponíveis, variáveis de ambiente e configurações de múltiplos modelos, consulte a documentação de Configuração de LLM.

Contribuindo

Aceitamos PRs e sugestões! Não hesite em abrir um PR/issue ou entrar em contato conosco via e-mail ou discord. Por favor, dê uma olhada em nosso guia de contribuição e nas issues "Help Wanted" para começar!

Se você quiser conversar com o repositório do Skyvern para obter uma visão geral de alto nível de como ele está estruturado, como construir a partir dele e como resolver dúvidas de uso, confira o Code Sage.

Telemetria

Por padrão, o Skyvern coleta estatísticas básicas de uso para nos ajudar a entender como o Skyvern está sendo usado. Se você quiser cancelar a telemetria, defina a variável de ambiente SKYVERN_TELEMETRY como false.

Licença

O repositório de código aberto do Skyvern é suportado por meio de uma nuvem gerenciada. Toda a lógica principal que alimenta o Skyvern está disponível neste repositório de código aberto licenciado sob a Licença AGPL-3.0, com exceção das medidas anti-bot disponíveis em nossa oferta de nuvem gerenciada.

Se você tiver dúvidas ou preocupações sobre licenciamento, entre em contato conosco e teremos prazer em ajudar.

Histórico de Estrelas

Star History Chart

Categorias