AIエージェント実現にむけての一手 ― Computer Useによる自動操作の検証

近年、「AIエージェント」という言葉が注目を集めています。これは、ユーザーの代わりに目標達成に向けて最適な手段を自律的に選択し、タスクを実行してくれるAIを指します。

たとえば、「出張先までの新幹線の指定席を予約しておいて」や「このデータをまとめておいて」といった指示に対して、AIが自動的にスケジューリングや操作を行ってくれる未来が現実味を帯びつつあります。

本記事では、そうしたAIエージェントの実現に向けたアプローチのひとつとして、2025年4月にMicrosoftより発表された「Computer Use」について、その仕組みと検証結果をわかりやすく解説します。

Computer Use とは? 画面操作をAIが導き出す仕組み

Computer Use は、ユーザーから与えられた 命令文(タスク指示) と、現在の画面の スクリーンショット を入力として受け取り、そのタスクを実現するために 画面上で次に実行すべきGUI操作 を推論・生成するモデルです。

生成される操作内容は、クリック位置、テキスト入力、キー操作などの GUI アクションを含む JSON 形式の構造化データ として返されます。このデータをもとに、ユーザーの目的に沿った一連の操作を自動で実行することが可能になります。

ただし、Computer Use モデル自体には実行機能は備わっていないため、実際に画面を操作するには、Playwright や Selenium などの 外部ライブラリを併用して GUI 操作を実装する必要があります。

前提条件

本記事で紹介する操作は、Azure AI Foundry 上で提供されている Computer Use Preview モデル を用いて実行しています。

尚、このモデルを利用するには、2025年5月時点では Microsoft へのアクセス申請が必要です。*1

以降では、基本的な実装手順について簡潔にご紹介します。また、使用するモデルのバージョンとその特徴は下記になります。

モデルバージョン 特徴
2025-03-11 GPT-4oの視覚能力を活用してスクリーンショットを解析し、与えられたタスクを実行するための GUI 操作を推論・生成します。

モデルの利用手順

Azure AI Foundry上でcomputer-use-previewモデルをデプロイし、デプロイしたモデルを使用します。

  1. 左ペインの「モデル カタログ」からgpt-4oを選択します。
    ※ 見つからない場合は、検索窓に「computer-use-preview」と入力します。
  2. 「このモデルを使用する」をクリックします。今回使用するリージョンは「East US 2」を選択しています。
  3. 画面ポップアップから、「デプロイ」をクリックしてモデルをデプロイします。
  4. 左ペインの[マイアセット] > [モデル+エンドポイント]から、デプロイしたモデルを開き、エンドポイント情報をメモします。
  5. ページ右側にある、「開始する」ページを参考に、デプロイしたモデルの接続性及び、動作確認を実施します。

※以下では、bashで実行した例を紹介します。

1) 環境変数: AZURE_API_KEY の定義を行います。

export AZURE_API_KEY="< 上記「4.」で取得したキー >"

2) curlコマンドにて、Azure OpenAI の Computer Use Preview モデル に対し、テスト入力を送信します。

curl -X POST "< 上記「4.」で取得したターゲットURI >" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AZURE_API_KEY" \
  -d '{
    "model": "computer-use-preview",
    "input": "This is a test",
    "truncation": "auto"
  }'

3) 返値を確認します。今回は正常パターンとして、"status"カラムが「completed」となっていることを確認します

{
  "id": "resp_68302aea617c81909d18a7ec5dda7f010c5323a045f27eb2",
  "object": "response",
  "created_at": 1747987178,
  "status": "completed",
  "error": null,
  "incomplete_details": null,
  "instructions": null,
  "max_output_tokens": null,
  "model": "computer-use-preview",
  "output": [
    {
      "id": "msg_68302aeab924819099d15b1cfc1d72220c5323a045f27eb2",
      "type": "message",
      "status": "completed",
      "content": [
        {
          "type": "output_text",
          "annotations": [],
          "text": "Okay! I'm here to help. Let me know if there's anything you need assistance with."
        }
      ],
      "role": "assistant"
    }
 ### 以下略 ###
}

画面操作環境の実装

Computer Use Preview を使って画面操作を行うには、専用のライブラリの併用が必要です。対応するライブラリはいくつかありますが、本記事では実装例として Playwright を使用したコードをご紹介します。

本編で使用するソースコードは、こちらに公開しています。

使用ライブラリとバージョンについて

本環境で使用しているライブラリやそのバージョン情報は、Dockerfileおよび requirements.txtに記載しています。実行環境の再現や依存関係の確認の際に、あわせてご参照ください。

各関数の役割

以下に各関数・機能モジュールの概要を説明します。

1. validate_coordinates(x, y)(core/agent_core.py)

指定された座標が画面サイズ(."env"で指定)を超えた場合に備えて、座標を画面内に収める補正処理を行います。GUI操作の信頼性を高める 安全ガード処理 を担います。

2. create_response_with_retry(client, **kwargs)(core/agent_core.py)

Azure OpenAI の ."responses.create() "呼び出しに失敗した際、最大5回まで指数バックオフ付きでリトライを試みるラッパー関数です。

  • 499 / 5xx 系エラー に限定して再試行
  • 最終的に失敗した場合は、APIレスポンスの内容を "error_response_dump.json "に保存し、デバッグ可能な状態で停止

3. handle_action(page, action)(core/agent_core.py)

Computer Use モデルの出力であるアクション(クリックや入力など)を Playwright 経由でブラウザに反映 する関数です。

処理される主なアクションタイプは以下の通りです。

  • "click" ... 座標または CSS セレクタによるクリック操作
  • "type" ... 文字列をキーボード入力
  • "keypress" ... 特殊キー(EnterやCtrlなど)を押下
  • "screenshot" ... スクリーンショット命令として検出(実際の撮影は別関数にて)

4. take_screenshot(page, subdir="", prefix="shot")(core/screenshot.py)

現在のブラウザ画面のスクリーンショットを撮影し、保存&Base64形式に変換して返す関数です。

  • ファイルはscreenshots/フォルダ配下に保存
  • 同時に Base64に変換してモデルに送信可能な形式で返却

5. process_model_response(client, response, page, max_iterations)(core/processor.py)

Computer Use モデルの応答を逐次処理し、次のようなステップを繰り返すメイン制御ループです。

  1. モデルのアクションを解釈
  2. Playwright でブラウザを操作(handle_action()
  3. スクリーンショットを取得し、APIへ再送
  4. 応答が続く限り繰り返す

上記は、マルチステップ処理における中核を担います。

6. main()(main.py)

このスクリプトの実行エントリーポイントです。全体の流れを以下の順に制御します。

  1. .envから読み込んだ設定値で Azure OpenAI クライアントを初期化(core/config.py)
  2. GUI付きの Chrome ブラウザを Playwright 経由で起動 (launch_persistent_context)
  3. ユーザーからタスクを CLI で取得
  4. 初期スクリーンショット付きで computer-use-preview を呼び出し
  5. 応答に応じて process_model_response() を実行し、自動ブラウザ操作を繰り返す
  6. ユーザーが exit を入力した時点でブラウザを閉じて終了

アーキテクチャとシステム構成

システム全体図と処理の流れ

1) 作業PC上で、Pythonスクリプト(※browser_agent_local.py)を実行すると、現在のスクリーンショットとユーザーからのタスク命令文が、Azure AI の Responses API に送信されます。
2) Responses API 経由で、Computer Use Preview モデル が呼び出されます。
3) モデルは、スクリーンショットと命令文から実行すべきGUI操作を推論し、その内容を JSON 形式で返却します。
4) 返却された操作内容に基づき、Playwright がブラウザを自動操作し、次の画面に遷移後、新たなスクリーンショットを取得します

※ 上記の 1) ~ 4) の処理を、タスク完了まで繰り返し実行します。

動作デモおよび各ユースケースの紹介

簡単なタスクの例

Computer Use Preview を活用したユースケースの一例として、「虎ノ門の天気を調べてください」といったシンプルな検索を依頼してみます。

1.pythonコマンドでPlaywrightを起動します。

# python browser_agent_local.py

2.「Enter a task (or 'exit'):」のあとに、実行したい命令を入力します。

Enter a task (or 'exit'): 虎ノ門の天気を調べてください

3.ubuntu上から起動したChromeブラウザにて、目的の情報が検索される事が確認できます。

なお、検索結果はモデルの推論結果によって都度変わります。

4.Playwrightを終了するには、exit(もしくは、quit)を実行します。

やや複雑なタスクの例

次に、複数の操作に分解が必要なタスクを試してみます。ユースケースの一例として、「現在地から虎ノ門までの経路を調べてください」といった内容をモデルに依頼します。

1.pythonコマンドでPlaywrightを起動します。

# python browser_agent_local.py

2.「Enter a task (or 'exit'):」のあとに、実行したい命令を入力します。

Enter a task (or 'exit'): 現在地から虎ノ門までの経路を調べてください

3.先ほどと同様に経路確認までは実行されますが、現在地の取得ができないため、検索処理が途中で停止してしまいます。このように、タスクの達成において、「1) 現在地を調べる」⇒「2) 取得した現在地から目的地までの経路を調べる」といった段階的な処理が必要なケースでは、2025年5月時点のモデル(= 2025-03-11-preview)では、うまく対応できない場合があります。

制限事項と注意点

Computer Use Previewの仕様に伴う制約について

Computer Useは、送信されたスクリーンショットをもとに、実行すべきタスクを推論し返却するモデルです。この特性により、いくつかの制約が伴います。

以下に、代表的な制約事項を整理しました。

動作仕様 制約
スクリーンショットと命令から、次にすべきGUI操作を推論・生成
  • 認証情報のキャッシュは保持されない
  • 画面が見切れている場合など、スクリーンショットに映っていない操作は実行できない
処理の各ステップごとに「モデル呼び出し」
+「推論処理」を実施
  • 操作ごとにAPI呼び出しが発生し、処理に遅延が生じる
  • 複雑な連続操作を一括で行うことはできない

対応可能なタスクと現時点での制約事項について

モデルの仕様上、2025年5月時点では、Computer Use を用いたAIエージェントによるタスク実行には対応可能な範囲と、現時点では対応が難しいケースが存在します。

以下に、それぞれの代表例と、対応が難しい場合の考慮すべき対策を整理しました。

  
分類 対策
対応可能なタスク
(現時点で安定して実行可能)
「虎ノ門の天気を調べて」などの
シンプルな検索タスク
現時点で対応が難しいタスク
(実行には工夫や追加対応が必要)
  • ユーザー認証を伴う操作

    例:「Amazonで◯◯を購入して」

Playwright などで、ログイン状態を保持・再利用
  • 複数ステップに分かれる複雑な命令

    例:「現在地から虎ノ門までの終電を調べて」

  
タスクを分解し、個別のシンプルな命令に分けて実行

今後の見通し

現時点では活用範囲が限定的ではあるものの、モデル性能の向上や設計支援の整備が進むことで、今後数年のうちに実業務の一端を担うAIエージェントとしての活用が期待できます。主な展望は以下のとおりです。

モデル性能の向上による実用性の拡大

現状では単純なGUI操作や明示的な指示に対してのみ安定して動作しますが、今後のモデルアップデートで以下の点が改善されることで、実運用への道が拓ける可能性があります。

  • タスクの自動分解や実行順の最適化
  • 複雑な画面構成や動的なUIへの柔軟な対応
  • 曖昧な表現や自然言語による指示の理解力の向上

他ソリューションとの併用・補完関係の確立

Computer Useは、MCPのような推論型ソリューションが対応困難なケース(例:Web UIへの直接操作、非API環境)において、暫定的かつ補完的な手段として有効です。今後は、MCPとのハイブリッド運用や、RPA・ローコードツールとの連携により、より柔軟かつ堅牢な業務自動化基盤の構築が進むと見込まれます。

実業務への応用領域の拡大

モデルの推論精度が向上すれば、以下のような領域での応用が現実味を帯びてきます。

  • カスタマーサポート支援(FAQ検索、フォーム入力補助など)
  • ルーティン業務の自動化(予約、データ転記など)
  • 教育・研究分野における画面操作のナビゲーションやシミュレーション

制約回避の技術支援の充実

現状のComputer Useでは困難な認証処理やセッション管理、マルチ画面対応といった課題については、Playwrightなどの外部ツールを併用することで技術的に補完可能です。

今後はこれらの支援モジュールやラッパーツールが整備され、開発者が扱いやすい形でパッケージ化される動きが加速すると予想されます。

まとめ

本記事では、AIエージェントの一手段として注目される Computer Use の調査結果についてまとめました。

類似のソリューションとしては MCP(Model Context Protocol) なども存在しますが、Computer Use には大きな特長があります。それは、プロトコルに依存せず、対応していないサービスであっても、環境さえ整えれば一定の自動操作が可能であるという点です。

現在のところ、活用場面として「自分で直接操作した方が早い」と判断されるケースが多く、実用性は限定的です。しかしながら、今後のモデルアップデートによってタスク分解や複雑な指示への対応力が向上すれば、ホテル予約や日程調整といった軽微なタスクを自動化するツールとしての実用化が期待されます。

また、MCPが未対応のサービスや特殊な画面構成のアプリケーションに対しても、Computer Useは暫定的な対応手段として有効です。GUIベースの操作が可能であれば、一定のルール内で自動化が実現できるため、補完的な役割としても今後の活用が見込まれます。

Computer Use はまだ発展途上の技術ですが、その汎用性の高さと補完性から、今後の進化次第では実業務での幅広い応用が期待されます。

執筆担当者プロフィール
棚田 祐介

棚田 祐介(日本ビジネスシステムズ株式会社)

インフラエンジニアとして10年間勤務した後、AIエンジニアとして現職に従事。趣味は旅行と食べ歩きの他少々。

担当記事一覧