5 pontos por mercuriusdream 2026-03-16 | Ainda não há comentários. | Compartilhar no WhatsApp

Normalmente eu só leio o GN de vez em quando, e esta é a primeira vez que envio uma contribuição. Conto com vocês!


Esta biblioteca foi criada a partir da ideia: e se, em vez de usar um Web Surf agent omnimodal atual, ainda incerto, pegássemos o DOM via CDP, formatássemos e comprimíssemos o mínimo necessário para que o LLM pudesse entendê-lo, e então o transformássemos em MCP?

Motivos para criar

  • Agentes web baseados em screenshot precisam de modelos de visão e consomem uma quantidade extrema de tokens.
  • A serialização tradicional de DOM inclui classes CSS, div wrappers e até scripts, resultando em 50 mil a 100 mil tokens por página.
  • O que o agente precisa são apenas botões, links, campos de entrada e texto; usar a janela de contexto inteira para isso é ineficiente.

Como funciona

  • Após conectar a uma instância do Chrome via CDP, remove-se do DOM tudo o que não for necessário para a distinção mínima entre elementos.
  • Depois, cada elemento recebe um ID curto, e esse conteúdo é enviado ao agente.
  • Também há suporte a interações com elementos interativos vindas do agente, como click("B1") e type("I1", "검색어")!

Benchmark

  • GitHub: 84,357 -> 2,593 tokens (32x)
  • Wikipedia: 123,615 -> 12,097 tokens (10x)
  • MDN: 24,923 -> 1,793 tokens (14x)
  • HN: 8,736 -> 1,038 tokens (8.4x)
  • Em média, 93% de redução de tokens, com tempo de parsing de cerca de 30 ms

Especificações no papel

  • Baseado em TypeScript, com suporte a Bun Native como runtime e também a Node 18+
  • Dependência do runtime chrome-remote-interface
  • Backend baseado em ElysiaJS

Links


Eu a criei e usei inicialmente para depuração pessoal, mas acabou sendo mais útil do que eu esperava, então resolvi transformá-la em OSS e publicá-la. Experimentem e mandem bastante feedback, por favor!

Ainda não há comentários.

Ainda não há comentários.