Skip to Content
Docs03. 実装ブラウザ・コンピュータ操作の実装

この記事の音声は準備中です。

音声の一覧・再生リストへ

ブラウザ・コンピュータ操作の実装

この記事の目的

コンピュータ操作型 Agent画面(スクリーンショット)を観測し、マウス・キーボード操作で GUI を直接操作する Agent の類型。(画面を見てマウス・キーボードで操作する Agent)を実装するときの設計判断を扱います。操作ループの組み方、要素の特定と安定化、待機と成功検証、「操作より API」の徹底、安全策(サンドボックスモデルが生成したコードの実行やコンピュータ操作を、本番システムから隔離された使い捨て環境(ネットワーク・資源制限付き)で行う仕組み。・確認ゲート・ドメイン制限)、デバッグと評価を、自分のユースケースに合わせて選べるようになります。

対象読者

前提知識

本文

概要: 実装は「脆さと実害」への対処が中心

コンピュータ操作の原理は通常の Agent ループ と同じですが、実装の労力の大半は「座標依存の脆さ」と「誤操作の実害」への対処に費やされます。まず判断すべきは、そもそもコンピュータ操作を使うかです(コンピュータ操作型・マルチモーダル Agent の設計判断のとおり、API があるなら API が第一選択)。使うと決めた後の実装は、次の流れで組み立てます。

ブラウザ・コンピュータ操作の実装: 概要: 実装は「脆さと実害」への対処が中心の図ブラウザ・コンピュータ操作の実装: 概要: 実装は「脆さと実害」への対処が中心の図
ブラウザ・コンピュータ操作の実装: 概要: 実装は「脆さと実害」への対処が中心の図
図を元の大きさで表示

図の中をスクロールして読めます。キーボードでは図の領域へ Tab で移動し、矢印キーを使います。読み終わったら、この見出しをもう一度選ぶと閉じます。

ブラウザ・コンピュータ操作の実装: 概要: 実装は「脆さと実害」への対処が中心の図ブラウザ・コンピュータ操作の実装: 概要: 実装は「脆さと実害」への対処が中心の図

操作ループの実装

  • 観測 → 行動案 → 権限確認・必要時の承認 → 実行 → 待機 → 検証を 1 周とします。承認は副作用の発生前に行い、承認後に対象・送信内容・画面状態が変わった場合は再観測して承認を取り直します。行動のたびに画面を撮り直すため、不要な周回を減らす設計がレイテンシと画像処理コストを抑えます
  • アクションの粒度: モデルには「座標クリック」「文字入力」「キー送信」「スクロール」「待機」などをツールとして渡します(ツール定義の設計)。ベンダーがコンピュータ操作向けのツール定義を公式提供している場合はそれに従います
  • 上限を必ず設ける: 周回数・時間・コストの上限を設定し、超過で安全に停止します。GUI 操作はループが迷走したとき青天井にコストを食うため、上限は必須です(コスト管理)
  • 状態を持たせる: 「今どのステップか・何を達成済みか」を作業状態として保持し、長い手順を見失わないようにします(メモリと状態管理)

要素特定と安定化

座標依存(「(512, 384) をクリック」)は、解像度・ウィンドウサイズ・UI 変更で簡単に壊れます。脆さを下げる手立てです。

  • アクセシビリティツリー / DOM を併用する: ブラウザ操作なら、スクリーンショットだけに頼らず DOM やアクセシビリティツリーから要素を特定できると格段に安定します。「送信ボタン」を座標でなく要素として指定できれば、レイアウト変更に強くなります
  • 環境を固定する: 解像度・ウィンドウサイズ・ズーム・フォント・言語を固定します。同じ環境なら座標のばらつきが減ります
  • 相対的な指定を優先する: 絶対座標より「このラベルの隣のボタン」のような相対・意味ベースの指定を優先します
  • ブラウザ専用ツールを検討する: 汎用のスクリーンショット操作より、ブラウザ操作に特化した仕組み(DOM アクセス・要素セレクタを持つもの)の方がブラウザ内タスクでは安定します。「画面操作の Agent」より「ブラウザ操作の Agent」の方が対象が絞れる分だけ堅牢になります

待機と成功検証

GUI 自動化の失敗の多くは「まだ描画されていない画面に対して操作した」というタイミング問題です。

「操作より API」の原則

これは設計判断(コンピュータ操作型・マルチモーダル Agent)の実装への落とし込みです。実装段階でも、操作を減らす機会を常に探します。

  • 手順を棚卸しして API 化できる区間を切り出す: GUI 操作 20 手順のうち 15 手順が API で置換できるなら、コンピュータ操作は残り 5 手順に限定します。ハイブリッド構成が現実的な最適解です
  • ログイン・認証は操作させない: 認証は最も壊れやすく最も危険な区間です。可能ならセッション・クッキーの注入や専用アカウントの事前ログインで、Agent に認証情報を操作させない設計にします
  • データ入力はまとめて渡す: 1 文字ずつ入力させるより、フォーム値をまとめて設定できる経路(DOM 操作・API)があればそちらを使います

安全策

コンピュータ操作は「誤操作がその場で実害になる」ため、安全策は任意ではなく前提です(コンピュータ操作型・マルチモーダル Agent の 3 リスクへの対処)。

評価とデバッグ

  • 軌跡を全部残す: 各周回のスクリーンショット・決定・行動・結果を記録します。失敗が「どの画面で・何を誤ったか」まで遡れないと、脆い自動化は直せません(可観測性とトレーシング、軌跡(trajectory)評価)
  • タスク成功率で評価する: 単発の成否でなく、代表的なシナリオを複数回実行した成功率で品質を測ります。GUI は非決定性が高いため、1 回成功しても再現するとは限りません(Agent 評価の基礎)
  • 公開ベンチマークは参考程度に: Web 操作系の公開ベンチマークは能力の目安になりますが、順位は自タスクの成否と直結しません。自前シナリオでの測定を正とします
  • UI 変更の検知: 定期実行する自動化では、対象 UI の変更で静かに壊れます。成功率の低下を監視し、変更を早期に検知する運用を組みます

toolset 更新時の操作境界

2026-08-19 に Claude API の computer use / browser use が GA となり、computer_toolset_20260801 / browser_toolset_20260801 が提供されています。computer 側は複数操作のまとめ実行、既定の zoom、configs による個別設定を持ち、browser 側はページ要素参照を利用します。旧 beta からはリクエスト形状と返却ツールの処理を移行します。旧 beta が即時廃止されたわけではありません。

まとめ実行でも、権限と必要な承認は副作用の前に確認します。途中の画面遷移によって次の対象が変わる場合や、送信・削除を含む場合は操作列を分けて再観測します。ファイル upload は opt-in の設定と送信先を確認し、GA を理由に外部アップロードを自動許可しません。Files / Skills の GA と、従来 beta header 使用時の互換レスポンスも別に確認します。

実務での注意点

アンチパターン

  • API がある操作を画面操作で実装する → 座標・画面変更への依存と誤クリックのリスクが増える → 手順を棚卸しし、API・MCPツールやデータソースを LLM アプリケーションに接続するための標準プロトコル。概要は ツール使用、接続の実務は ツール接続標準(MCP とエコシステム) で置換できる区間を先に切り出す。API のツール結果にもインジェクションは入りうるため、認可・送信前承認は維持する
  • 絶対座標に依存する → 解像度・レイアウト変更で一斉に壊れる → DOM・アクセシビリティツリーでの要素特定と環境固定で安定させる
  • 固定時間 sleep で待つ → 遅すぎて無駄か、早すぎて未描画画面を操作するかの二択になる → 要素出現・遷移完了を条件にした明示的な待機にする
  • 成功を最後のスクリーンショットだけで判定する → 入力ずれなどの静かな失敗が蓄積する → データ側(API・DB)での検証と二重化する
  • 開発者の実アカウント・実環境で動かす → 誤操作とインジェクションが本物の権限・データに直撃する → 専用サンドボックスと最小権限アカウントを最初に用意する
  • 不可逆操作に承認を付けない → 誤った送信・購入・削除がそのまま実行される → 送信・購入・削除の前に人間の承認ゲートを置く

チェックリスト

  • 対象手順を棚卸しし、API・MCP で置換して GUI に残す区間を最小化した
  • 要素特定を座標依存から DOM・アクセシビリティツリー併用に寄せた
  • 解像度・ウィンドウサイズ・言語などの環境を固定している
  • 待機が固定 sleep でなく明示的な条件(要素出現・遷移完了)になっている
  • タスク成功を画面とデータ側の両方で検証している
  • 専用サンドボックス・最小権限アカウントで動かしている
  • 不可逆操作の前に承認ゲートがあり、却下・期限切れでは実行されず、承認対象の変更時は再承認になる
  • 緊急停止手段がある
  • アクセス可能ドメイン・操作種別が許可リストで絞られている
  • 周回数・時間・コストの上限があり、超過で安全に停止する
  • 各周回の軌跡(スクリーンショット・行動・結果)を記録している

関連トピック

参考資料

TODO・未確認事項