ブラウザの操作の自動化のニーズが徐々に増えていく中で、Playwright Workspace と連携してAzure AI Foundry Agent Service における最新のアクションツールとして、ブラウザー自動化ツール(プレビュー) が発表されました。
概要
API および SDK を通じて利用可能で、自然言語プロンプトを使って以下のような現実的なブラウザー操作を自動化できます。
- 検索やページナビゲーション
- フォーム入力
- 予約・スケジューリング
基盤には Playwright Workspaces が採用されており、クラウド上で隔離された安全なブラウザー自動化環境を提供します。
これにより、実際のユーザー操作を模倣し、マルチターンの会話でタスクを完了できます。
主な利点
-
自然言語から自動化へ
目的を文章で説明するだけで、ブラウザーベースのワークフローを実行可能。 -
現実的な Web インタラクション
人間の操作に近い方法で、複雑なフォーム入力やマルチステップ処理を自動化。 -
隔離された実行環境
Azure サブスクリプション内の Playwright Workspaces 上でサンドボックス実行。
仮想マシンやブラウザーの手動管理は不要。 -
マルチターン会話
途中でリクエストを修正・追加しながらタスクを進行可能。 -
最新かつ信頼性の高い自動化
「ダウンパース」手法により、Web ページの構造(DOM やアクセシビリティツリー)を解析。
UI の見た目や座標ではなく、要素の役割や aria-label を理解して操作対象を特定。
例:
「送信」ボタンを押す際、role="button"
と"送信"
のテキストを解析して判断。
複雑なフォームでもフィールド名や役割から入力欄を特定。 - 幅広いユースケース
- 予約・スケジューリング: クラスやレストラン予約、アポイントメント設定を自動化。
- 商品検索・レビュー要約: eコマースの商品検索・レビュー収集と要約。
- Web フォーム提出: 書類提出やプロフィール更新を自動化。
- カスタマーサポート: チケット状況やアカウント情報を迅速取得。
動作の流れ
-
ユーザーが自然言語でリクエスト
- 例: 「この URL xxxx から今週利用可能なヨガクラスをすべて表示して」
-
セッションの準備
- Playwright Workspaces に接続し、隔離ブラウザーセッションを開始。
-
ページ解析と推論
- DOM 構造を解析し、必要な操作(クリック、入力、移動)を判断。
-
アクション実行
- サンドボックス環境で操作し、ステップごとに結果を反映。
-
マルチターン処理
- 追加指示や修正を反映しながら完了まで実行。
セキュリティと責任ある利用
ブラウザー自動化は強力ですが、重大なセキュリティリスクも伴います。
AI の判断ミスや悪意あるページによって意図しない操作が行われる可能性があります。
transparency-note
はじめ方
前提条件
- Azure サブスクリプション(Playwright Workspaces と Azure AI Foundry の作成権限)
- Python 3.8+ または他の対応 SDK
セットアップ手順
1. Playwright Workspace の準備
2. AI Foundryへの接続
- Azure AI Foundry ポータルで AI プロジェクトを開く
- 管理センター → Connected resources から新規接続作成: サーバーレスモデルを選択
- ターゲット URI に Browser endpoint、キーにアクセストークン設定
3. エージェント作成
- 上記接続完了すると以下のコードで実行可能
- シナリオは Forms に指定した回答項目を自動入力をして送信をしてもらうこと。
Forms の質問項目
import os
from azure.identity import DefaultAzureCredential
from azure.ai.agents import AgentsClient
from azure.ai.agents.models import MessageRole
from azure.ai.projects import AIProjectClient
project_endpoint = "YOUT_PROJECT_ENDPOINT"
project_client = AIProjectClient(
endpoint=project_endpoint,
credential=DefaultAzureCredential()
)
playwright_connection = project_client.connections.get(
name="YOUR_PLAYWRIGHT_CONNECTION_NAME"
)
print(playwright_connection.id)
with project_client:
agent = project_client.agents.create_agent(
model="gpt-4.1",
name="my-playwright-agent",
instructions="use the tool to respond",
tools=[{
"type": "browser_automation",
"browser_automation": {
"connection": {
"id": playwright_connection.id,
}
}
}],
)
print(f"Created agent, ID: {agent.id}")
thread = project_client.agents.threads.create()
print(f"Created thread and run, ID: {thread.id}")
message = project_client.agents.messages.create(
thread_id=thread.id,
role="user",
content=""""
https://forms.office.com/r/g2KXYtze1u のフォームに以下記入して「送信」して
名前、金光
住所、品川グランドセントラルタワー
属性、社会人
リージョン、東日本
モデル、GPT-5
"""
)
print(f"Created message: {message['id']}")
run = project_client.agents.runs.create_and_process(
thread_id=thread.id,
agent_id=agent.id,
)
print(f"Run created, ID: {run.id}")
print(f"Run finished with status: {run.status}")
if run.status == "failed":
print(f"Run failed: {run.last_error}")
run_steps = project_client.agents.run_steps.list(thread_id=thread.id, run_id=run.id)
for step in run_steps:
print(step)
print(f"Step {step['id']} status: {step['status']}")
step_details = step.get("step_details", {})
tool_calls = step_details.get("tool_calls", [])
if tool_calls:
print(" Tool calls:")
for call in tool_calls:
print(f" Tool Call ID: {call.get('id')}")
print(f" Type: {call.get('type')}")
function_details = call.get("function", {})
if function_details:
print(f" Function name: {function_details.get('name')}")
print()
response_message = project_client.agents.messages.get_last_message_by_role(
thread_id=thread.id,
role=MessageRole.AGENT
)
if response_message:
for text_message in response_message.text_messages:
print(f"Agent response: {text_message.text.value}")
for annotation in response_message.url_citation_annotations:
print(f"URL Citation: [{annotation.url_citation.title}]({annotation.url_citation.url})")
実行結果は、すべて間違いなくFormsに指示通り記入してくれていて、送信完了していました。特にラジオボタンなど小さい選択項目も、精度高く正しく選択してくれていました。
Forms の回答
実行結果
一部省略
Step step_XXXXXXXXX status: completed
Tool calls:
Tool Call ID: call_XXXXXXXXXX
Type: browser_automation
Agent response: 指定された内容でフォームに記入し、「送信」まで完了しました。
- 名前: 金光
- 住所: 品川グランドセントラルタワー
- 属性: 社会人
- リージョン: 東日本
- モデル: GPT-5
送信完了の確認画面も表示されました。ご安心ください。
今後、より高い精度が求められる場面では、この Browser Automation Tool も有力な選択肢の一つになると思います。
引用
補足: Playwright Workspaces とは?
概要
Playwright Workspaces は、Playwright を基盤にした完全マネージドの E2E テストサービス(プレビュー中)。
複数ブラウザー・OS 上で自動テストを行い、インフラ管理不要。
特徴
-
高速化
- 並列リモートブラウザーでの分散実行により完了時間を短縮。
-
複数 OS・ブラウザー対応
- Windows, Linux, Chrome/Android, Safari/iOS など。
-
エンドポイントテスト
- 公開・非公開アプリ、localhost 環境もテスト可能。
-
Playwright サポート
- 既存テストコードを変更せず統合可能。
仕組み
- 異なる OS 上でクラウドホストブラウザーを起動。
- テストコードはローカルまたは CI 上で実行し、クラウドブラウザーを遠隔操作。
- 結果やトレースファイルはローカル保存。
セキュリティ
- リージョン外に顧客データを保存・処理しない。
- 保存データは Microsoft 管理キーで暗号化。
Views: 0