Conheça os conceitos fundamentais do AgentBay SDK, incluindo sessões, imagens, persistência de dados e resultados de API.
Classe AgentBay
Funções principais
A classe AgentBay é a interface primária para interagir com o serviço AgentBay. Ela oferece as seguintes funções essenciais:
Gerenciador de sessões: Crie, exclua e gerencia sessões em nuvem.
Cliente de API: Responsável por toda a comunicação com o serviço de nuvem AgentBay.
Manipulador de autenticação: Gerencia chaves de API e segurança de forma automática.
Uso básico
# 1. Initialize client
agent_bay = AgentBay()
# 2. Create session (uses linux_latest by default)
session = agent_bay.create().session
# 3. Use session for your tasks
# ... your automation tasks ...
# 4. Clean up resources
agent_bay.delete(session)
Sessões
Uma sessão representa uma conexão entre um usuário e um ambiente em nuvem.
Principais características
Temporárias: As sessões são criadas sob demanda e destruídas após a conclusão das tarefas.
Isoladas: Cada sessão opera com total independência em relação às demais.
Faturadas: O custo é calculado com base no tempo em que a sessão permanece ativa.
Uso básico
# Create a session
session = agent_bay.create().session
# Use the session for your tasks
session.command.execute_command("echo 'Hello World'")
# Always clean up when done
agent_bay.delete(session)
Ciclo de vida da sessão
Create Session → Use Session → Delete Session
↓ ↓ ↓
Allocate Execute Release
Resources Operations Resources
Liberação de sessão
É obrigatório liberar uma sessão após o uso para liberar recursos de nuvem. Existem duas maneiras de fazer isso:
Liberação manual (recomendada)
# Explicitly delete when done
agent_bay.delete(session)
Liberação automática por tempo limite
Caso você não exclua a sessão manualmente, ela será liberada automaticamente após atingir o tempo limite.
Acesse o console do AgentBay. No painel de navegação à esquerda, escolha Policy Management.
Clique em Create Policy. Defina Release Inactive Desktops como Ative.
Insira os valores de tempo limite para Release Desktop after MCP Interaction Terminates e Release Desktop after MCP Interaction Terminates.
Clique em Create Policy.
No painel de navegação à esquerda, escolha Service Management. Localize a chave de API . Na coluna Actions, clique no ícone ⋮.
-
Escolha View/Associate Policy. Na seção Associated Policy, clique em Associate Policy. Selecione a política criada e clique em Confirm.
NotaCada chave de API pode ser associada a apenas uma política. Ao criar uma chave de API, ela é associada automaticamente à política padrão. Você deve primeiro clicar em Dissociate.
Imagens
Imagens oficiais do sistema
A tabela a seguir lista as imagens oficiais mais recentes fornecidas pelo AgentBay.
|
ID da imagem |
Ambiente |
Mais indicado para |
|
|
Computador em nuvem |
Computação geral e tarefas de servidor (padrão se não especificado) |
|
|
Computador em nuvem |
Tarefas gerais do Windows, desenvolvimento |
|
|
Navegador em nuvem |
Web scraping, automação de navegador e testes de sites |
|
|
Sandbox de código |
Programação, ferramentas de desenvolvimento e tarefas de codificação |
|
|
Cloud Phone |
Testes de aplicativos móveis e automação Android |
Se nenhum
image_idfor especificado, o AgentBay utilizalinux_latestcomo ambiente padrão.É possível crie e utilizar imagens personalizadas no console do AgentBay para atender a necessidades específicas.
Selecione uma imagem adequada
Exemplo de ambiente Windows
from agentbay.session_params import CreateSessionParams
# Create Windows environment and automate notepad
params = CreateSessionParams(image_id="windows_latest")
session = agent_bay.create(params).session
# Start Notepad application
session.computer.start_app("notepad.exe")
# Returns: ProcessListResult with started process info
# Input text into notepad
session.computer.input_text("Hello from Windows!")
# Returns: BoolResult with success status
agent_bay.delete(session)
Exemplo de ambiente de navegador
# Create browser environment
params = CreateSessionParams(image_id="browser_latest")
session = agent_bay.create(params).session
# Initialize and navigate
from agentbay.browser import BrowserOption
session.browser.initialize(BrowserOption())
session.browser.agent.navigate("https://www.baidu.com")
print("Web navigation successful")
agent_bay.delete(session)
Exemplo de ambiente sandbox de código
# Create development environment and execute code
params = CreateSessionParams(image_id="code_latest")
session = agent_bay.create(params).session
# Execute code
result = session.code.run_code("print('Hello from CodeSpace!')", "python")
# Returns: CodeExecutionResult with output
# Example: result.result = "Hello from CodeSpace!"
agent_bay.delete(session)
Exemplo de ambiente Cloud Phone
# Create Android environment and send HOME key
params = CreateSessionParams(image_id="mobile_latest")
session = agent_bay.create(params).session
# Press HOME key to return to home screen
from agentbay.mobile import KeyCode
session.mobile.send_key(KeyCode.HOME)
# Returns: BoolResult with success status
# Example: result.success = True (returns to Android home screen)
agent_bay.delete(session)
Persistência de dados
Dados temporários
Por padrão, todos os dados de uma sessão são temporários.
As informações são perdidas assim que a sessão termina.
Ideal para processamento de tarefas, arquivos transitórios ou cache.
# This data will be LOST when session ends
session.file_system.write_file("/tmp/temp_data.txt", "This will disappear")
Dados persistentes
O armazenamento persistente permite reter dados entre diferentes sessões.
A configuração desse recurso deve ser feita explicitamente.
Recomendado para arquivos de projeto, configurações e resultados importantes.
from agentbay import ContextSync
# Create persistent storage
context = agent_bay.context.get("my-project", create=True).context
context_sync = ContextSync.new(context.id, "/tmp/persistent")
# Create session with persistent data
params = CreateSessionParams(context_syncs=[context_sync])
session = agent_bay.create(params).session
# This data will be SAVED across sessions
session.file_system.write_file("/tmp/persistent/important.txt", "This will persist")
Para garantir a persistência dos dados, é necessário utilizar um Contexto. Caso contrário, as informações serão perdidas permanentemente ao final da sessão.
Resultados de API e IDs de solicitação
Resultados de API
As chamadas à API do AgentBay retornam respostas encapsuladas em um objeto de resultado.
# Example API call
screenshot = session.computer.screenshot()
# The result object contains:
print(screenshot.success) # True/False - whether the operation succeeded
print(screenshot.data) # Your actual data (screenshot URL)
print(screenshot.request_id) # Request ID for troubleshooting
ID de solicitação
Toda chamada de API retorna um ID de solicitação único, como "ABC12345-XXXX-YYYY-ZZZZ-123456789ABC".
Utilidades dos IDs de solicitação
Resolução de problemas: Compartilhe este ID com o suporte para obter assistência mais rápida.
Rastreamento: Acompanhe operações individuais nos logs de trace.
Depuração: Identifique exatamente qual chamada de API apresentou falha.
Quando utilizar IDs de solicitação
Quando uma chamada de API falhar inesperadamente.
Ao notar problemas de desempenho em uma operação específica.
Sempre que entrar em contato com o suporte sobre algum incidente.
Exemplo de resolução de problemas
result = session.code.run_code("print('hello')", "python")
if not result.success:
print(f"Code execution failed! Request ID: {result.request_id}")
# Share this Request ID with support for faster help