1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

判断特化AI「Jev」はUX検証に使える? 正解手順なしでWebサイトを探索させてみた

1
Posted at

Jev は、文章の生成ではなく判断に特化した AI モデルです。
現在の状態と選択肢を渡して、その中から一つを選ばせることができます。
Jev の公式ドキュメント

これを知って、Web サイトの UX 検証と相性がよさそうだと思いました。
サイトを使う人も「どこを押せばいいか」「これで手続きが終わったか」を判断しているからです。
UX のすべてではありませんが、この判断のしやすさなら検証できそうです。

そこで、Jev に目的と画面情報を渡し、正解手順を教えずにサイトを操作させてみました。
自作ページで 24 回試したところ、素直な導線では 12 回すべて成功し、分かりにくくした導線では途中停止やループが起きました。
ただし、これだけで人間にとっての使いやすさを測れたとは言えません。

「請求書を保存したい」だけでたどり着けるか

操作手順を指定する E2E テストなら、「契約情報 → 請求関連 → ダウンロード」が動くことを確認できます。
でも、初めて使う人が「請求書は契約情報の中にある」と分かるかは別の話です。

今回 Jev に渡すのは、次のような目的です。

先月の請求書を PDF で保存したい

役割はシンプルで、Jev が次の操作を選び、Playwright が実行します。

画面の情報を取得 → Jev が操作を選択 → Playwright が実行
       ↑                                  │
       └──────── 操作結果と履歴を追加 ──────┘

Jev に渡すのは、目的、画面内の文言や操作候補、これまでの操作履歴です。
リンク先 URL やセレクター、正解ルート、成功判定の内部フラグは渡しません。
スクリーンショットは記録用で、Jev が画像を見て操作する構成ではありません。

候補にはクリックやスクロールのほか、「完了した(done)」「次の操作が分からない(stuck)」も用意しました。
操作のたびに情報を取り直しますが、ブラウザーのセッションは同じ試行中ずっと維持します。

導線を変えると、たどり着けなくなった

同じ機能を持つ、2 種類のマイページを用意しました。
Good は「請求書」「通知設定」が見える画面です。

Good:請求書と通知設定がマイページに表示されている

Bad は「利用情報」「各種設定」「その他」といった抽象的な名前にし、目的の機能を下の階層へ移しました。
一部の文字を小さくし、別の案内も目立たせています。

Bad:抽象的なラベルと大きなキャンペーン案内を配置した画面

目的は「先月の請求書を保存」「メール通知を停止」の 2 つ。
UI 2 種類 × 目的 2 種類 × 文字サイズ情報の有無 × 各 3 回で、計 24 試行です。
この比較では、成功はスクリプト側で判定しました。

  • Good:12 回すべて成功。どちらの目的も 2 操作で完了。
  • Bad の請求書:6 回すべて、2 操作後に stuck
  • Bad の通知停止:5 回が 9 操作後にループ終了。
  • 残る 1 回は、3 操作後に API タイムアウト。導線の失敗とは分けて扱います。

Bad で請求書を探した経路は、こうなりました。

マイページ → 利用情報 → 利用履歴 → stuck

請求書は「契約情報」の先にありますが、Jev は「利用履歴」へ進みました。
そこには利用回数しかなく、戻って探し直すのではなく終了しています。
通知停止では「各種設定」から「お知らせ」を開き、「マイページへ戻る」で戻る操作などを繰り返しました。

ただし、今回はラベル、階層、文字サイズなどを同時に変えています。
何が原因だったかを切り分ける実験にはなっていません。

また、同じ画面について文字サイズの数値を Jev に渡す/渡さない比較では、API エラーで中断した試行を除き、選ばれた経路に差はありませんでした。
これは人間にとって文字サイズが重要でない、という意味ではありません。

結果はこんなレポートで確認できる

実行後は HTML レポートで、試行ごとの終了理由、操作数、所要時間、選んだ経路を確認できます。
下は請求書を探して途中停止した試行です。

試行結果:2操作で途中停止し、選んだ経路が表示される

詳細を開くと、各判断時点の画面と候補の確率も見られます。
この場面では stuck が 40% でした。
人間の 40% が諦めるという意味ではありません。

利用履歴で停止した画面と、Jevが返した候補ごとの確率

結果を見て面白かったのは、失敗の内訳まで追えることでした。
請求書を探して「利用履歴」を選んだ経路を見ると、失敗件数だけを見るよりも「このラベルで目的が伝わるか」を考えやすく感じます。
人間も同じ場所で迷うかは別として、画面を見直すきっかけにはなりそうです。

「成功した」と「終わったと分かる」は別

最初は、スクリプトが成功を検知したところで探索を止めていました。
でも、それでは完了が利用者に伝わるかを確認できません。

そこで、処理成功後も Jev に画面情報を渡し、done を選ぶか確認できるようにしました。
「成功したのに探索を続ける」「失敗しているのに完了だと思う」を分けて記録するためです。
内部の成功フラグは見せず、完了メッセージなどを判断材料にします。

追加の 4 試行では、すべて 2 操作で成功し、次の判断で done を選びました。
今回は成功と完了認識が一致しています。
完了の分かりにくい画面で違いが出るかは、今後の検証です。

人間の代わりではなく、導線を見直す手がかりに

Jev を使うと、正解手順を教えずに操作を選ばせ、その経路を記録できました。
自作ページでは導線の違いによる結果の差も出ています。

ただし、Jev が迷うことと人間が迷うことは同じとは限りません。
次は同じ目的で人間にも操作してもらい、止まる場所が重なるかを確かめたいです。
重なるなら導線の見直しに使えそうですし、Jev だけが止まるなら入力情報や実行器を見直す必要があります。

PDF の内容を Jev に渡す処理など、観察できる情報を増やすことも今後の課題です。

「この UI は何点」と採点するより、まずは「この目的だと、ここで止まった」を集める。
今回の結果からは、その使い方をもう少し試してみたいと思いました。

実装・実験条件の補足
  • Node.js 24.14.0、TypeScript、Playwright 1.63.0、AI SDK 7.0.105 を使用。デモ画面は React と Vite。
  • Jev は Vercel AI Gateway の typesafe-ai/jev を利用。操作選択には Choice を使用しています。呼び出し仕様
  • 主実験の 24 試行は操作対象を手書きで定義。完了認識の追加検証では、Good の 2 目的を、手書き版と画面からリンクやボタンを自動抽出する版で各 1 回、計 4 回実行しました。
  • 請求書の成功判定は対象月のファイル名と PDF ヘッダー、通知停止は完了表示です。内容全体やバックエンドの永続化までは検証していません。
  • デモの基準日は 2026 年 9 月 19 日に固定。最大 20 操作とし、同じ URL・観察状態・操作の組み合わせが 3 回目に現れたら実行前に停止します。
  • 主実験前後の Gateway 残高差は約 0.0043 ドル。試行別の請求集計ではなく、追加検証の費用も含みません。
  • 主実験時点のコードをコミットで固定できておらず、モデル内部のバージョンも未固定です。本記事は保存済みログに基づく試行記録です。
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?