Computer Use

Agent Platform 컴퓨터 사용 샌드박스는 에이전트가 상호작용할 수 있는 안전하고 격리된 브라우저 환경을 제공합니다. 이러한 샌드박스를 통해 에이전트는 클릭, 사이트 탐색, 스크린샷 촬영과 같은 인간의 상호작용을 모방하는 작업을 자동화할 수 있습니다.

작동 방식

컴퓨터 사용 샌드박스를 만들면 Gemini Enterprise Agent Platform에서 웹브라우저 에이전트를 실행하는 컨테이너화된 환경을 프로비저닝합니다. 다음 두 가지 방법으로 브라우저를 제어할 수 있습니다.

  • API 요청: 샌드박스에 명령어를 전송하여 URL로 이동하거나, 요소를 클릭하거나, 텍스트를 입력하는 등의 작업을 실행합니다.
  • 브라우저 제어: 표준 Chrome DevTools 프로토콜 (CDP) 연결을 사용하여 브라우저에 연결하여 브라우저 자동화 도구 (예: Playwright)를 사용하여 브라우저를 자동화할 수 있습니다.

고려사항

프리뷰 기간 동안 Agent Platform 컴퓨터 사용 샌드박스 지연 시간은 트래픽 양이 적은 경우에 최적화됩니다. 트래픽 양이 많으면 일시적으로 지연 시간이 길어질 수 있습니다.

API를 사용하여 브라우저 제어

샌드박스에 API 요청을 보내 일반적인 브라우저 작업을 실행할 수 있습니다. 샌드박스는 격리된 환경 내에서 이러한 작업의 실행을 처리합니다.

지원되는 작업은 다음과 같습니다.

  • URL로 이동합니다.
  • 특정 좌표를 클릭합니다.
  • 필드에 텍스트를 입력합니다.
  • 스크린샷 찍기

명령어를 전송하는 방법의 예는 컴퓨터 사용 빠른 시작을 참고하세요.

CDP 연결을 사용하여 브라우저 제어

고급 자동화의 경우 Chrome DevTools 프로토콜 (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,
)
  1. 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))

라이브 스트리밍 보기

컴퓨터 사용 샌드박스는 라이브 스트리밍 뷰 (VNC)를 지원하므로 상담사의 작업을 실시간으로 시각적으로 모니터링할 수 있습니다. 에이전트의 동작을 디버그하고 관찰할 수 있습니다.

다음 단계