O que é o AgentBay AIBrowser
O AgentBay AIBrowser é uma plataforma gerenciada e escalável para executar navegadores com e sem interface gráfica em grande escala. Ele fornece a infraestrutura necessária para criar e gerenciar sessões, inicializar instâncias de navegador e alocar recursos de hardware subjacentes sob demanda. Seu design atende a cenários de automação web, como preenchimento de formulários, simulação de operações de usuário e orquestração de tarefas complexas e de múltiplas etapas em sites dinâmicos modernos.
A API do AgentBay AIBrowser oferece uma interface simples para controlar navegadores e ferramentas práticas para criar e gerenciar sessões. Utilize os recursos avançados de IA para executar tarefas descritas em linguagem natural.
Principais recursos
Compatibilidade com frameworks de automação: Alta compatibilidade com Playwright e Puppeteer por meio do Chrome DevTools Protocol (CDP).
Infraestrutura segura e escalável: Sessões gerenciadas, ambientes isolados e alocação elástica de recursos.
Observabilidade: Reprodução de sessões, inspetor de sessões e modo em tempo real para depuração ao vivo.
Capacidades avançadas: Gerenciamento de contexto, proxy de IP e opções de stealth/fingerprint.
PageUseAgent orientado por IA: Executa tarefas complexas de fluxo web usando linguagem natural.
Operações ricas de API: Fornece interfaces simples para gerenciamento de sessões, controle do ciclo de vida do navegador e operações de proxy.
Início rápido (Python)
Pré-requisitos
Antes de começar, certifique-se de ter concluído as etapas a seguir:
Defina sua chave de API:
export AGENTBAY_API_KEY=your_api_keyInstale as dependências:
pip install wuying-agentbay-sdk playwrightInstale o navegador do Playwright:
python -m playwright install chromium
Visão geral
Este exemplo mínimo e executável demonstra como inicializar um navegador com o SDK do AgentBay para Python e controlá-lo com o Playwright via CDP. O código de exemplo executa as seguintes etapas:
Crie um cliente
AgentBaycom sua chave de API para autenticação.Crie uma sessão com
CreateSessionParams(image_id="browser_latest")para provisionar um ambiente de execução habilitado para navegador.Inicializa o navegador da sessão usando
BrowserOption()para iniciar uma instância remota do navegador.Obtém a URL do endpoint WebSocket CDP com
get_endpoint_url()e conecta o Playwright usandoconnect_over_cdp.Abre uma nova página, acesse um site e interage com o DOM.
Exclua a sessão para liberar os recursos alocados.
Código de exemplo
import os
import asyncio
from agentbay import AgentBay
from agentbay.session_params import CreateSessionParams
from agentbay.browser.browser import BrowserOption
from playwright.async_api import async_playwright
async def main():
api_key = os.getenv("AGENTBAY_API_KEY")
if not api_key:
raise RuntimeError("AGENTBAY_API_KEY environment variable not set")
agent_bay = AgentBay(api_key=api_key)
# Create a session. Use an image with a browser preinstalled.
params = CreateSessionParams(image_id="browser_latest")
session_result = agent_bay.create(params)
if not session_result.success:
raise RuntimeError(f"Failed to create session: {session_result.error_message}")
session = session_result.session
# Initialize the browser. BrowserOption supports stealth, proxy, fingerprint, and more.
ok = await session.browser.initialize_async(BrowserOption())
if not ok:
raise RuntimeError("Browser initialization failed")
endpoint_url = session.browser.get_endpoint_url()
# Connect Playwright over CDP and automate.
async with async_playwright() as p:
browser = await p.chromium.connect_over_cdp(endpoint_url)
page = await browser.new_page()
await page.goto("https://www.aliyun.com")
print("Title:", await page.title())
await browser.close()
session.delete()
if __name__ == "__main__":
asyncio.run(main())
Principais APIs do navegador
|
Método |
Descrição |
|
|
Inicia uma instância de navegador para a sessão. |
|
|
Retorna o endpoint WebSocket CDP. Utilize-o com o método |
|
|
Verifique se o navegador está pronto. |
Configuração básica
Páginas web podem exigir diferentes configurações e ambientes de exibição. Personalize a identidade do navegador e o tamanho da viewport para adaptar a experiência do usuário a tipos específicos de dispositivos ou públicos-alvo.
O exemplo a seguir define um user agent personalizado e um tamanho preciso de viewport:
Autentique-se e crie uma sessão que hospede um navegador.
Simule um user agent comum para macOS e Chrome para identificar o ambiente do navegador.
Inicie o navegador usando
initialize_async, solicite o endpoint CDP e conecte-se através do Playwright.Acesse um site e verifique se o
User-Agente o tamanho da viewport foram definidos corretamente.
import os
import asyncio
from agentbay import AgentBay
from agentbay.session_params import CreateSessionParams
from agentbay.browser.browser import BrowserOption, BrowserViewport
from playwright.async_api import async_playwright
CUSTOM_UA = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36"
async def main():
agent_bay = AgentBay(api_key=os.environ["AGENTBAY_API_KEY"]) # Authenticate.
params = CreateSessionParams(image_id="browser_latest") # Provision a browser-ready session.
result = agent_bay.create(params)
if not result.success:
raise RuntimeError(result.error_message)
session = result.session
# Define the browser's appearance and behavior.
option = BrowserOption(
user_agent=CUSTOM_UA, # Set a custom identity.
viewport=BrowserViewport(width=1366, height=768), # Set a viewport size for a common laptop.
)
ok = await session.browser.initialize_async(option)
if not ok:
raise RuntimeError("Browser initialization failed")
endpoint_url = session.browser.get_endpoint_url() # Get the CDP endpoint.
async with async_playwright() as p:
browser = await p.chromium.connect_over_cdp(endpoint_url) # Connect and take control.
page = await browser.new_page()
await page.goto("https://www.whatismybrowser.com/detect/what-is-my-user-agent")
# Verify the new user agent and viewport size.
ua = await page.evaluate("navigator.userAgent")
w = await page.evaluate("window.innerWidth")
h = await page.evaluate("window.innerHeight")
print("Effective UA:", ua)
print("Viewport:", w, "x", h)
await browser.close()
session.delete() # Delete the session to release resources.
if __name__ == "__main__":
asyncio.run(main())
Uso do PageUseAgent [Beta]
O PageUseAgent permite interagir com um navegador usando linguagem natural para executar intenções. As chamadas ao PageUseAgent dependem das capacidades de modelos de linguagem grandes (LLM) e consomem tokens. Isso gera cobranças com base nas regras de pagamento conforme o uso. O serviço está disponível para teste gratuito durante o período Beta.
O exemplo a seguir mostra como pesquisar um livro no Google:
Crie e inicialize uma sessão de navegador e forneça uma instrução ao agente.
Insira uma consulta. O agente traduz a intenção em operações de página.
O navegador insere automaticamente a consulta na caixa de pesquisa e navega até a página de resultados.
Feche o navegador e libere a sessão.
import os
import asyncio
from agentbay import AgentBay
from agentbay.session_params import CreateSessionParams
from agentbay.browser.browser import BrowserOption
from agentbay.browser.browser_agent import ActOptions
from playwright.async_api import async_playwright
BOOK_QUERY = "The Pragmatic Programmer"
async def main():
agent_bay = AgentBay(api_key=os.environ["AGENTBAY_API_KEY"]) # Authenticate.
params = CreateSessionParams(image_id="browser_latest") # Provision a session with a browser image.
result = agent_bay.create(params)
if not result.success:
raise RuntimeError(result.error_message)
session = result.session
# Initialize the remote browser.
if not await session.browser.initialize_async(BrowserOption()):
raise RuntimeError("Browser initialization failed")
endpoint_url = session.browser.get_endpoint_url()
async with async_playwright() as p:
browser = await p.chromium.connect_over_cdp(endpoint_url)
page = await browser.new_page()
# Navigate to the page.
await page.goto("https://www.google.com")
# Ask the agent to type the book name into the search box and submit.
act_result = await session.browser.agent.act_async(ActOptions(
action=f"Type '{BOOK_QUERY}' into the search box and submit",
), page)
print("act_result:", act_result.success, act_result.message)
# Let the agent open the first search result.
open_first = await session.browser.agent.act_async(ActOptions(
action="Click the first result in the search results",
), page)
print("open_first:", open_first.success, open_first.message)
# Pause briefly to observe the result.
await page.wait_for_timeout(5000)
await browser.close()
session.delete()
if __name__ == "__main__":
asyncio.run(main())
Sobre PageUseAgent.act
variablesinterpola valores dinâmicos para permitir prompts reutilizáveis.Opera em uma página ativa do Playwright recuperando seu
context_idepage_idsubjacentes.Retorna um
ActResultestruturado contendosuccessemessagepara facilitar o registro de logs e fluxos de recuperação.
Limitações
O PageUseAgent não inclui um planejador de longo prazo e não orquestra planos de múltiplas etapas por conta própria. Ele depende do chamador ou de um agente de nível superior para dividir um projeto em etapas e chamar act ou outros métodos do PageUseAgent para cada etapa.
A principal vantagem do PageUseAgent reside na execução rápida e consistente de operações web atômicas e precisas, como cliques, preenchimentos e rolagens.
O PageUseAgent prioriza o throughput e a precisão de cada etapa. O planejamento complexo de tarefas e a lógica de ramificação ficam a cargo de um controlador externo.