Skyvern (YC S23) – agente de IA open source para automação de navegadores
(github.com/Skyvern-AI)- O Skyvern automatiza fluxos de trabalho manuais baseados em sites com LLMs e visão computacional, oferecendo junto um SDK compatível com Playwright e um construtor de workflows no-code
- Ao contrário da automação de navegador tradicional, que dependia de parsing de DOM e XPath e era frágil a mudanças de layout, o Skyvern usa um Vision LLM para entender os elementos na tela e planejar/executar as ações necessárias
- O Skyvern afirma que consegue mapear elementos visuais para ações mesmo em sites nunca vistos antes e aplicar o mesmo workflow a vários sites sem XPath ou seletores pré-definidos
- O SDK oferece os comandos
page.act,page.extract,page.validate,page.promptepage.agent, adicionando descoberta de elementos baseada em prompt em linguagem natural às ações existentes do Playwright - São apresentados execução local, Docker Compose, Skyvern Cloud, controle de Chrome já existente, tunelamento de navegador, 64,4% de acurácia no WebBench, licença AGPL-3.0 e a exceção dos recursos antibot na nuvem gerenciada
O problema que o Skyvern quer resolver
- Skyvern é um projeto que automatiza workflows baseados em navegador com LLMs e visão computacional
- Ele oferece um SDK compatível com Playwright que adiciona recursos de IA sobre o Playwright
- Também oferece um construtor de workflows no-code para que usuários técnicos e não técnicos possam automatizar fluxos de trabalho manuais em qualquer site
- A automação de navegador tradicional muitas vezes dependia de scripts customizados por site, parsing de DOM e interações baseadas em XPath, e podia quebrar quando o layout do site mudava
- O Skyvern não usa apenas interações XPath definidas em código, mas aprende e interage com sites usando um Vision LLM
Como funciona e seu design
- O Skyvern foi inspirado no design de agentes autônomos orientados por tarefas popularizado por BabyAGI e AutoGPT
- A isso, ele adiciona a capacidade de interagir com sites usando bibliotecas de automação de navegador como o Playwright
- Ele usa um enxame de múltiplos agentes para entender o site, planejar ações e executá-las
- As vantagens dessa abordagem são resumidas em três pontos
- Pode funcionar em sites nunca vistos antes, mapeando elementos visuais para as ações necessárias sem código customizado
- Como não depende de XPath ou seletores pré-definidos durante a navegação, é mais resistente a mudanças de layout do site
- Pode aplicar um mesmo workflow a vários sites e inferir as interações necessárias em cada um deles
- O relatório técnico do Skyvern 2.0 pode ser visto em Skyvern 2.0: State-of-the-art web navigation with 85.8 on WebVoyager eval
Formas de execução
- O Skyvern Cloud é a versão em nuvem gerenciada para executar o Skyvern sem administrar a infraestrutura diretamente
- O Skyvern Cloud pode executar várias instâncias do Skyvern em paralelo e inclui mecanismos para lidar com detecção antibot, rede de proxies e CAPTCHA solver
- A execução local pode ser iniciada com
pip install "skyvern[all]"seguido deskyvern quickstart skyvern quickstarteskyvern run serverusam por padrão um banco de dados SQLite em~/.skyvern/data.db- Para usar um contêiner Postgres local, passe
--postgres - Para usar um banco de dados existente, passe
--database-string - O Docker Compose usa um serviço Postgres incluído
- Para usar um contêiner Postgres local, passe
- A execução com Docker Compose coloca Postgres, API e UI em contêineres, e começa com
docker compose up -dapós configurar a chave de API do LLM em.env - A UI fica acessível por padrão em
http://localhost:8080
SDK e extensão Playwright com IA
- O SDK do Skyvern é uma extensão que adiciona automação de navegador com IA ao Playwright
- As formas de instalação variam conforme o uso
- Python SDK / cloud API:
pip install skyvern - Servidor local e UI empacotada:
pip install "skyvern[all]"seguido deskyvern quickstart - Servidor local e UI com Postgres:
pip install "skyvern[all]"seguido deskyvern quickstart --postgres - UI empacotada conectando-se a uma API existente:
pip install "skyvern[ui]"seguido deskyvern run ui --api-url <api-url> --api-key <api-key> - TypeScript:
npm install @skyvern/client
- Python SDK / cloud API:
- Quatro comandos de IA são adicionados ao objeto de página
page.act(prompt): executa ações em linguagem natural, como “clicar no botão de login”page.extract(prompt, schema): extrai dados estruturados com schema JSON opcionalpage.validate(prompt): valida o estado da página e retornaboolpage.prompt(prompt, schema): envia um prompt arbitrário ao LLM com schema de resposta opcional
page.agentoferece comandos de workflow de nível mais altopage.agent.run_task(prompt): executa tarefas complexas de múltiplas etapaspage.agent.login(credential_type, credential_id): autentica com credenciais armazenadas no Skyvern, Bitwarden ou 1Passwordpage.agent.download_files(prompt): baixa arquivos após navegarpage.agent.run_workflow(workflow_id): executa um workflow criado previamente
- As ações existentes do Playwright passam a suportar descoberta de elementos com IA por meio de um parâmetro
promptopcional- Em vez de
page.click("#btn"), usarpage.click(prompt="Click login button") - Em vez de
page.fill("#email", "a@b.com"), usarpage.fill(prompt="Email field", value="a@b.com") - Em vez de
page.select_option("#country", "US"), usarpage.select_option(prompt="Country dropdown", value="US") - Em vez de
page.upload_file("#file", "doc.pdf"), usarpage.upload_file(prompt="Upload area", files="doc.pdf")
- Em vez de
- Há três modos de interação
- Playwright tradicional: usa seletores CSS/XPath
- Baseado em IA: usa linguagem natural
- AI fallback: tenta primeiro o seletor e, se falhar, usa IA
Controle avançado de navegador
- O Skyvern pode controlar o navegador Chrome já existente do usuário
- Esse modo reutiliza um navegador com cookies, login e extensões já presentes
- A depuração remota do Chrome pode ser ativada em
chrome://inspect/#remote-debugging - O comando
skyvern init browserabre a página de depuração remota, espera até que o usuário a ative e então pode salvar a configuração - O Skyvern Cloud também pode controlar o Chrome em execução na máquina local
- O comando
skyvern browser serve --tunnelfaz ao mesmo tempo a inicialização do Chrome e a criação de um túnel para o Skyvern Cloud - Isso é útil para automatizar sites em que o usuário já está logado ou que estão atrás de uma VPN
- O comando
- Ao expor o navegador via túnel, deve-se sempre usar
--api-key- Sem uma chave de API, qualquer pessoa com a URL pode controlar totalmente o navegador
- Mais detalhes em browser tunneling security docs
Desempenho e avaliação
- O Skyvern afirma ter alcançado desempenho SOTA no benchmark WebBench com 64,4% de acurácia
- O relatório técnico e a avaliação podem ser vistos em Web Bench: A new way to compare AI browser agents
- Também afirma ser o agente de maior desempenho em tarefas WRITE
- Exemplos de tarefas WRITE incluem preenchimento de formulários, login e download de arquivos
- Essa categoria é usada principalmente para tarefas próximas de RPA
Tasks e Workflows
- Task é a unidade básica de composição dentro do Skyvern
- Cada Task é uma solicitação única para navegar por um site e atingir um objetivo específico
- Uma Task exige
urleprompt - Opcionalmente, pode incluir
data schemaeerror codesdata schemaé usado quando a saída precisa seguir um schema específicoerror codessão usados quando se quer interromper a execução do Skyvern em situações específicas
- Workflow é a forma de conectar várias Tasks em uma única unidade de trabalho
- Exemplos de workflow
- Para baixar todas as faturas após 1º de janeiro, pode-se montar uma sequência com ir para a página de faturas, filtrar por data, extrair a lista de faturas alvo e baixar cada uma delas
- A automação de compras em e-commerce pode ser composta por navegar até o produto, adicionar ao carrinho, validar o estado do carrinho e seguir para o checkout
- Entre os recursos de workflow suportados estão Browser Task, Browser Action, Data Extraction, Validation, For Loops, File parsing, Sending emails, Text Prompts, HTTP Request Block, Custom Code Block e upload de arquivos para block storage
- Conditionals aparece como “Coming soon”
Principais recursos
- Livestreaming transmite em tempo real o viewport do navegador para a máquina local, para que seja possível ver o que o Skyvern está fazendo na web
- Útil para depuração, compreensão da interação e intervenção quando necessário
- Form Filling permite preencher por padrão inputs de formulários em sites
- Ao passar informações em
navigation_goal, o Skyvern entende o conteúdo e preenche o formulário
- Ao passar informações em
- Data Extraction extrai dados de sites
- Se
data_extraction_schemafor especificado no prompt principal em formato jsonc, a saída seguirá a estrutura desse schema
- Se
- File Downloading baixa arquivos de sites
- Os arquivos baixados são enviados automaticamente se o block storage estiver configurado, e podem ser acessados pela UI
- Authentication oferece suporte a vários métodos de autenticação para facilitar a automação de tarefas após o login
- O suporte a 2FA é fornecido de várias formas
- 2FA baseado em QR, como Google Authenticator e Authy
- 2FA baseado em e-mail
- 2FA baseado em SMS
- A documentação relacionada está em 2FA support
- Estado da integração com gerenciadores de senha
- Suportado: Bitwarden
- Suportado: Custom Credential Service, HTTP API
- Não suportado: 1Password
- Não suportado: LastPass
Integrações e LLMs suportados
- O Skyvern oferece suporte a Model Context Protocol (MCP), permitindo usar LLMs compatíveis com MCP
- A documentação de MCP está em MCP server documentation
- Há suporte a integrações com Zapier, Make.com e N8N
- Os provedores de LLM suportados são os seguintes
- 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: todos os modelos GPT implantados na 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: modelos hospedados localmente via Ollama
- OpenRouter: acesso a modelos via OpenRouter
- OpenAI-compatible: endpoints de API customizados que seguem o formato da API da OpenAI via liteLLM
- Mais detalhes sobre configuração de LLM estão em LLM Configuration docs
Exemplos de uso real
- Automação de download de faturas em vários sites
- Automação de processos de candidatura a vagas
- Automação de aquisição de materiais para empresas de manufatura
- Cadastro de contas ou preenchimento de formulários em sites governamentais
- Preenchimento de formulários aleatórios de contact us
- Busca de cotações de seguro em sites de seguradoras em vários idiomas
Solução de problemas e comandos operacionais
- Há um bug conhecido em
pip install skyvern==1.0.31que pode causar(sqlite3.OperationalError) table organizations already exists- Apague o arquivo SQLite remanescente
~/.skyvern/data.db, atualize para 1.0.32 ou superior compip install --upgrade skyverne então executeskyvern quickstart - Se for necessário manter a versão 1.0.31, é possível usar
uv pip install skyvern
- Apague o arquivo SQLite remanescente
- Se
pip install skyvernfalhar comResolutionImpossible, isso pode ser um conflito de resolução de dependências delitellm/fastmcpna versão 1.0.31- Atualize para 1.0.32 ou superior ou use
uv pip install skyvern
- Atualize para 1.0.32 ou superior ou use
- Comandos úteis para depuração
skyvern run server: executa o servidor Skyvern separadamenteskyvern run ui: executa a UI do Skyvernskyvern status: verifica o estado dos serviçosskyvern stop all: interrompe todos os serviçosskyvern stop ui: interrompe a UIskyvern stop server: interrompe o servidor
Licença e telemetria
- O Skyvern coleta estatísticas de uso por padrão para entender como ele é usado
- Para desativar a telemetria, defina a variável de ambiente
SKYVERN_TELEMETRYcomofalse - O repositório open source do Skyvern é sustentado pela nuvem gerenciada
- A lógica principal é fornecida neste repositório open source sob a licença AGPL-3.0
- As medidas antibot incluídas na oferta de nuvem gerenciada são explicitamente indicadas como exceção à lógica principal do repositório open source
1 comentários
Opiniões no Hacker News
Fico curioso para saber como vocês veem o recurso computer use do Claude, anunciado recentemente pela Anthropic
Agora que o
computer usedo Claude é relativamente novo, quero entender qual é o principal diferencial do SkyvernO método tradicional geralmente desenha caixas delimitadoras ao redor de elementos interativos, faz o LLM emitir uma chamada de ferramenta como
click('A12')e então mapeia A12 para um elemento HTML real para executar uma ação via Selenium/JS. Desenhar essas caixas delimitadoras por heurísticas já é complicado, e também pode ser difícil executar a ação correta quando o manipulador de clique está anexado a outro elemento do DOMEm casos de automação, provavelmente é mais eficaz executar ações de alto nível como
click(x, y)outype("foo")diretamente na tela, sem remapear elementos visuais de volta para elementos HTML. Ainda assim, hoje fornecer HTML ao LLM como contexto tende a melhorar o desempenho em comparação com usar apenas raciocínio visual. Por isso sou mais otimista com a abordagem do Claude e estou bem animado, especialmente se o raciocínio visual continuar melhorandoMas me pergunto se os concorrentes vão ficar parados sem criar algo parecido. As equipes da xAI, Gemini, OpenAI, Mistral e MetaAI não vão simplesmente esperar, e essa área provavelmente será um grande eixo no futuro, então não parece que uma única empresa vá levar tudo
Também é importante entender de onde vem o valor real nesses sistemas. Demos e produtos legais e utilizáveis provavelmente não bastam; a maioria das pessoas quer automatização de workflows reais. Para uso pessoal, isso pode ser suficiente, mas empresas provavelmente vão querer algo mais complexo
Por fim, também é central saber se isso ficará otimizado apenas para o Claude. Se você quiser rodar com seu próprio LLM open source ou continuar trocando para o melhor modelo disponível no mercado, talvez seja difícil obter essa flexibilidade em uma solução fornecida por uma grande empresa. A Anthropic tem incentivo para fazer você usar o Claude internamente
Esse último ponto é promissor. Usuários do Skyvern open source podem escolher o modelo que quiserem e não ficam presos ao Claude. Ele pode rodar também com Gemini, GPT-4O e modelos open source como Llama 3.2
Não deve ser o primeiro wrapper de IA sobre o Playwright que saiu esta semana, e acho que nem o primeiro deste mês
O uso sob a ótica de automação de processos de trabalho parece mais convincente do que automação de testes. Automação de testes dá muito mais importância à precisão e à repetibilidade do processo, enquanto, na automação de trabalho, muitas vezes não importa muito se o caminho para chegar lá foi estranho, desde que o resultado esteja correto
Ainda assim, no vídeo de exemplo, foi preciso escrever um prompt bem grande para fazê-lo funcionar, e alguns KB de dados de payload também tiveram que ser inseridos em formato de texto puro, não em CSV. Se a expectativa é substituir pessoas que acham o gerador de código do Playwright técnico demais para usar diretamente, não tenho certeza de que existam tantas pessoas que conseguem fazer uma dessas coisas, mas não a outra
Além disso, parece que o usuário precisa entregar credenciais de login de sites e até informações de cartão de crédito em texto puro. Se a conta Skyvern do usuário for comprometida, a forma de lidar com dados sensíveis precisa ser muito robusta para evitar consequências graves
Também acho que quem cria wrappers do Playwright baseados em LLM tende a exagerar a frequência de reformulação de sites. Especialmente quando se trata de sites antigos ou governamentais. Por exemplo, operamos há anos um conjunto longo de automações de navegador com Playwright que interagem com um site governamental, e só fizemos manutenção uma vez, quando o procedimento de trabalho da agência mudou. Mesmo que tivéssemos usado o Skyvern, como o procedimento mudou, o prompt e o payload também teriam que ser alterados
A diferença em relação à automação com Playwright é que dá para validar, com assertions, o sucesso/falha de cada etapa e a precisão do registro dos dados, então você sabe quando o procedimento precisa ser atualizado. No Skyvern, não vejo essa opção, e me preocupa que ele deixe passar mudanças de procedimento e comece a inserir dados incorretos ou pular etapas
Usuários técnicos querem aprender mais e criar payloads por conta própria; usuários não técnicos começam pedindo a um LLM que os ajude a gerar o prompt final do Skyvern. Foi inesperado, mas acabou sendo um fluxo surpreendentemente natural
A etapa 1 é criar isso de forma complexa, ou seja, Playwright; a etapa 2 é a etapa atual, criar o equivalente ao Playwright com prompts complexos; e a etapa 3 é criar algo que gere o equivalente ao Playwright com prompts mais simples. Cada etapa reduz a barreira técnica necessária para criar automações
Vejo a frequência de mudanças em sites como uma proposta de valor menor da automação baseada em LLM. O maior valor está em lidar com situações muito dinâmicas. Por exemplo, ao automatizar um site de e-commerce em que a oferta em pop-up muda toda semana, o Skyvern quase não se importa com isso, enquanto um script Playwright pode quebrar
Gosto do exemplo da Geico porque ele mostra bem algo que antes era muito difícil de automatizar. O formulário muda a cada execução, e o Skyvern passa por ele com facilidade
Em termos de precisão dos dados, estamos lançando um recurso de workflows que encadeia várias tarefas. O interessante desse recurso é que ele permite adicionar uma etapa em que o próprio Skyvern verifica o resultado antes de continuar. Por exemplo, depois de adicionar n produtos ao carrinho, ele pode ir até o carrinho e verificar o estado do carrinho
Como era de se esperar, isso se torna a base para que outro agente use essas ferramentas e crie workflows por conta própria com prompts mais simples. Em resumo, é o primeiro passo de uma longa jornada para tornar a automação de processos de trabalho cada vez mais fácil com LLMs
Neste momento, construir uma startup em cima de um LLM de terceiros parece exigir muita coragem, ou então um modelo de negócio focado em receita de curto prazo
Se o horizonte de tempo for de anos, e não de alguns meses, o risco é grande. A Anthropic entrou nessa área ontem, e é bem provável que OpenAI e Google sigam em breve
Elas literalmente competem com a AWS e, ao mesmo tempo, usam a AWS para oferecer seus próprios produtos. Esse mercado é grande e há espaço para várias abordagens
É claro que OpenAI, Anthropic e Google vão construir grandes negócios nessa área, mas não vejo motivo para descartar que outra pessoa tenha uma boa ideia e a concretize dependendo de grandes provedores de infraestrutura
É interessante que tenham aberto o código sob AGPL
Talvez a resposta já esteja na documentação, mas, fazendo uma busca rápida no código-fonte, parece que eles não usam LangChain e planejam uma integração para poder contribuir com aquela comunidade no futuro. Fiquei curioso sobre o que a Skyvern usou para criar a lógica de cadeia de pensamento/ação e se, começando do zero hoje, consideraria seguir na direção de LangChain/Graph
Muitos vestígios disso ainda aparecem em coisas como tarefas e etapas, mas, ao tentar escalar e fazer coisas mais complexas, percebemos que o framework era muito limitado
Por exemplo, hoje usamos uma arquitetura multiagente em que são executados microagentes para analisar SVGs ou preencher autocompletes dinâmicos; esse tipo de estrutura teria sido realmente difícil com os frameworks existentes
Frameworks como LangChain são bons para prototipagem inicial, mas, quando você quer forçar os limites, impõem restrições demais
Se “automação de navegador” parece confuso, é algo como Selenium: fazer um programa manipular o site-alvo
Normalmente, isso significa inserir eventos de teclado e eventos de movimento/clique do mouse em um site-alvo pertencente a outra pessoa para fazer esse site executar alguma ação. Sabendo disso, o restante da explicação fica compreensível
Sempre que vejo essas ferramentas de automação de workflows com LLM, surgem algumas perguntas sobre cada caso de uso e seus efeitos de longo prazo
Primeiro, fico pensando se elas estão contornando um atrito causado pela falta de interoperabilidade entre ferramentas. Por exemplo, seria algo mais eficiente se o dono do site oferecesse um serviço REST? A existência dessas ferramentas pode fazer com que empresas deixem de oferecer endpoints de serviço mesmo quando faria sentido oferecê-los?
Segundo, se houver uma razão legítima para não existir um endpoint de serviço, como motivos de segurança, um workflow automatizado pode ser usado para contornar essas medidas de segurança. Um agente malicioso poderia usar a ferramenta para desativar serviços importantes? Quem cria a ferramenta poderia ser esse agente? Revendedores poderiam usá-la para impedir que consumidores comuns comprem produtos de alta demanda?
Terceiro, se forem usadas para contornar manutenção adiada de ferramentas e processos internos, a existência dessas ferramentas pode dar à gestão uma justificativa para adiar ainda mais a manutenção. No fim, elas podem virar uma dependência crítica no workflow da equipe de suporte
Quarto, se forem usadas de boa-fé para contornar antipadrões de design de sites, o dono do site passará a ter incentivo para quebrar esse workflow? No fim, isso é apenas mais uma etapa de uma corrida armamentista?
Penso nisso sempre que vejo software sendo colocado sobre processos complexos, adicionando mais uma camada de complexidade para encobri-los em vez de simplificar o processo subjacente. É claro que o projeto deve ser útil, mas fico curioso sobre seus efeitos de longo prazo
A Skyvern resolve esse problema, mas, se o custo dos LLMs cair, também pode fazer com que esses sites deixem de precisar criar APIs
Não queremos que a Skyvern seja usada em sites que proíbem esse comportamento. O LinkedIn é um exemplo típico. Em especial, o motivo de não termos tornado open source o código relacionado a antibot ou captcha é que recebemos pedidos como “manipulação de recomendações no Reddit”. Não queremos apoiar esse tipo de agente malicioso
No geral, vejo a automação de navegador com IA como tendo um efeito líquido positivo. Se a necessidade de APIs diminuir, também diminui a necessidade de manter API e UI ao mesmo tempo; a experiência fica mais simples, há menos código e o sistema se torna mais simples
Não tenho 100% de certeza sobre a última parte. Em geral, assumo que as empresas não criam APIs porque não têm orçamento. Ou seja, não vejo isso como uma razão maliciosa. Empresas como o LinkedIn vão tentar bloquear tentativas de automação, mas não queremos participar desse jogo de gato e rato
Fico curioso se a Skyvern consegue coletar dados de vários sites com estruturas diferentes e combinar dados estruturados em um único arquivo CSV ou JSON
Por exemplo, ela poderia coletar as taxas de contas de depósito em vários sites de bancos, extrair o nome do banco, o logotipo do banco, o nome do produto e a taxa de cada conta, e executar uma consulta salva em uma agenda diária ou semanal?
Fico curioso se alguém já testou a Skyvern em sites de companhias aéreas
Por exemplo, para extrair a disponibilidade de assentos-prêmio em passagens com milhas do ponto A ao ponto B. As companhias aéreas parecem mudar as telas o tempo todo e também têm medidas fortes contra scraping
Isso será uma forma de testar transações com cartão de crédito em beta e validar a confiabilidade
Estou criando algo parecido em menor escala, e essa área parece bem promissora
Ao limitar o escopo do problema a interação/scraping em uma única página, isso se mostrou muito estável e útil na empresa. Ainda assim, automação no estilo agente também parece interessante
Por exemplo, preencher formulários de contato em centenas de sites é algo cuja diversidade é realmente difícil de lidar com código comum, mas não é um grande problema para um agente de IA
Fico curioso se há números do WebArena(https://webarena.dev) ou do VisualWebArena(https://jykoh.com/vwa)