エージェントの軌跡をアノテーションする
AI エージェントの軌跡を段階的にアノテーションする方法、エラー分類体系、深刻度スコアリング、軌跡レベルの成功判定を、Potato の軌跡評価で解説します。
軌跡とは、エージェントがたどったステップの全系列、つまりその思考、ツール呼び出し、観測結果のことです。軌跡をアノテーションするとは、その実行を全体として評価し、個々のステップがどこで誤ったかを、各エラーごとにカテゴリと深刻度を付けて記録することです。 Potato はエージェントの軌跡をカスタムルーブリックで段階的にアノテーションでき、無料かつセルフホスト型で、報酬モデルや的を絞ったデバッグの背後にあるデータを生み出します。
機能リファレンスはエージェントアノテーションを参照してください。
軌跡をアノテーションするとき何を収集しますか?
- 全体の結果:成功、部分的成功、または失敗。
- ステップごとの判定:各ステップについて、正しかったか、不要だったか、誤っていたか。
- エラーカテゴリ:あるステップがなぜ誤っていたか(誤ったツール、引数の誤り、ハルシネーション、ループ、安全でない操作…)。
- 深刻度:各エラーがどれほど深刻か。多くの場合スコアに重み付けされます。
Potato で軌跡評価をどう設定しますか?
Potato の trajectory_eval タイプは各ステップをカードとして描画し、深刻度の重みを持つステップごとのエラー分類体系を付与します。
yaml
annotation_schemes:
- annotation_type: trajectory_eval
name: step_evaluation
description: "Evaluate each step for correctness and mark any errors."
steps_key: steps
error_types:
- {name: reasoning, subtypes: [logical_error, factual_error, planning_error]}
- {name: execution, subtypes: [wrong_tool, wrong_args, api_error]}
- {name: safety, subtypes: [harmful_action, data_leak, scope_violation]}
severities:
- {name: minor, weight: -1}
- {name: major, weight: -5}
- {name: critical, weight: -10}
show_score: true深刻度の重みは軌跡スコアへと集約されるので、実行をランク付けし、モデルのバージョン間で退行を追跡できます。
エージェントのエラー分類体系はどう設計しますか?
分類体系はこのタスクの核心です。小さく、網羅的で、相互に排他的に保ちましょう。実用的な出発点となるセット:
- 推論エラー:誤った結論、証拠の無視、まずい計画。
- 実行エラー:誤ったツール、不正な形式の呼び出し、結果の取り扱いミス。
- 安全性エラー:安全でない操作、範囲外の振る舞い、データの漏えい。
自由記述の「その他」を加えて、アノテーターが新種の失敗を無理に既存項目へ押し込めずに済むようにし、繰り返し現れる「その他」のメモは名前付きのカテゴリへ昇格させます。
品質上の考慮点
- ステップの正しさに関する一致度はたいてい高く、エラーカテゴリに関する一致度は低めです。両方を測定してください。アノテーター間一致度を参照。
- 長い軌跡は疲労を招きます。長さを制限するか、ページ分割しましょう。
- 学習にとっては「最初に誤ったステップ」が最も重要なことが多いです。プロセス報酬モデルを参照。