https://blog.mocobeta.dev/posts/feed.xml

Hello Evals! - AgentKitでシステムプロンプトを評価する

2025-12-19

OpenAIのAgentKitには,LLMのシステムプロンプトを評価するDatasets/Evalsというツールが含まれています。これはDatasets/Evalsを触ってみたメモです。

リソース

Evals周りは機能もリソースも豊富で,どこから手をつけていいか迷うのですが,私はBuilding resilient prompts using an evaluation flywheelというCookbookを参考にGetting Startedをしました。

なおEvalsの利用方法にはDashboardのGUIとAPIがあり,GUIが手軽に始められます。CIに組み込んで継続的に評価を回す際にはAPIを使うことになります。

GUIで始めるEvals

1. Datasetを作成する

ガイドに従って,Evaluation Dashboardで新しいDatasetを作成します。(名前は適当でOK)

2. モデルと評価対象のシステムプロンプトを登録する

Datasetができたら,モデル選択と評価対象のシステムプロンプト("Developer Message")を登録するパネルが表示されるので,モデルを選択し,評価したいプロンプトを登録します。Userのプロンプトにはとりあえず{{input}}とだけ書いておきます。

ワンショットのLLM呼び出しではなく,UserのプロンプトとAssistantのレスポンスを追加しておき,「会話の途中の状態をコンテキストとして与えたうえで評価を行う」こともできます(まだやってみていないので,できるはずです)。

Web Searchなど,必要であればビルトインのツールを設定することもできます。

設定した初期システムプロンプト

あなたはジブリアニメの専門家です。ユーザーにおすすめのジブリアニメを紹介してください。

3. 評価ケースを追加する

プロンプトを書いたら,右のパネルのinputカラムにユーザープロンプト({{input}}の部分に入るテキスト)を,評価したい数だけ追加します。

設定したユーザープロンプト(5つ)

- 土曜日の夜にのんびりする
- やる気を出したい
- シリアス系の気分
- かっこいいやつ
- しんみりしたい

4. LLMの出力を生成する

「Generate Output」ボタンを押すと,inputごとに,2で選択したモデルで,LLMの出力がoutput列に生成されます。

5. 評価カラムを追加する

output(LLMの出力)を評価するカラムを追加します(「Columns」というボタンで評価カラムを追加するポップアップが出てくる)。評価の方法はいろいろあります。

  • Good/Badの二値
  • 自然言語のフィードバック
  • Grader (組み込みの評価器)
  • カスタム評価関数(Pythonで評価ロジックを書く)

など。多すぎて最初は少し戸惑う。

お試しで,手軽に使える①自然言語のフィードバックと,②Scoring Graderを追加しました。Graderにもさまざま種類がありますが,簡易的なのは「Scoring > Simple Grader」で,評価基準を自然言語で書いてLLMに評価をさせます。結果はPass/Failの二値が返されます。

6. 評価を実行する

評価の実行方法は,評価カラムの種類によって変わります。

自然言語のフィードバックであればアノテーターが手動でフィードバックを入力します。Graderであれば,「Grade」ボタンを押して評価器を走らせます。

ここまでで,Evalsの1ラウンドが終了です。

evals-dashboard

プロンプトの改善

評価したら,評価結果をもとに,人力でプロンプトを改良することもできますし,Prompt Optimizerで自動的にプロンプトを改善することもできます。Prompt Optimizerは,(想像できる通り,)LLMでプロンプトを改善する機能です。

Prompt Optimizerを実行しようとしたらなぜかサーバーエラーが出たので,今日はここまで・・・。


これは Agents SDK+αのTipsを一人で書いていくアドカレ Advent Calendar 2025の19日目の記事です。