# Configuração de Proxy para Uso em Navegador: IPs de Saída por Sessão

Procure um proxy para uso em navegador e o Google lhe apresenta a caixa de diálogo de configurações do Chrome. Esta é a outra questão: roteando a biblioteca de agentes de IA para uso em navegador através de IPs residenciais autenticados, um por agente.

Procure por **proxy para uso em navegador** e o Google lhe apresenta a caixa de diálogo de configurações do Chrome, a API de extensão `chrome.proxy` e um tutorial de arquivo PAC corporativo. Nada disso é o que você estava procurando. Você quer rotear [browser-use](https://github.com/browser-use/browser-use) - a biblioteca Python com 108k estrelas no GitHub que permite a um LLM controlar um navegador real - através de um proxy autenticado, para que seu agente não sobrecarregue um alvo a partir do IP do seu escritório. Este é o guia: onde o parâmetro realmente está, por que ele para de funcionar silenciosamente após uma atualização, como dar a cada agente paralelo seu próprio IP de saída e o que acontece com uma tarefa longa quando o IP muda sob ela.

## Onde o parâmetro de proxy para uso em navegador realmente está

O proxy é uma propriedade da *sessão do navegador*, não do agente. Na biblioteca atual, `Browser` é um alias para `BrowserSession` - a documentação é explícita que são exatamente a mesma classe - então qualquer tutorial que você encontrar usando um nome se aplica ao outro. O parâmetro é `proxy`, e a documentação o tipifica como `ProxySettings` com quatro campos: `server`, `bypass`, `username` e `password`. Um dicionário equivalente funciona, que é o que a maioria das pessoas passa:

```python
import asyncio
from browser_use import Agent, Browser
# llm = ...  your model of choice; see the browser-use docs for the import

PROXY = {
    "server": "http://residentialpremium.quantumproxies.io:8080",  # scheme is mandatory
    "username": "USER",
    "password": "PASS",
    "bypass": "localhost,127.0.0.1",                  # keep local calls off the proxy
}

browser = Browser(proxy=PROXY, headless=False)

async def main():
    agent = Agent(
        task="Open https://api.ipify.org?format=json and report the IP you see",
        llm=llm,
        browser_session=browser,
    )
    await agent.run()

asyncio.run(main())
```

Dois detalhes que as pessoas erram. Primeiro, as credenciais pertencem aos campos `username` e `password`, não devem ser colocadas no `server` - o Chromium não responderá a um desafio de autenticação de proxy a partir de uma senha embutida na URL, e o browser-use não tem diálogo para digitá-la. Segundo, `server` precisa de um esquema. `residentialpremium.quantumproxies.io:8080` não é uma URL de proxy; `http://residentialpremium.quantumproxies.io:8080` é. Se as credenciais estão lhe causando problemas, [whitelist o IP do seu servidor](https://quantumproxies.io/residential-proxies) para remover usuário:senha da equação completamente - o gateway reconhece o chamador e o navegador nunca vê um 407.

## Por que sua configuração de proxy para uso em navegador não faz nada silenciosamente

A página mais visitada sobre este tópico após a documentação é a issue #2445 do GitHub, registrada em julho de 2025: um proxy que funcionava na versão 0.1.45 parou de surtir efeito na 0.5.4, e a única pista era o agente relatando alegremente `DNS_PROBE_FINISHED_NXDOMAIN` em seu próprio resumo. Esse modo de falha - o agente narrando um erro de rede como se fosse um fato sobre o site - é a assinatura de um proxy que está meio configurado. Trabalhe com esta lista antes de gastar mais tokens:

1. Você passou `proxy=` para uma sessão que o agente nunca recebeu. Crie um `Browser`, passe esse objeto exato e não deixe que uma sessão padrão seja criada sem seu conhecimento.
2. Você configurou `cdp_url`. Conectar-se a um Chrome já em execução significa que o proxy pertence às flags de inicialização desse navegador (`--proxy-server=...`), não à sua configuração de sessão - o browser-use não pode adaptá-lo.
3. Uma variável de ambiente global `HTTP_PROXY` ou `HTTPS_PROXY` está competindo com a configuração da sessão, ou pior, roteando silenciosamente suas chamadas de API do LLM através de uma largura de banda medida.
4. O próprio proxy está inativo. Teste-o fora do agente primeiro - não custa nada e elimina metade do espaço de busca.

```python
import requests

PROXY_URL = "http://USER:PASS@residentialpremium.quantumproxies.io:8080"
r = requests.get(
    "https://api.ipify.org?format=json",
    proxies={"http": PROXY_URL, "https": PROXY_URL},
    timeout=20,
)
print(r.status_code, r.text)   # must NOT be your own IP
```

Se isso imprimir um IP estrangeiro, as credenciais e o gateway estão bem e o problema está na configuração da sessão. Se imprimir seu próprio endereço, ou um 407, corrija isso primeiro. Nosso [verificador de IP](https://quantumproxies.io/ip-checker) gratuito informa como a saída parece do outro lado - ASN, tipo e reputação - que é a segunda coisa a verificar quando as páginas carregam, mas todas são um CAPTCHA.

![Um agente browser-use solicitado a informar seu IP narra DNS_PROBE_FINISHED_NXDOMAIN como se fosse um fato sobre o site, sinal de um proxy configurado pela metade. O quadro associa sintomas a correções: um erro de DNS, o seu próprio IP aparecendo, uma configuração que funcionava na 0.1.45 ou uma variável global HTTPS_PROXY em conflito com a sessão.](https://res.cloudinary.com/dmqliab0t/image/upload/f_auto,q_auto,w_1200/v1785776552/blog/generated/qp-b10-005-diag1.png)
*A configuração geralmente parece correta. A falha quase sempre é a sessão que o agente realmente recebeu, o esquema ausente ou uma variável de ambiente global.*

## Um proxy por sessão, para que agentes paralelos não compartilhem um IP de saída

Esta é a razão pela qual o parâmetro está na sessão em vez de em uma configuração global. Execute dez agentes através de um `Browser` compartilhado e o alvo verá dez vezes o tráfego de um endereço, que é a maneira mais rápida de queimar um IP residencial. Construa a sessão dentro da coroutine em vez disso, e dê a cada uma seu próprio identificador de sessão fixa para que o gateway a fixe em uma única saída durante a vida útil da tarefa:

```python
import asyncio, secrets
from browser_use import Agent, Browser

def session_proxy(sid: str, country: str = "us"):
    return {
        "server": "http://residentialpremium.quantumproxies.io:8080",
        "username": f"USER-country-{country}-sid-{sid}-ttl-30m",
        "password": "PASS",
    }

async def run_task(task: str, country: str):
    sid = secrets.token_hex(3)                  # e.g. a1b2c3
    browser = Browser(
        proxy=session_proxy(sid, country),
        user_data_dir=None,                     # incognito: no shared cookies
        allowed_domains=["*.example.com"],      # keep the agent on target
    )
    agent = Agent(task=task, llm=llm, browser_session=browser)
    return await agent.run()

async def main():
    await asyncio.gather(
        run_task("Find the price of SKU-1", "us"),
        run_task("Find the price of SKU-1", "de"),
        run_task("Find the price of SKU-1", "gb"),
    )

asyncio.run(main())
```

Três flags estão fazendo um trabalho real ali. `user_data_dir=None` executa em modo incógnito, para que os agentes não herdem os cookies uns dos outros e silenciosamente mesclem duas identidades em um perfil. `allowed_domains` restringe a navegação a uma lista de padrões - note que curingas na posição de TLD, como `example.*`, são rejeitados de propósito, e listas com mais de cem entradas são otimizadas em conjuntos com correspondência de padrões desativada. E o identificador de sessão no nome de usuário é o que torna o IP de saída estável; os nomes exatos das flags para país e sessão estão no seu painel, mas a forma é a mesma em todos os lugares.

## Escolhendo o país de saída por tarefa

Agentes que compram, comparam preços ou verificam disponibilidade estão errados por padrão se navegarem a partir do país errado. Como o proxy é por sessão, o país é um argumento por tarefa - troque `country-us` por `country-de` e a mesma tarefa retorna preços alemães. Escolha entre os mais de 200 países no pool, e mantenha o resto do navegador coerente com isso: passe um idioma correspondente através de `args` (o Chromium aceita `--lang=de-DE`) em vez de deixar um IP de saída alemão solicitar páginas em inglês dos EUA. Para superfícies apenas móveis e as saídas de maior confiança, [IPs móveis](https://quantumproxies.io/mobile-proxies) se comportam de forma diferente novamente, porque o NAT do operador coloca milhares de usuários reais atrás do mesmo endereço.

[Dê a cada agente seu próprio IP de saída residencial](https://quantumproxies.io/residential-proxies)

![Três agentes browser-use, cada um criado dentro da sua própria tarefa com seu próprio Browser e uma sessão de proxy fixa no nome de usuário, alcançam o mesmo destino a partir de saídas residenciais distintas nos EUA, na Alemanha e no Reino Unido. O quadro lista as regras: um Browser por agente, uma sessão fixa por Browser, nenhum cookie compartilhado.](https://res.cloudinary.com/dmqliab0t/image/upload/f_auto,q_auto,w_1200/v1785776552/blog/generated/qp-b10-005-diag2.png)
*Construa a sessão dentro da tarefa, não fora dela. Um Browser por agente, uma sessão fixa por Browser, um IP por identidade.*

## O que acontece quando o IP gira no meio da tarefa

Agentes são lentos de uma maneira que scrapers não são. Entre a pausa padrão de 0,5s após cada ação, um tempo mínimo de espera de estado de página de 0,25s e uma espera de inatividade de rede de 0,5s, o uso em navegador gasta mais de um segundo por etapa antes que o modelo tenha dito qualquer coisa - e a viagem de ida e volta do modelo geralmente leva vários segundos a mais. Uma tarefa de quinze etapas, portanto, dura de um a dois minutos no relógio de parede. Se seu IP de saída gira por solicitação, o site verá um endereço diferente em cada uma dessas etapas: o login cai, o carrinho esvazia e o agente relata que o botão de checkout desapareceu.

A solução é uma sessão fixa cuja janela exceda confortavelmente a duração da sua tarefa no pior caso, não a média. Cronometre algumas execuções reais, pegue a mais lenta e adicione margem - agentes tentam novamente, e uma tentativa novamente dobra o relógio. Quando uma tarefa realmente precisa sobreviver a qualquer janela fixa, divida-a: faça login e exporte o estado, depois retome em uma nova sessão com os cookies que você salvou via `storage_state`. E se você está escolhendo entre rotação por solicitação e fixo, nosso [checklist de infraestrutura para agentes de IA](https://quantumproxies.io/blog/web-infrastructure-ai-agents) cobre o restante da camada em torno dessa decisão.

## Mantenha o proxy fora de suas chamadas LLM

Este custa dinheiro real e quase ninguém percebe. Definir `HTTPS_PROXY` como uma variável de ambiente para fazer o proxy "aplicar-se em todos os lugares" também roteia cada chamada de API de modelo através do seu gateway residencial - prompts e respostas, em cada etapa, cobrados por gigabyte pelo privilégio de dar a volta longa. Configure o proxy apenas no `Browser` e deixe o ambiente do processo em paz. Enquanto você está contando bytes, note que o browser-use carrega o uBlock Origin por padrão através de `enable_default_extensions`: deixe-o ativado, porque cada solicitação de anúncio que ele mata é uma que você não paga. A aritmética completa está em nossa análise de [quanto um agente de IA custa em largura de banda](https://quantumproxies.io/blog/ai-agent-bandwidth-cost-proxies), e a versão de scraping clássico do trade-off está em [navegador sem cabeça vs solicitações HTTP](https://quantumproxies.io/blog/headless-browser-vs-http-requests-cost).

## Perguntas frequentes

### Como configuro um proxy no browser-use?

Passe `proxy=` quando você construir o `Browser` (também exportado como `BrowserSession`), depois entregue esse objeto ao `Agent`. O valor carrega `server` com um esquema `http://` explícito, além de `username`, `password` e uma lista opcional de `bypass`. Não há configuração de proxy a nível de agente - ele pertence à sessão.

### Por que minha configuração de proxy para uso em navegador não está funcionando?

Em ordem de probabilidade: o agente está rodando em uma sessão diferente da que você configurou, `server` está sem seu esquema, você configurou `cdp_url` então o navegador foi lançado em outro lugar sem flags de proxy, ou uma variável de ambiente de proxy global está anulando você. Verifique o proxy com um cliente HTTP simples primeiro - um erro de DNS dentro do log do agente geralmente significa que nenhum proxy está anexado.

### Cada agente de uso em navegador pode usar um IP diferente?

Sim, e você deveria. Crie o `Browser` dentro de cada coroutine de tarefa com suas próprias credenciais de proxy em vez de compartilhar uma instância. Adicionar um identificador de sessão único ao nome de usuário do gateway fixa cada agente a uma saída distinta durante sua execução, então dez agentes paralelos parecem dez usuários em vez de um muito ocupado.

### Qual tipo de proxy é mais adequado para agentes de uso em navegador?

Residencial rotativo para pesquisa e verificações de preços onde cada tarefa é independente, residencial fixo para qualquer coisa com login ou carrinho, e móvel quando o alvo é hostil ou apenas móvel. IPs de datacenter são bons para alvos internos e páginas desprotegidas, e são muito mais baratos por gigabyte - o que importa, porque um agente de navegador move muitos gigabytes.

### Um proxy impede que o uso em navegador seja detectado?

Não. Um proxy corrige apenas a camada de IP; a impressão digital de um Chromium automatizado é um problema separado, assim como o comportamento de um agente que clica com precisão de milissegundos. Saídas residenciais confiáveis removem o sinal mais fácil, mas combine-as com uma construção de navegador orientada para stealth se o alvo tiver uma gestão de bots séria.

Nada aqui é exótico: o proxy é uma propriedade da sessão, e as duas coisas que o quebram são um esquema ausente e uma sessão que você nunca entregou. Acerte isso, dê a cada agente paralelo sua própria saída fixa e mantenha o gateway longe de suas chamadas de API de modelo. Para uma visão mais ampla, veja nosso [mapa de frameworks anti-detecção e proxies autenticados](https://quantumproxies.io/blog/anti-detect-frameworks-authenticated-proxies-map).

[Execute o browser-use em mais de 90M de IPs residenciais em mais de 200 países](https://quantumproxies.io/residential-proxies)
