はじめに:AIエージェント評価とその重要性
AIエージェントを構築した後、皆さんはどのようにテストを行っているでしょうか?
機械学習モデルのように精度検証を行いたいところですが、LLM、特にAIエージェントの場合、ユーザーの入力とエージェントのアウトプットを比較するだけでは不十分なケースが多くあります。
例えば、ツールを使用するエージェントや、ガードレール(安全性チェック)を設定しているエージェントの場合、「本当に適切なツールを使用して回答したのか?」「ガードレールが正しく機能して回答を制御したのか?」といった内部挙動は、最終的な回答テキストだけを見ても判断できません。
入力と出力の間にある「思考プロセス」がブラックボックスのままでは、業務適用への不安が残ります。だからこそ、今、AIエージェントの評価(Evaluation)が非常に重要視されてきています。今回は、Dataikuの新機能を使ってこの課題にどうアプローチできるかをご紹介します。
Dataiku新機能「Agent Evaluation」の概要
Dataikuの「Agent Evaluation」は、AIエージェントの品質を最終的な答え」だけでなく「そこに至るまでの動き」も含めて評価するための仕組みです。
業務で利用するエージェントは、単にLLMが文章を生成するだけではありません。
- 検索やDB参照などのツールを使い
- 条件に応じて判断を分岐
- ガードレールの制約を受けながら処理を進める
といった複雑な挙動を取ります。そのため、最終的な答えが合っていたとしても、「ツールの使い方が不適切だった」「たまたま正解しただけで再現性がない」といった問題が起こり得ます。
Agent Evaluationのアプローチ
Agent Evaluationでは、エージェントの入力・出力・実際に使用されたツール・ガードレールの発火履歴を含むデータセットを入力として評価を行います。
これにより、回答の正確性だけでなく、
- 期待したツールが使われているか
- ツールの順序や過不足がないか
- 安全制約がどのように影響したか
といった、エージェントの意思決定プロセスそのものを評価対象にできます。
評価の方法と活用
評価には、ノーコードで選択可能な標準メトリクスとして、ルールに基づいて機械的に評価する指標や、LLMを判定役として使う LLM-as-a-judge 型の評価が存在します。
また、Pythonを使用して独自の評価指標を作成し、カスタムメトリクスとして利用することもできます。
評価結果は Evaluation Store に履歴として蓄積され、プロンプトやエージェント構成を変更した際の実験比較や、本番運用における品質監視(GenAIOps)にも活用可能です。
つまり、Agent Evaluationは、
「エージェントの挙動を定量的に可視化し、改善と運用につなげるための基盤」
と言えるでしょう。
実践:Dataikuでエージェント評価を行ってみる
それでは、実際にDataikuを使ってAgent Evaluationを構築してみましょう。
今回のチュートリアルは、複数のナレッジバンクからエージェントが情報を探索し、回答するエージェントを想定しています。
事前準備
まずはDataiku上で学習用プロジェクト「Agent Evaluation」を作成します。
作成したら、プロジェクト内のデータセットを確認してみましょう。
今回のデータセットは、以下のような構成になっています。
- query : ユーザーからエージェントに送信される入力。
- reference_answer : エージェントからの回答として期待される出力。(正解データ)
- reference_tools : どのツールを使用したか。
- llm_output : 実際にエージェントがユーザーに出力した内容。
- llm_raw_response : エージェントが返した出力の加工前のデータ。
- llm_raw_query : エージェントに実際に送信された加工前のリクエスト内容。
評価レシピ(Evaluate LLM レシピ)の設定
Agent評価の中核となるのが「Evaluate LLM レシピ」です。
以下の手順でレシピを作成します。
- データセットを選択し、Evaluate LLMレシピをクリックします。
- 出力するOutput, Metrics, Evaluation Storeの名前を設定し、レシピを作成
Evaluation LLMレシピでは主に以下の3つの設定を行う必要があります。
インプットデータの設定 (Input dataset)
入力データセットやエージェントのタスクを設定する項目です。
ここでは以下の項目を設定をしてください。
- Input Dataset Format
- 入力データセットがどのような形式かを選択します。今回はプロンプトレシピで出力されたものの想定なので、[Prompt Recipe]を選択
- Task
- AIエージェントがどのようなタスクを行うものかを選択します。今回は[Question Answering]を選択。
- Ground truth column
- ユーザー入力の対する期待される回答。今回のデータセットでは、[reference_answer]が該当します。
メトリクスの設定 (Metrics)
ここで「何を基準に評価するか」を定義します。回答の類似度や回答の正確性など、目的に応じて必要な指標を有効にします。今回は
- Answer correctness :
- 出力された回答が、与えられた正解テキスト(Ground Truth)と比べて内容として正しいかを評価する指標
- Answer similarity
- エージェントの出力が正解(Ground Truth)とどれだけ近い内容かを評価する指標。LLMが判定。
- BERT Score
- 出力と正解テキストを埋め込み(embedding)で比較し、意味的な類似度を数値化する指標。(埋め込みの類似度で判定)
の3つを有効にします。
また、Metricsを計算するにはLLMを設定する必要があります。そのため、Embedding LLM(埋め込みLLM)とCompletion LLM(採点LLM)を設定してください。
他にもカスタムメトリクスが用意されており、カスタムメトリクスでは標準メトリクスでは評価できない固有の挙動などを確認できます。
例えば、正しく検索ツールを使っているか、検索結果を参照せずに回答していないかなどを、ツール実行履歴や出力内容から評価できます。評価ロジックは Python で記述でき、単純なルールベースの判定から、行単位でのスコア付けまで柔軟に実装可能です。
実行環境の設定 (Python environment)
LLM Evaluationレシピには特定のライブラリが必要になります。そのため適切なCode environment(コード環境)が選択する必要があります。
Code Env → Packages to install → ADD SETS OF PACKAGES → LLM Evaluation
から必要なライブラリを一括でインストール可能です。
作成後は、必ずレシピのCode env欄を変更しましょう。
実行結果の分析
レシピを実行すると、結果が出力されます。分析は主に以下の2つの視点で行います。
- Outputデータセット
- 行ごとの詳細な評価結果が格納されています。「正解とどれくらい近いか」「出力した内容が正解と比べて正しいか」をなどを個別に確認します。今回の場合はanswerCorrectness(回答が Ground Truth と照らして正しい内容かを、LLM が評価したスコア)や、bertScorePrecision(出力文に含まれる情報が、どれだけ正解側に対応しているかを示すスコア)が確認できます。
- Evaluation Store
- 複数の実行結果を統合管理する場所です。過去の実行結果と比較して精度が向上しているか、全体の傾向をグラフ形式で視覚的に確認できます。
まとめと今後の展望
本記事では、Dataiku 14.3の新機能であるAgent Evaluationについて紹介しました。
この機能を利用することで、作成したAIエージェントが正しく動いているかを検証できるだけでなく、「なぜ間違えたのか」というプロセスまで分析し、より良いエージェントへと改善するための具体的な検討が可能になります。
Dataikuでは誰でも簡単にAIエージェントを作成できますが、作成後の品質管理がおろそかになると、誤った回答をするエージェントが放置されたり、現場で信頼されず使われないといった問題が発生します。Agent Evaluationを活用することで、品質という「ガバナンス」を効かせながら、安心してAIエージェントを組織全体に展開できるようになります。
ぜひ皆さまも、Agent Evaluationを活用して組織全体でガバナンスを利かせながらAIエージェントを展開してみませんか?








