コンピュータ使用

Agent Platform Computer Use サンドボックスは、エージェントが操作できる安全な分離されたブラウザ環境を提供します。これらのサンドボックスを使用すると、エージェントは人間による操作(クリック、サイトの移動、スクリーンショットの取得など)を模倣したタスクを自動化できます。

仕組み

コンピュータの使用サンドボックスを作成すると、Gemini Enterprise Agent Platform は、ウェブブラウザ エージェントを実行するコンテナ化された環境をプロビジョニングします。ブラウザは次の 2 つの方法で制御できます。

  • API リクエスト: URL への移動、要素のクリック、テキストの入力などのアクションを実行するコマンドをサンドボックスに送信します。
  • ブラウザ制御: 標準の Chrome DevTools Protocol(CDP)接続を使用してブラウザに接続し、ブラウザ自動化ツール(Playwright など)を使用してブラウザを自動化できます。

考慮事項

プレビュー期間中、Agent Platform Computer Use Sandbox のレイテンシは、トラフィック量が少ない場合に最適化されます。トラフィック量が多いと、レイテンシが一時的に増加する可能性があります。

API を使用してブラウザを制御する

API リクエストをサンドボックスに送信して、一般的なブラウザ操作を実行できます。サンドボックスは、隔離された環境内でこれらのアクションの実行を処理します。

サポートされているアクションは次のとおりです。

  • URL に移動する。
  • 特定の座標をクリックする。
  • フィールドにテキストを入力します。
  • スクリーンショットを撮る。

コマンドの送信方法の例については、コンピュータの使用のクイックスタートをご覧ください。

CDP 接続を使用してブラウザを制御する

より高度な自動化を行うには、Chrome DevTools Protocol(CDP)接続を介してサンドボックス ブラウザに接続します。この方法では、Playwright などの標準のブラウザ自動化ツールを使用してウェブページを操作できます。

Playwright をサンドボックスに接続するには:

  1. Python SDK の generate_browser_ws_headers メソッドを使用して、サンドボックスの WebSocket URL と必要なヘッダーを生成します。

      service_account_email = "SERVICE_ACCOUNT_EMAIL"
      ws_url, ws_headers = client.agent_engines.sandboxes.generate_browser_ws_headers(
          sandbox_environment=sandbox,
          service_account_email=service_account_email,
      )
    
  2. Playwright の connect_over_cdp メソッドを使用して接続を確立します。

    生成された WebSocket URL とヘッダーを使用して、Playwright を使用して CDP 経由で接続します。

      import asyncio
      from playwright.async_api import async_playwright
      import nest_asyncio
      nest_asyncio.apply()
    
      async def connect_over_cdp(ws_url, ws_headers):
          async with async_playwright() as p:
              try:
                  browser = await p.chromium.connect_over_cdp(
                      endpoint_url=ws_url,
                      headers=ws_headers
                  )
                  print("Successfully connected to browser over CDP.")
    
                  # You can now interact with the browser
                  page = browser.contexts[0].pages[0]
                  await page.goto("https://www.example.com")
                  print(f"Page title: {await page.title()}")
    
                  await browser.close()
                  print("Browser connection closed.")
              except Exception as e:
                  print(f"An error occurred: {e}")
    
      # Run CDP connection
      asyncio.run(connect_over_cdp(ws_url, ws_headers))
    

ライブ配信の視聴

[Computer Use](コンピュータの使用)サンドボックスはライブ ストリーミング ビュー(VNC)をサポートしているため、エージェントの操作をリアルタイムで視覚的にモニタリングできます。エージェントの動作をデバッグして観察できます。

たとえば、noVNC を使用して WebSocket 経由でサンドボックスに接続できます。

次のステップ