コンピュータ操作エージェントを評価する、ステップごとに
Potato におけるコンピュータ操作および GUI エージェントの人手評価のウォークスルー:各アクションを判定し、スクリーンショット上でクリックグラウンディングを確認し、ツール呼び出しを 1 つずつレビューする。
コンピュータ操作エージェントはスクリーンショットを読み、アクションを決め、クリックします。その 1 つを評価するとは、各ステップを確認することです:アクションは正しかったか、そしてクリックは、エージェントが名指しした要素に実際に着地したか。タスクが最終的に成功したかどうかだけではありません。タスクの成功は、間違ったボタンに当たったのに先に進んでしまったクリックや、運良く正しかったアクションを隠してしまいます。 Potato は、専用に作られた GUI トラジェクトリサーフェス とツール呼び出しレビューで、これらの実行をレビューします。どちらも YAML で設定されます。
コンピュータ操作エージェント(GUI エージェントまたは OS エージェントとも呼ばれます)は、画面をピクセルまたは DOM として見て、人と同じコントロールを通じて行動します。OSWorld、ScreenSpot、AndroidWorld のようなベンチマークは、タスクの完了を自動でスコアリングします。自動スコアリングは安価で実行する価値がありますが、実行がなぜ失敗したかを教えることはできませんし、運による合格を捕まえることもできません。それが、人手によるステップレビューが埋めるギャップです。
アクションを判定し、クリックが名指しした要素に着地したかを判定する
GUI トラジェクトリで実際に何を判定するのか?
各ステップは、スクリーンショット(エージェントが見たもの)とアクション(エージェントが行ったこと)を対にします。アクションを判定し、ステップがクリック座標を持つ場合は、Potato がスクリーンショット上に描くグラウンディングマーカーを確認します:
- アクションの正しさ — 正しい、要素の誤り、アクションの誤り、またはハルシネーション。
- クリックグラウンディング — 座標は、アクションが名指しした要素に着地したか?
- 結果 — 実行はタスクを完了したか、そして最初にどのステップで誤ったか。
各ステップをレビューする:アクションの正しさに加えてスクリーンショット上のクリックグラウンディング
annotation_schemes:
- annotation_type: gui_trajectory
name: gui_review
description: "For each step: was the action correct and did the click land right?"
steps_key: steps
screenshot_key: screenshot
action_key: action
coord_space: normalized
verdict_options: [correct, wrong_element, wrong_action, hallucinated]各ステップは screenshot、action、そしてオプションの x/y(またはネストした click: {x, y})を供給します。グラウンディングマーカーは、自動メトリクスが最も頻繁に見逃す部分です:モデルは正しいアクションラベルを出力しながら、ターゲットから 10 ピクセルずれた場所をクリックしている場合があり、最終画面の合否判定ではそれが決して表面化しません。
なぜ最初に誤ったステップが最終結果よりも重要なのか?
なぜなら、そのステップこそが、あなたが修正したり、それに対して学習させたりするものだからです。ステップ 9 で失敗した実行が、ステップ 3 でダイアログを読み違えたことに起因しているなら、それは本当はステップ 3 の問題であり、ステップ 9 でラベル付けすると間違った教訓を教えることになります。最初の分岐を捉えることは、プロセス報酬モデル の背後にあるのと同じ考え方です:各ステップでのシグナルが、トラジェクトリ全体を 1 つの数値に押し潰す代わりに、エラーを局所化します。
エージェントのツール呼び出しをレビューするには?
GUI エージェントはツールや関数も呼び出し、それらは独自の形で失敗します:正しい意図、間違ったツール;正しいツール、不正な引数;正しい呼び出し、間違った順序。tool_call_review スキーマは、各呼び出しをトレースから取り出し、ツール名と整形された引数を伴うカードを与えるため、それらを 1 つずつ判定できます(BFCL v4 / MCPMark を踏襲しています)。
あらゆるツール呼び出しを判定する:正しいツール、正しい引数、正しい順序
annotation_schemes:
- annotation_type: tool_call_review
name: tool_review
description: "Judge each tool call: right tool? correct arguments?"
steps_key: steps
# verdict_options: [correct, wrong_tool, wrong_args, wrong_order]ツール呼び出しは、各ステップの tool_calls、tool_call、または action フィールドからレンダリング時に抽出されるため、UI のクリックと API 呼び出しが混在するトラジェクトリを、1 つのタスクで両方の軸からレビューできます。
これをどうセットアップするのか?
各サーフェスは、examples/agent-traces/ の下に実行可能な例を出荷します。そのいずれかを Potato に指定すると、サンプルデータでスキーマを確認できます:
pip install --upgrade potato-annotation
python potato/flask_server.py start examples/agent-traces/gui-trajectory/config.yaml -p 8000あなた自身のデータは、ステップのリストとして投入します。各ステップには、スクリーンショットの URL またはデータ URI と、アクション文字列が含まれます。生のスクリーンショットではなくレンダリングされたページから動作するより広範な Web エージェントについては、Web エージェントの評価 を参照してください。
さらに読む
- マルチモーダルエージェント評価 — GUI、音声、動画、ドキュメントエージェントのための完全なスキーマリファレンス
- コンピュータ操作およびマルチモーダルエージェントの評価 — スキーマ選択の表を含むガイド
- 音声・動画エージェントの評価 — マルチモーダルサーフェスのもう半分
- Potato 2.6.2:完全なオープンソースのエージェント評価スイート — 2.6.x 系列の全容