エージェント設計は難しいが、その理由の一つはエージェントの評価が難しいことにある。ディープエージェント(オープンソースでモデルに依存しないエージェントハーネス)を開発する中で、プロンプトの方法、含めるツール、ミドルウェアなど、多くの決定に直面する。反復を重ねる中で、これらの決定をベンチマークするための堅牢な評価セットが必要となる。最近評価フレームワークを刷新したので、本記事ではディープエージェントの評価方法について共有する。
エンドツーエンドの評価にはHarborを使用している。Harborはエージェント評価を実行するための人気のあるオープンソースフレームワークで、Terminal Bench(主要なコーディングベンチマーク)を支えている。Harborを使用するには、エージェント(ディープエージェント)、データセット(後述)、サンドボックス(ローカルまたはLangSmith Sandboxesで実行)の3つを提供する。各データセットにはタスクが含まれ、タスクは環境(Dockerfile/Docker Compose YAML)、指示(Markdown)、評価スクリプト(test.sh)で構成される。シンプルなLLM評価との主な違いは2つ:エージェントが実行される環境が重要であること(タスクの一部として指定する必要がある)、評価はスクリプトで行うこと(エージェントが生成したファイルや状態の変更を確認するため)。
現在、3つのベンチマークを実行しており、それぞれ異なる種類のエージェント作業をカバーしている。ディープエージェントは汎用ハーネスであるため、複数のドメインでの能力をベンチマークする必要がある。Harbor-Index:自律的なエンドツーエンド作業、82タスク(54のベンチマークから6000以上の候補を蒸留)、ソフトウェア工学、検索、データ分析、長期ツール使用をカバー。τ³-bench:会話、30タスクのサブセット、マルチターン会話をカバー(ユーザーはシミュレートされるが、スコアリングは実際の結果をチェック)。ContextBench:検索、30の調整済みタスク、各タスクは完全なコーパスをサンドボックス内に含み、エージェントが自分で答えを見つけて結合する必要がある。これらは始まりに過ぎず、今後タスクセットを拡大する予定である。
私たちが実践している方法:各タスクを複数回実行(非決定論的なエージェントには単一実行では不十分)、軽量ベンチマークを維持して迅速な反復(フルベンチマークの約8倍高速、6倍低コスト)、能力スイート(ツール選択、メモリ、ファイル操作などの特定のハーネス動作を対象とする高速な決定論的単体テスト)をベンチマークと並行して保持。これらのベンチマークは自信を持って反復するために使用される。具体的には、ディープエージェント0.7リリースの準備として、ToDoリストミドルウェアの削除とシステムプロンプトの大幅なスリム化を検討しており、これらのベンチマークを使って判断している。