すべてのプロダクト
Search
ドキュメントセンター

AgentBay:基本概念

最終更新日:Mar 14, 2026

このトピックでは、AgentBay SDK を使用する際に理解が必要な基本概念について説明します。

AgentBay クラス

コア機能

AgentBay クラスは、Alibaba Cloud サービスと連携するための主なインターフェイスです。以下のコア機能を提供します:

  • セッションマネージャー:クラウドセッションの作成、削除、および管理を行います。

  • API クライアント:AgentBay クラウドサービスとのすべての通信を処理します。

  • 認証ハンドラー:API キーおよびセキュリティを自動的に管理します。

基本的な使い方

# 1. クライアントを初期化
agent_bay = AgentBay()

# 2. セッションを作成(デフォルトで linux_latest を使用)
session = agent_bay.create().session

# 3. セッションをタスクに利用
# ... ご利用の自動化タスク ...

# 4. リソースをクリーンアップ
agent_bay.delete(session)

セッション

セッションとは、ユーザーとクラウド環境との間の接続です。

主な特徴

  • 一時的:必要に応じて作成され、完了後に削除されます。

  • 分離済み:各セッションは他のセッションから完全に独立しています。

  • 課金対象:セッションがアクティブな時間に対して課金されます。

基本的な使い方

# セッションを作成
session = agent_bay.create().session

# セッションをタスクに利用
session.command.execute_command("echo 'Hello World'")

# 完了後は必ずリソースをクリーンアップ
agent_bay.delete(session)

セッションのライフサイクル

セッションの作成 → セッションの利用 → セッションの削除
      ↓             ↓              ↓
  リソース割り当て   操作の実行     リソース解放

セッションの解放

セッション終了後は、クラウドリソースを解放するために必ず解放処理を行う必要があります。解放方法には2 種類あります。

手動解放(推奨)

# 完了時に明示的に削除
agent_bay.delete(session)

自動タイムアウト解放

手動でセッションを削除しない場合、タイムアウト後に自動的に解放されます。

  1. Alibaba Cloud AgentBay コンソール にアクセスします。左側のナビゲーションウィンドウで、ポリシー管理 を選択します。

  2. ポリシーの作成 をクリックし、非アクティブなデスクトップの解放 を有効化します。

  3. MCP とのインタラクション終了後のデスクトップ解放 および ユーザーとのインタラクション終了後のデスクトップ解放 のタイムアウト値を入力します。

  4. ポリシーの作成 をクリックします。

  5. 左側のナビゲーションウィンドウで、サービス管理 をクリックします。API キーを検索し、操作 列の ⋮ アイコンをクリックします。

  6. ポリシーの表示/関連付け を選択します。関連付け済みポリシー セクションで、ポリシーの関連付け をクリックし、先ほど作成したポリシーを選択します。その後、関連付けの確認 をクリックします。

    説明

    各 API キーには 1 つのポリシーのみ関連付けることができます。API キーを作成すると、デフォルトポリシーが自動的に関連付けられます。関連付けを変更するには、まず 関連付け解除 をクリックする必要があります。

イメージ

公式 OS イメージ

下記の表は、AgentBay が提供する最新の公式 OS イメージの一覧です。

イメージ ID

環境

主な用途

linux_latest

Cloud PC

汎用コンピューティングおよびサーバータスク(未指定時はデフォルト)

windows_latest

Cloud PC

汎用 Windows タスク、.NET 開発、Windows アプリケーション

browser_latest

Cloud Browser

Web スクレイピング、ブラウザ自動化、ウェブサイトテスト

code_latest

Code Sandbox

コーディング、開発ツール、プログラミングタスク

mobile_latest

Cloud Phone

モバイルアプリのテストおよび Android 自動化

説明
  • image_id を指定しない場合、AgentBay はデフォルトで linux_latest を使用します。

  • 特定の要件に応じて、AgentBay コンソールでカスタムイメージを作成・利用できます。

適切なイメージの選択

Windows 環境の例

from agentbay.session_params import CreateSessionParams

# Windows 環境を作成し、メモ帳を自動化
params = CreateSessionParams(image_id="windows_latest")
session = agent_bay.create(params).session

# メモ帳アプリケーションを起動
session.computer.start_app("notepad.exe")
# 戻り値:起動済みプロセス情報を持つ ProcessListResult

# メモ帳にテキストを入力
session.computer.input_text("Windows からこんにちは!")
# 戻り値:成功ステータスを持つ BoolResult

agent_bay.delete(session)

ブラウザ環境の例

# ブラウザ環境を作成
params = CreateSessionParams(image_id="browser_latest")
session = agent_bay.create(params).session

# 初期化およびナビゲーション
from agentbay.browser import BrowserOption
session.browser.initialize(BrowserOption())
session.browser.agent.navigate("https://www.baidu.com")
print("Web ナビゲーションが成功しました")

agent_bay.delete(session)

Code Sandbox 環境の例

# 開発環境を作成してコードを実行
params = CreateSessionParams(image_id="code_latest")
session = agent_bay.create(params).session

# コードを実行
result = session.code.run_code("print('CodeSpace からこんにちは!')", "python")
# 戻り値:出力を持つ CodeExecutionResult
# 例:result.result = "CodeSpace からこんにちは!"

agent_bay.delete(session)

Cloud Phone 環境の例

# Android 環境を作成し、HOME キーを送信
params = CreateSessionParams(image_id="mobile_latest")
session = agent_bay.create(params).session

# HOME キーを押してホーム画面に戻る
from agentbay.mobile import KeyCode
session.mobile.send_key(KeyCode.HOME)
# 戻り値:成功ステータスを持つ BoolResult
# 例:result.success = True(Android のホーム画面に戻ります)

agent_bay.delete(session)

データの永続性

一時データ

  • デフォルトでは、セッション内のすべてのデータは一時的です。

  • セッション終了時にすべてのデータが失われます。

  • タスク処理、一時ファイル、キャッシュなどに利用します。

# このデータはセッション終了時に失われます
session.file_system.write_file("/tmp/temp_data.txt", "これは消えます")

永続データ

  • セッション間でデータを保持できます。

  • 明示的に構成する必要があります。

  • プロジェクトファイル、構成、重要な結果などに利用します。

from agentbay import ContextSync

# 永続ストレージを作成
context = agent_bay.context.get("my-project", create=True).context
context_sync = ContextSync.new(context.id, "/tmp/persistent")

# 永続データ付きでセッションを作成
params = CreateSessionParams(context_syncs=[context_sync])
session = agent_bay.create(params).session

# このデータはセッション間で保存されます
session.file_system.write_file("/tmp/persistent/important.txt", "これは永続化されます")
説明

データを保存するには Context を使用する必要があります。それ以外の場合、セッション終了時にデータは完全に失われます。

API 結果およびリクエスト ID

API 結果

AgentBay の API を呼び出すと、結果は結果オブジェクトにラップされて返されます。

# 例:API 呼び出し
screenshot = session.computer.screenshot()

# 結果オブジェクトには以下のフィールドが含まれます:
print(screenshot.success)     # True/False — 操作が成功したかどうか
print(screenshot.data)        # 実際のデータ(スクリーンショットの URL など)
print(screenshot.request_id)  # トラブルシューティング用のリクエスト ID

リクエスト 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"コード実行に失敗しました!リクエスト ID: {result.request_id}")
    # より迅速なサポートを得るために、このリクエスト ID をサポートチームにご提供ください