
Automatize fluxos de trabalho baseados em navegador com IA
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.
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:
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.
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.
Dependências necessárias:
Além disso, para Windows:
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.
Use esta opção se quiser tudo em contêineres (Postgres, API, UI) e não quiser instalar Python/Node localmente.
.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
(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.
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:
pip install skyvernpip install "skyvern[all]" e depois execute skyvern quickstartpip install "skyvern[all]" e depois execute skyvern quickstart --postgrespip install "skyvern[ui]" e depois execute
skyvern run ui --api-url <api-url> --api-key <api-key>npm install @skyvern/clientSkyvern 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 |
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
await page.click("#submit-button")
await page.click(prompt="Click the green Submit button")
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")
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)
Deixe o Skyvern controlar seu navegador Chrome existente — com todos os seus cookies, logins e extensões.
chrome://inspect/#remote-debugging[!DICA] O comando
skyvern init browserpode fazer isso automaticamente — ele abrechrome://inspect/#remote-debugging, espera você ativar e salva a configuração.
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
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
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.
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
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
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).
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 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:
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.
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.
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.
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.
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.
O Skyvern suporta diversos métodos de 2FA para permitir que você automatize fluxos de trabalho que exigem 2FA.
Exemplos incluem:
🔐 Saiba mais sobre suporte a 2FA aqui.
Atualmente, o Skyvern suporta as seguintes integrações com gerenciadores de senhas:
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
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.
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!
Certifique-se de ter o uv instalado.
.venv)
uv sync --group dev
uv run skyvern quickstart
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 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.
| 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.
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.
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.
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.