
skyvern v1.0.47
Automatize fluxos de trabalho baseados em navegador com IA
🐉 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:
- 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.
- 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.
- 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 quickstarteskyvern run serverusam 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--postgrespara um contêiner local ou--database-stringpara 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.
- Instale o Docker Desktop
- Clone o repositório: ```bash
git clone https://github.com/skyvern-ai/skyvern.git && cd skyvern
- Configure seu provedor de LLM em
.env(o comandoquickstart --docker-composeabaixo criará a partir de.env.examplese estiver ausente): ```bash cp .env.example .env # if not already creatededit .env to add your LLM API key
- Iniciar tudo: ```bash
docker compose up -d
- 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 executeskyvern quickstart - Servidor local + IU empacotada com PostgreSQL:
pip install "skyvern[all]"e depois executeskyvern quickstart --postgres - IU empacotada para uma API existente:
pip install "skyvern[ui]"e depois executeskyvern 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:
| Comando | Descriçã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:
| Comando | Descriçã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ção | Playwright | Aumentada por IA |
|---|---|---|
| Clique | page.click("#btn") | page.click(prompt="Clique no botão de login") |
| Preencher | page.fill("#email", "[email protected]") | page.fill(prompt="Campo de email", value="[email protected]") |
| Selecionar | page.select_option("#country", "US") | page.select_option(prompt="Menu suspenso de país", value="US") |
| Upload | page.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
- Abra o Chrome e navegue para
chrome://inspect/#remote-debugging - Clique em Ativar para iniciar o servidor de depuração
- Você deve ver: Servidor rodando em: 127.0.0.1:9222
[!DICA] O comando
skyvern init browserpode fazer isso automaticamente — ele abrechrome://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-keyao 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:
- Tarefa do Navegador
- Ação do Navegador
- Extração de Dados
- Validação
- Laços For
- Análise de arquivos
- Envio de e-mails
- Prompts de Texto
- Bloco de Requisição HTTP
- Bloco de Código Personalizado
- Upload de arquivos para armazenamento em bloco
- (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:
- 2FA baseada em QR (ex: Google Authenticator, Authy)
- 2FA baseada em e-mail
- 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
Automatize a aquisição de materiais para uma empresa de manufatura
Navegar por sites governamentais para registrar contas ou preencher formulários
Preenchendo formulários de contato aleatórios
Obtendo cotações de seguros de seguradoras em qualquer idioma
Configuração do Contribuidor
Certifique-se de ter o uv instalado.
- Execute isso para criar seu ambiente virtual (
.venv)uv sync --group dev - Execute a configuração inicial do servidor
uv run skyvern quickstart - Navegue até
http://localhost:8080no 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
| Provedor | Modelos Suportados |
|---|---|
| OpenAI | GPT-5.5, GPT-5.4, GPT-5, GPT-4.1, o3, o4-mini |
| Anthropic | Claude 4.7 Opus, Claude 4.6 (Sonnet, Opus), Claude 4.5 (Haiku, Sonnet, Opus) |
| Azure OpenAI | Quaisquer modelos GPT implantados em sua assinatura Azure |
| AWS Bedrock | Claude 4.7, Claude 4.6 (Sonnet, Opus), Claude 4.5 (Sonnet, Opus) |
| Gemini | Gemini 3.1 Pro, Gemini 3 Flash, Gemini 2.5 Pro/Flash |
| Ollama | Execute qualquer modelo hospedado localmente via Ollama |
| OpenRouter | Acesse modelos através do OpenRouter |
| Compatível com OpenAI | Qualquer 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.