全部产品
Search
文档中心

无影 Agent 开发套件 AgentBay:核心概念

更新时间:Mar 13, 2026

本文介绍有关使用AgentBay SDK所需掌握的核心概念。

AgentBay类

核心功能

AgentBay类是与云服务交互的主要接口,包括以下核心功能:

  • 会话管理器:创建、删除和管理云会话。

  • API 客户端:处理与 AgentBay 云服务的所有通信。

  • 身份验证处理程序:自动管理 API 密钥和安全性。

基本用法

# 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)

会话

会话是用户与云环境之间的连接。

主要特点

  • 临时:会话在需要时创建,在完成后销毁。

  • 隔离:每个会话与其他会话完全独立。

  • 计费:需要为会话活跃的时间付费。

基本用法

# 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)

会话生命周期

Create Session → Use Session → Delete Session
      ↓             ↓              ↓
  Allocate      Execute         Release
  Resources     Operations      Resources

会话释放

完成后必须释放会话才能释放云资源。释放会话有两种方法:

手动释放(推荐)

# Explicitly delete when done
agent_bay.delete(session)

自动超时解除

如果没有手动删除,会话将在超时后自动释放。

  1. 前往无影 AgentBay 控制台,在左侧导航栏选择策略管理

  2. 单击创建策略,将释放不活跃桌面设置为启用。

  3. 输入MCP交互终止后释放桌面用户交互终止后释放桌面的超时时间。

  4. 单击创建策略

  5. 在左侧导航栏选择服务管理,找到目标API KEY操作列中单击 ⋮ 图标,

  6. 选择查看/关联策略,在已关联策略区域单击关联策略,选择创建的策略,单击确定关联

    说明

    每个API KEY仅可关联一个策略,API KEY创建时将自动关联系统默认策略,需先解除关联

镜像

官方系统镜像

下表为AgentBay官方提供的最新系统镜像。

图像 ID

环境

适合的任务

linux_latest

云电脑

通用计算、服务器任务(未指定则为默认)

windows_latest

云电脑

常规 Windows 任务、.NET 开发、Windows 应用程序

browser_latest

云浏览器

网页抓取、浏览器自动化、测试网站

code_latest

代码沙箱

编码、开发工具、编程任务

mobile_latest

云手机

移动应用测试、Android 自动化

说明
  • 如果未指定image_id,AgentBay 将自动使用linux_latest作为默认环境。

  • 可以通过 AgentBay 控制台创建并使用自定义镜像,以满足特定需求。

选择正确的镜像

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)

浏览器环境示例

# 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)

代码沙箱环境示例

# 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)

云手机环境示例

# 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)

数据持久性

临时数据

  • 默认情况下,会话中的所有数据都是临时的。

  • 会话结束时所有内容都会丢失。

  • 适用于处理任务、临时文件或缓存。

# This data will be LOST when session ends
session.file_system.write_file("/tmp/temp_data.txt", "This will disappear")

持久数据

  • 支持跨会话保留数据。

  • 必须明确配置。

  • 适用于项目文件、配置与重要结果。

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")
说明

如果需要保存数据,则必须使用 Context。否则会话结束后数据将永远丢失。

API 结果与请求 ID

API结果

当调用 AgentBay API 时,结果将封装在结果对象中。

# 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

对 AgentBay 的每个 API 调用都会获得一个唯一的请求 ID。结构类似"ABC12345-XXXX-YYYY-ZZZZ-123456789ABC"

请求 ID 的用途
  • 故障排除:如果出现问题,可以提供此 ID 以支持更快地解决问题。

  • 跟踪:帮助跟踪日志中的单个操作。

  • 调试:更容易识别哪个特定的 API 调用有问题。

何时需要使用请求 ID
  • API 调用意外失败。

  • 特定操作的性能问题。

  • 当联系支持人员咨询问题时。

故障排除示例
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