UStackUStack
BenchSpan icon

BenchSpan

BenchSpanはAIエージェントのベンチマークを並列実行し、スコアと失敗を整理した実行履歴に記録。コミット連携で再現性向上。

BenchSpan

BenchSpanとは?

BenchSpanは、チームがAIエージェントのベンチマークをより速く、再現性が高く、共有しやすい方法で実行するのを支援します。エージェントを手動で異なるベンチマークハーネスに接続し、結果を散在したファイルにコピーする代わりに、BenchSpanはベンチマーク実行を標準化し、スコア、エラー、実行時間を整理された実行履歴に集約します。

主な目的は、ベンチマークスイート(数百インスタンス規模のスウィープを含む)の実行時間とコストを削減しつつ、実行をエージェントのコミットハッシュに紐づけ、実行を並べて比較しやすくすることで結果の信頼性を向上させることです。

主な機能

  • シェルスクリプトでエージェントセットアップを標準化するベンチマークランナー: BenchSpanはbashコマンドで起動するエージェントを実行でき、グルーコードやハーネス固有のインターフェース作業を最小限に抑えます。
  • ベンチマークライブラリ+独自ベンチマーク持ち込み: 付属のベンチマークセットから選択するか、独自のベンチマーク定義を持ち込めます。
  • 分離されたDockerコンテナによる並列実行: 各ベンチマークインスタンスが独立したDockerコンテナで実行され、並列処理により大規模スイートの完了を大幅に高速化します。
  • 自動結果キャプチャと整理: BenchSpanはスコア、軌跡、エラー、実行時間をキャプチャし、後で比較できるように整理します。
  • 再現性と比較のためのコミットタグ付き実行: 結果をエージェントのコミットハッシュでタグ付けし、チームが異なる実行を比較してどのコードがどの数値を生んだかを把握できます。
  • 失敗インスタンスのみ再実行: 実行で一部失敗(例: ネットワークエラーや一部インスタンスのレート制限)が発生した場合、全体を再実行せず失敗分のみリトライできます。

BenchSpanの使い方

  1. エージェントをオンボード: エージェントを起動するbashスクリプトを作成し、BenchSpanに指定します。
  2. ベンチマークを選択: BenchSpanのライブラリから選ぶか、提供したベンチマークを使用します。
  3. スイートを実行: インスタンス数を設定して実行開始; BenchSpanはDockerコンテナで並列実行します。
  4. 結果を確認: 整理された出力で結果をレビューし、コミットハッシュタグで実行を比較。失敗インスタンスがあれば、それらのみ再実行します。

ユースケース

  • 開発中のエージェントイテレーション比較: プロンプトやエージェントコード更新後にベンチマークスイートを実行し、コミット間で解決率や失敗パターンを比較。
  • 数百インスタンス規模のSWEスタイル評価のスケーリング: 逐次実行では非現実的な大規模ベンチマークスイートを、並列Docker実行で総実行時間を短縮。
  • 部分失敗からのリカバリ(最初からやり直し不要): レート制限やタイムアウトで一部インスタンスが失敗した場合、失敗分のみ再実行。
  • チームでのベンチマーク主張の共有: 単一のベンチマーク実行レコードをチームで共有し、結果をスプレッドシートやチャットで散逸させない。
  • 異なるプロンプトや設定でのエージェントテスト: コミットタグ付き実行でどのプロンプトバージョンとコードコミットがどの結果を生んだかを追跡し、「どの設定か」の争いを回避。

FAQ

  • BenchSpanはどのようなエージェントをサポートしますか? サイトでは「bash経由で実行されるあらゆるエージェント」が動作するとあり、シェルコマンドでエージェントを起動すればBenchSpanが統合します。

  • ベンチマークは逐次実行か並列実行ですか? BenchSpanはベンチマークインスタンスを並列実行し、各インスタンスを独立したDockerコンテナで分離します。

  • BenchSpanは失敗した実行をどう扱いますか? 一部インスタンスが失敗した場合、全体スイートの再起動を要せず、失敗インスタンスのみ再実行できます。

  • 結果の比較のための整理方法は? 結果(スコア、軌跡、エラー、実行時間)をキャプチャ・整理し、エージェントのコミットハッシュでタグ付けして並べて比較可能にします。

代替案

  • ローカルまたは単一マシンのベンチマークスクリプト: ラップトップでベンチマークスイートを実行するのは最初はシンプルですが、ワークフローが遅く、独自の追跡・再現性ツールを構築しない限り結果が断片的になりがちです。
  • Dockerとカスタムハーネスによる手動オーケストレーション: コンテナで並列化し、各ベンチマーク用にグルーコードを書けますが、インターフェースシム、レジュームロジック、中央集約の結果履歴を実装する必要があります。
  • スプレッドシート/Notion/Slackへのアドホック結果記録: 小規模実験では共有ドキュメントに数字をコピーするだけで済みますが、標準化された実行管理、コミットタグ付き履歴、構造化比較は自動では提供されません。
BenchSpan | UStack