エージェントのEval-Driven Development
エージェントをリリースする前にevalを書きます。リグレッションなしで反復するための唯一の方法です。
「エージェントのEval-Driven Development」はCoddyKit上の無料AI Agentsレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Agents学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Agentsコースには全4レッスンが含まれています。
このレッスンの一部はまだ翻訳されておらず、英語で表示されています。
EvalsはAIのテストです
テストなしでコードをリリースすることはないでしょう。同じ考え方がLLMエージェントにも当てはまります。Evalsがなければ、変更のたびに結果は運任せです。
Eval-Driven Development(EDD)とは、変更をリリースする前にevalを書いておくことです。
EDDのループ
- 失敗するevalを書く:入力と期待される動作
- evalに合格するまでエージェントを改善する
- evalをテストスイートに追加する
- 変更のたびに実行する
何を評価するか
エージェントでは、複数のレベルで評価します。
- コンポーネント — retrieverは正しいチャンクを返すか
- ステップ — LLMは正しいツールを選ぶか
- エンドツーエンド — エージェントは正しい最終回答を生成するか
評価データ
各evalの行には、最低限次の情報を含めます。
eval_example = {
'input': 'What is our return policy?',
'expected_output': 'mentions 30-day window',
'expected_tool_calls': ['retrieve'],
'metadata': {'tags': ['policy', 'common']}
}
for k, v in eval_example.items():
print(f"{k}: {v}")
Run an Eval Suite
def run_evals(suite, agent):
results = []
for case in suite:
actual = agent.run(case['input'])
scores = [
score_correctness(actual, case['expected_output']),
score_tool_calls(actual.tool_calls, case['expected_tool_calls'])
]
results.append({'case': case, 'actual': actual, 'scores': scores})
return resultsCIへの統合
すべてのPRでevalを実行します。品質がしきい値を下回った場合は、マージをブロックします。
# .github/workflows/evals.yml
on: pull_request
jobs:
evals:
runs-on: ubuntu-latest
steps:
- run: python -m evals.run --fail-below 0.85Evalの実行頻度
- コンポーネントeval — すべてのPR
- エンドツーエンドeval — すべてのPR(サンプリング)+毎晩(全件)
- 本番トレース -> evalセット — 毎週
本番からevalへのパイプライン
実際のトレースを収集します。悪い結果は、翌日のevalになります。
for trace in production_traces_with_thumbs_down():
add_to_eval_suite(trace.input, expected=trace.fixed_output_from_human)LangSmith / LangfuseのEval
どちらのツールにも、データセットのバージョン管理、評価関数、比較ビューなどのeval機能が組み込まれています。
手動のスポットチェック
自動化されたevalでは、文体やニュアンスを見落とします。定期的にランダムなトレースを20件、手作業で読みましょう。evalでは見つからない問題を発見できます。
アンチパターン:Evalセットの暗記
小規模なevalに合格するまでエージェントを調整すると、過学習が起こります。evalを継続的に拡張し、テストとトレーニングの分割を入れ替えてください。
Evalセットのメンテナンス
製品の変更に伴ってevalも変化します。新機能のケースを追加し、削除した機能のケースは廃止してください。
EDDの定義
Eval-Driven Developmentとは何でしょうか。
まとめ
Eval-Driven Developmentは、本格的なエージェントにとって不可欠です。あらゆるレベルでevalを書き、CIで実行し、本番トレースからテストスイートを拡充してください。
よくある質問
「エージェントのEval-Driven Development」レッスンは無料ですか?
はい。「エージェントのEval-Driven Development」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Agentsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Agentsコースには全4レッスンが含まれています。
「エージェントのEval-Driven Development」で何を学びますか?
エージェントをリリースする前にevalを書きます。リグレッションなしで反復するための唯一の方法です。 ブラウザで直接実行するハンズオンコードでAI Agentsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AI Agentsを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAI Agentsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「エージェントのEval-Driven Development」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAI Agentsレッスンでコードを書いて実行できますか?
はい。すべてのAI Agentsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- エージェントのEval-Driven Development
- Golden Test Setの構築
- LLM-as-a-Judgeの落とし穴
- ベンチマークスイート:SWE-Bench、GAIA、ToolBench