This document provides a complete API reference for the AgentBay Python SDK.
| Module | Description | Main Classes/Functions |
|---|---|---|
| agentbay | Main client class | AgentBay |
| session | Session management | Session |
| command | Command execution | CommandExecutor |
| code | Code execution | CodeExecutor |
| filesystem | File system operations | FileSystemManager |
| ui | UI automation | UIAutomation |
| context | Context management | ContextManager |
| extension | Browser extension management | ExtensionsService, ExtensionOption |
| browser | Browser automation | BrowserAutomation |
from agentbay import AgentBay
# Initialize client
agent_bay = AgentBay()
# Create session
session_result = agent_bay.create()
session = session_result.session
# Execute command
result = session.command.execute_command("ls -la")
print(result.output)
# Clean up session
agent_bay.destroy(session.session_id)Main client class that provides session management and advanced features.
AgentBay(api_key: Optional[str] = None, config: Optional[Dict] = None)Parameters:
api_key(str, optional): API key, defaults toAGENTBAY_API_KEYenvironment variableconfig(dict, optional): Client configuration
Examples:
# Use API key from environment variable
agent_bay = AgentBay()
# Explicitly specify API key
agent_bay = AgentBay(api_key="your-api-key")
# With configuration
agent_bay = AgentBay(config={"timeout": 30})Create a new session.
create(params: Optional[CreateSessionParams] = None) -> CreateSessionResultParameters:
params(CreateSessionParams, optional): Session creation parameters
Returns:
CreateSessionResult: Contains session object or error information
Examples:
# Create default session
result = agent_bay.create()
# Create session with parameters
params = CreateSessionParams(
image="ubuntu:20.04",
labels={"project": "demo"}
)
result = agent_bay.create(params)Destroy the specified session.
destroy(session_id: str) -> DestroySessionResultParameters:
session_id(str): Session ID
Returns:
DestroySessionResult: Destruction result
List all sessions.
list(params: Optional[ListSessionParams] = None) -> ListSessionResultParameters:
params(ListSessionParams, optional): List query parameters
Returns:
ListSessionResult: Session list
Session object that provides access to various functional modules.
session_id(str): Unique session identifierstatus(str): Session statuscreated_at(datetime): Creation timecommand(CommandExecutor): Command executorcode(CodeExecutor): Code executorfile_system(FileSystemManager): File system managerui(UIAutomation): UI automationcontext_sync(ContextSync): Context synchronizationbrowser(BrowserAutomation): Browser automation
Command execution functionality.
Execute Shell commands.
execute(command: str, timeout: Optional[int] = None, input_data: Optional[str] = None) -> CommandResultParameters:
command(str): Command to executetimeout(int, optional): Timeout in secondsinput_data(str, optional): Input data
Returns:
CommandResult: Command execution result
Examples:
# Basic command execution
result = session.command.execute_command("ls -la")
# With timeout
result = session.command.execute_command("long_running_task", timeout=60)
# Interactive command
result = session.command.execute_command("python3", input_data="print('hello')\nexit()\n")Code execution functionality.
Execute code in the specified language.
run_code(code: str, language: str, timeout: Optional[int] = None) -> CodeResultParameters:
code(str): Code to executelanguage(str): Programming language ("python", "javascript", "go")timeout(int, optional): Timeout in seconds
Returns:
CodeResult: Code execution result
Examples:
# Python code
python_code = """
print("Hello from Python!")
result = 2 + 2
print(f"2 + 2 = {result}")
"""
result = session.code.run_code(python_code, "python")
# JavaScript code
js_code = """
console.log("Hello from JavaScript!");
const result = 2 + 2;
console.log(`2 + 2 = ${result}`);
"""
result = session.code.run_code(js_code, "javascript")File system operations functionality.
Read file content.
read_file(file_path: str) -> FileReadResultWrite file content.
write_file(file_path: str, content: str, encoding: str = "utf-8") -> FileWriteResultDelete file.
delete_file(file_path: str) -> FileDeleteResultList directory contents.
list_directory(directory_path: str) -> DirectoryListResultExamples:
# Write file
result = session.file_system.write_file("/tmp/test.txt", "Hello World!")
# Read file
result = session.file_system.read_file("/tmp/test.txt")
print(result.data) # "Hello World!"
# List directory
result = session.file_system.list_directory("/tmp")
for file in result.data:
print(f"{file.name} ({file.size} bytes)")UI automation functionality.
Take screenshot.
screenshot() -> ScreenshotResultSimulate mouse click.
click(x: int, y: int) -> ClickResultSimulate keyboard input.
type(text: str) -> TypeResultSimulate key press.
key(key_name: str) -> KeyResultExamples:
# Screenshot
screenshot = session.ui.screenshot()
with open("screenshot.png", "wb") as f:
f.write(screenshot.data)
# Mouse and keyboard operations
session.ui.click(100, 200)
session.ui.type("Hello AgentBay!")
session.ui.key("Enter")Context management functionality.
Get or create context.
get(name: str, create: bool = False) -> ContextResultUpload file to context.
upload_file(context_id: str, file_path: str, content: str) -> UploadResultDownload file from context.
download_file(context_id: str, file_path: str) -> DownloadResultExamples:
# Get context
context_result = agent_bay.context.get("my-project", create=True)
context = context_result.context
# Upload file
agent_bay.context.upload_file(context.id, "/config.json", '{"version": "1.0"}')
# Download file
result = agent_bay.context.download_file(context.id, "/config.json")
print(result.data)Browser extension management functionality.
Create an extensions service instance.
ExtensionsService(agent_bay: AgentBay, context_id: str = "")Parameters:
agent_bay(AgentBay): AgentBay client instancecontext_id(str, optional): Context ID or name for extension storage
Upload a browser extension.
create(local_path: str) -> ExtensionList all extensions in the current context.
list() -> List[Extension]Create extension configuration for browser sessions.
create_extension_option(extension_ids: List[str]) -> ExtensionOptionExamples:
from agentbay.extention import ExtensionsService
from agentbay.session_params import CreateSessionParams, BrowserContext
# Initialize extensions service
extensions_service = ExtensionsService(agent_bay)
# Upload extension
extension = extensions_service.create("/path/to/extension.zip")
# Create browser session with extension
ext_option = extensions_service.create_extension_option([extension.id])
session_params = CreateSessionParams(
browser_context=BrowserContext(
context_id="browser_session",
extension_option=ext_option
)
)
session = agent_bay.create(session_params).session
# Cleanup
extensions_service.cleanup()Related Documentation:
- Extension API Reference - Complete API documentation
- Extension Examples - Practical code examples
- Browser Extensions Guide - Tutorial and best practices
All API calls return result objects that contain is_error property and possible error information.
result = session.command.execute_command("invalid_command")
if result.is_error:
print(f"Error: {result.error}")
print(f"Error code: {result.error_code}")
else:
print(f"Success: {result.data}")@dataclass
class CreateSessionParams:
image: Optional[str] = None
labels: Optional[Dict[str, str]] = None
context_syncs: Optional[List[ContextSync]] = None
session_type: Optional[str] = None
vpc_config: Optional[Dict] = None@dataclass
class CommandResult:
is_error: bool
error: Optional[str] = None
error_code: Optional[str] = None
data: Optional[CommandData] = None
@dataclass
class CommandData:
stdout: str
stderr: str
exit_code: int@dataclass
class CodeResult:
is_error: bool
error: Optional[str] = None
data: Optional[CodeData] = None
@dataclass
class CodeData:
stdout: str
stderr: str
execution_time: float- Feature Guides - Detailed feature usage guides
- Example Code - Complete example code
- Troubleshooting - Common issue resolution
💡 Tip: This is the Python SDK API reference. APIs for other languages may differ slightly, please refer to the documentation for the corresponding language.