AIに画面を操作させるとき、座標を覚えて押すか、要素を指定して押すかで壊れやすさが変わります。
画面を5パターン動かして判定したところ、座標で押す方式の成功は2件でした。しかも失敗の1件では、申し込みではなく取り消しを押しています。
画面を見せて、押す場所や打つ文字を返させます。人が画面を操作する動きを、そのまま置き換えた形です。
AIブラウザ操作は、AIに画面を見せ、どこを押すか何を打つかを決めさせる仕組みです。APIが用意されていない画面でも操作できるのが利点になります。
1手でやることは3つです。画面を撮って渡す、次の操作を決めさせる、その操作を実行する。実行したらまた画面を撮って渡します。
Anthropicの説明でも、画面の撮影と、マウスとキーボードの操作を渡す形だとされています。結果を見て次を決める進め方はReActパターンの記事で扱っています。
この選び方が壊れやすさを決めます。次の節で、画面を5パターン動かして実際に判定しました。
費用の性質も押さえておいてください。1手ごとに画面を撮って送るので、手数がそのまま送信量に効きます。文字のやりとりより1手あたりの量が大きくなります。
見落としやすいのが、画面に写っている文字も読み込まれることです。開いたページに「これまでの指示を無視して」と書いてあれば、それも入力として届きます。この問題はプロンプトインジェクション対策の記事で扱っています。
Give Claude screenshot, mouse, and keyboard control of a desktop environment with the computer use tool.原文Claude Platform Docs「Computer use tool」 この内容の有効期限2027-02-17
画面を5パターン動かして判定しました。座標で押す方式の成功は2件で、うち1件は別のボタンを押しています。
AIブラウザ操作で指定の仕方によって壊れやすさがどれだけ違うのかを、画面を動かして判定しました。題材は「申し込む」ボタンを押す指示です。
画面の構造はこちらで用意していますが、3つの指定方法は本当に実行して当たり外れを数えています。
// 座標で操作: 「そのまま」の画面で申し込むボタンがあった中心を覚えて押す
const REMEMBERED = { x: 140 + 120 / 2, y: 80 + 36 / 2 };
function clickByPoint(elems) {
const hit = elems.find((e) =>
REMEMBERED.x >= e.x && REMEMBERED.x <= e.x + e.w &&
REMEMBERED.y >= e.y && REMEMBERED.y <= e.y + e.h);
return hit ? hit.id : null;
}
// 要素で操作: idで指す
function clickById(elems) {
const hit = elems.find((e) => e.id === 'submit');
return hit ? hit.id : null;
}
「申し込む」ボタンを押す指示を、画面が変わっても実行できるか 画面の変化 座標で押す idで指す 文言で探す そのまま 成功 成功 成功 バナー追加 押せない 成功 成功 ボタン順入替 誤: cancel 成功 成功 文言変更 成功 成功 押せない 横幅が狭い 押せない 成功 成功 成功数 座標: 2 / 5 id: 5 / 5 文言: 4 / 5
座標で押す方式は2件しか当たりませんでした。上に帯が1本入って全体が60px下がっただけで、押せなくなっています。
本当の問題は3行目です。ボタンの順が入れ替わった画面で、覚えた座標の位置に取り消しボタンが来ていました。座標としては正しく当たっているので、押しています。
押せなかった2件は、そこで止まります。ですから気づけます。誤って押した1件は止まらず、そのまま次に進みます。
idで指す方式は5件すべて当たりました。位置が変わっても順が変わっても、目印が同じなら見つかります。
ただし前提があって、目的の要素に目印が振られている必要があります。振られていない画面では使えません。
文言で探す方式は4件成功しました。外したのはボタンの表示が「申し込む」から「申込みへ進む」に変わった場合です。
この方式は目印が要らないので使いやすいのですが、表示の変更に弱いという性質があります。表示が変わりうる箇所では、別の目印を用意してください。
座標は位置がずれるだけで外れる。しかも別のものを押す。
After each step, take a screenshot and carefully evaluate if you have achieved the right outcome.原文Claude Platform Docs「Computer use tool」 この内容の有効期限2027-02-17
目印で指すのが第一です。1手ごとに結果を確認させ、取り消せない操作には承認を挟んでください。
AIブラウザ操作を安定させるには、指定の仕方と、実行後の確認の2つを押さえます。前の節の結果が、指定の仕方の材料になります。
4番目に頼るのは、他に手がない場合だけにしてください。外れるだけならまだしも、別のものを押す危険があります。
指定を工夫しても外れるときは外れます。ですから実行したあとに確認を挟みます。Anthropicも、各手のあとに画面を撮って、狙った結果になったかを注意深く判断するよう指示する書き方を案内しています。
確認を挟めば、取り消しを押してしまった時点で気づけます。前の節の3行目のような事故が、次の手に進む前に止まります。
確認だけでは足りない場面もあります。送信、決済、削除。押してしまってから気づいても遅い操作です。
こうした操作の手前には人の承認を置いてください。承認の設計はHITLの記事で扱っています。
もうひとつ固有の危険があります。画面に写った文字が、指示として読まれることです。Anthropicも、画面の中に指示の混入が見つかった場合、次の操作に進む前に利用者の確認を求めるよう仕向ける仕組みがあると述べています。
つまり仕組みの側でも警戒されている経路です。詳しくはプロンプトインジェクション対策の記事で扱っています。
目印で指せない画面では、実行後の確認が唯一の歯止めになる。
When these classifiers identify potential prompt injections in screenshots, they will automatically steer the model to ask for user confirmation before proceeding with the next action.原文Claude Platform Docs「Computer use tool」 この内容の有効期限2027-02-17
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る