
Ferramentas de Web-Fetch para Agentes de Codificação: Um Estudo Comparativo
TL;DR — Eu dei o mesmo CSV de 3,9 MB do governo japonês para cinco ferramentas de web-fetch que agentes de codificação usam. Jina Reader retornou 4.593.027 tokens (morte instantânea do contexto). amenbo — meu servidor MCP — retornou uma prévia do cabeçalho e um ponteiro para o arquivo bruto: 909 tokens. Essa diferença de ~5.000× é a manchete, mas a descoberta mais útil é por que os buscadores de uso geral falham em páginas japonesas. Os logs + brutos estão no repositório; cada número abaixo é reconciliado com eles.
O problema de onde isso começou
Apontar um agente de codificação para páginas da web japonesas — uma página de dados do governo, um arquivo de texto Shift_JIS, um link CSV/PDF — e você enfrenta falhas que as ferramentas ajustadas para inglês raramente o avisam:
- Páginas Shift_JIS / EUC-JP voltam como mojibake (elas ainda estão em toda parte no Japão).
- Uma única página longa despeja centenas de milhares de tokens, widgets de navegação + classificação + banners e tudo, e seu contexto se dissolve.
- URLs de PDF/CSV retornam bytes brutos, ou a ferramenta baixa 16 MB para o disco e para.
Então eu parei de fazer gestos sobre ser "bom em japonês" e medi isso, em URLs reais, contra as ferramentas que as pessoas realmente usam.
A configuração
Cinco ferramentas, um harness JSON-RPC, sete URLs japonesas escolhidas para serem os tipos propensos a falhas:
| Ferramenta | Forma | Por que incluída |
|---|---|---|
| amenbo (minha) | MCP (stdio) | fetch em duas etapas + extração ajustada para CJK |
| mcp-server-fetch | MCP (uvx) | a implementação de referência oficial — a linha de base |
| Jina Reader (r.jina.ai) | API HTTP | o serviço mais comum de URL→Markdown |
| Playwright MCP | MCP (npx) | o representante de renderização de navegador |
PixelRAG pixelshot
|
CLI | ideia de 2026 "pare de analisar HTML, capture tudo em screenshot" |
URLs: um artigo técnico do Zenn, uma página da Wikipedia com muitas tabelas, um romance Shift_JIS de 1,2 MB (Aozora Bunko), uma página HTML de dados abertos do governo, um PDF japonês, um CSV de 3,9 MB, e um site que se recusa a aceitar clientes HTTP simples. macOS / Node v26 / cache frio / uma tentativa cada. Tokens de texto usam um estimador CJK compartilhado; imagens usam a estimativa de token visual de Claude largura × altura ÷ 750.
Os números (tokens que um agente realmente paga)
| URL | amenbo | mcp-server-fetch | Jina Reader | Playwright MCP | pixelshot |
|---|---|---|---|---|---|
| zenn | 4.679 | 2.627 ⚠️truncado | 4.216 | 9.049 | 11.462 🖼️10 imgs |
| wiki | 5.337 (p1/4) | 2.078 ⚠️truncado | 38.014 | 55.970 | 1.178 ⚠️incompleto |
| aozora | 7.992 (p1/25) | 1.400 ❌mojibake | 329.380 ⚠️dump completo | 453.263 | 263.819 🖼️221 imgs |
| gov | 1.774 ✅+links de dados | 519 | 26.983 | 25.382 | 13.355 🖼️12 imgs |
| 810 | 1.329 ❌bytes brutos | 802 | ❌não consegue | ❌875×1px img | |
| csv | 909 ✅transferência | 2.669 ⚠️dump bruto | 4.593.027 | ❌16MB para o disco | 1.186 ⚠️apenas primeira tela |
Algumas coisas que valem a pena ler devagar.
O CSV de 3,9 MB (o 5.000×). Alimentar um LLM com um CSV de 3,9 MB é inútil. amenbo retorna a linha do cabeçalho, uma prévia curta e um ponteiro ("110_home-visit-care [15.4MB] — , 104 mais via links filter:'*.csv'") para que o agente possa curl + scriptar a agregação em vez disso. Jina retornou todos os 4.593.027 tokens. Mesmo arquivo, ~5.000× de diferença.
O romance Shift_JIS (1,2 MB). amenbo e Jina ambos o decodificam; o fetch oficial o embaralha:
amenbo: 吾輩は猫である。名前はまだ無い。どこで生れたか…
mcp-server-fetch: #### �� | �@��y�i�킪�͂��j�͔L�ł���B… (mojibake, UTF-8 assumido)
Jina Reader: 吾輩(わがはい)は猫である。名前はまだ無い… (decodifica, mas mantém furigana inline)
A pegadinha é o volume de tokens. Jina retorna o romance inteiro de uma só vez — 329.380 tokens, furigana e tudo (a partir de uma re-execução em 2026-07-12; antes foi um erro 503). Playwright MCP pagou 453.263 tokens pela árvore de acessibilidade e pixelshot 263.819 tokens visuais em 221 tiles de imagem. amenbo remove o ruby e divide em 25 páginas com orçamento de tokens (7.992 para a página 1, busque page: 2 para mais). Um fetch que pode retornar 300–450k tokens quebra suas suposições de gerenciamento de contexto, independentemente das médias.
PDF & CSV. Dados do setor público japonês são compostos de PDFs e CSVs. amenbo extrai texto de PDF (810 tok) e transfere CSVs com uma prévia (909 tok). O fetch oficial retorna %PDF-1.7 %����… bytes brutos; Playwright não consegue capturar o PDF de forma alguma.
Divulgação progressiva: leia o mapa antes do território
Os números acima são Markdown completo. Mas amenbo pode retornar um esboço primeiro — a árvore de cabeçalhos com uma estimativa de tokens por seção — para que o agente busque apenas as seções que realmente precisa. Nas mesmas páginas, mode: "outline" custa 75–97% menos tokens do que o Markdown completo:
| página | markdown | esboço | economizado |
|---|---|---|---|
| Wikipedia (populações das prefeituras) | 5.337 | 659 | 87,7% |
| Romance Aozora (Shift_JIS) | 7.992 | 408 | 94,9% |
| Artigo técnico do Zenn | 4.679 | 1.141 | 75,6% |
| Guia JavaScript do MDN (inglês) | 2.816 | 389 | 86,2% |
(Re-medido em 2026-07-12 na v0.2.0; logs em bench/logs-2026-07-12/.) Para um agente pesquisando em muitas páginas, decidir quanto ler antes de ler é o que mantém a janela de contexto viva — e é independente de idioma, então ajuda também em páginas em inglês.
Onde se encaixa (e onde não se encaixa)
Isso não é "substituir tudo":
- Jina Reader / Firecrawl são ótimas APIs de rastreamento hospedadas. amenbo é o oposto: local, gratuito, MIT, sem chave de API, construído para buscar um punhado de páginas com precisão. (Sobre a qualidade do Markdown simples, Jina é genuinamente igual — no artigo do Zenn, ambos reproduziram todas as 24 linhas da tabela e 5 blocos de código. A vantagem do amenbo é manter essa qualidade enquanto elimina nav/ban
As empresas brasileiras que lidam com dados internacionais, especialmente em idiomas menos comuns, devem considerar a eficácia de suas ferramentas de extração de dados. A compreensão das limitações de ferramentas de web-fetch pode melhorar a eficiência na coleta de informações. Isso é crucial para otimizar a experiência do usuário e a gestão de dados em projetos multilíngues.

