😽
【Azure AI Foundry Agent Service】- Computer useをToolとして使えるように
執筆日
2025/8/22
やること
Azure AI FoundryのAI Agent ServiceのToolでCompuer useが使えるようになりました。
使い方までの手順を書いていきます。
手順
- Playwright ワークスペース を作成
 - Azure AI FoundryとPlaywright ワークスペースを接続
 - コードを実行
 
1. Playwright ワークスペース を作成
- 検索欄でAzure App testingと検索し、Azure App testingをクリック
 - 左タブのワークスペース>Playwrightワークスペースをクリック
 - 
+作成をクリック
 - ワークスペース名、リージョンを選択し構築
 - 設定>アクセス管理をクリック
 - Playwrightサービス..トークンをクリック
 - 
トークンの生成をクリック
 - 生成されたトークンをコピー
 - 概要に戻る
 - 
ブラウザーエンドポイントをコピー
 
2. Azure AI FoundryとPlaywright ワークスペースを接続
- AI Foundry portalを開く
 - 
管理センターをクリック
 - 
プロジェクト>Connected resourcesをクリック
 - 
+新しい接続をクリック
 - 
サーバーレスモデルをクリック
 - ターゲット URI: 1の8でコピーしたブラウザーエンドポイント
 - キー : 1の8でコピーしたトークン
 - 接続 : 任意
 - 6~9を入力後、接続を追加するをクリック
 
3. コードの実行
main.py
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 = "プロジェクト名"
project_client = AIProjectClient(
    endpoint=project_endpoint,
    credential=DefaultAzureCredential()
)
playwright_connection = project_client.connections.get(
    name="2.8で入力した接続名"
)
print(playwright_connection.id)
with project_client:
    agent = project_client.agents.create_agent(
        model="モデルを設定",
        name="test-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://zenn.dev/p/headwatersにアクセスしてください。
        投稿された記事の中から、最新の記事top5の題名を教えて下さい。
        """
    )
    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})")
出力結果
Agent response: https://zenn.dev/p/headwaters にアクセスし、最新の記事top5の題名を調べました。結果は以下の通りです。
- 【Playwright】ブラウザの自動操作をしてみようとしたが...
 - Certiport経由で取得した資格はMicrosoft Learnに紐づけられないらしい
 - 【VSCode/Markdown PDF】- Markdown PDFのエラー発生時に確認する点
 - 【Bicep】デコレーターとコメントの違い
 - 【学習ログ】AIに書いてもらったBicepコードを模写する
 
他にも知りたいことがあれば教えてください!
ちょっと意地悪な質問
main.py
content=""""https://zenn.dev/p/headwatersにアクセスしてください。投稿された記事の総数を教えてください。""")
出力結果
Agent response: HeadwatersがZenn(https://zenn.dev/p/headwaters) に投稿している記事の総数は「83本」です。
main.py
        content=""""
        https://zenn.dev/にアクセスしてください。
        「Log in」をクリックしてください。
        「Googleアカウントをお持ちでない方」をクリックしてください。
        「メールアドレスを入力してください」の欄に、hogehoge@hoge.co.jp(実際には私のメールアドレスです。マスキングしています)
        を入力し、「確認コードを送信」をクリックしてください。
        """
    )
    
出力結果
Agent response: 指定された手順(ログイン画面の遷移とメールアドレスの入力)はすべて実行しましたが、最後の「確認コード を送信」時にreCAPTCHA認証が表示され、自動操作では処理できませんでした。
reCAPTCHAによる制限のため、最終ステップ(確認コード送信)は手動で行う必要があります。
- 画面で表示されたreCAPTCHAの「私はロボットではありません」にチェックし、必要であれば画像選択を手動で完了してください。
 - その後「確認コードを送信」をクリックすると、コードが送られます。
 
他に代替手順やサポートが必要な場合はお知らせください。
Discussion