ベンチマーク · agentic

Multi-SWE-bench

0 結果 0 モデル

Multi-SWE-bench は、AI コーディングエージェントが Python だけでなく多数のリポジトリと複数のプログラミング言語にわたる実際の GitHub issue を解決できるかを測定します。中心的な指標は解決率(resolution rate)で、修正によって隠されたテストスイートが通過するタスクインスタンスの割合です。

詳しく見る
代表的なタスク:Java、Go、Rust、TypeScript、JavaScript、C、C++ などの言語で書かれたオープンソースプロジェクトの実際のバグ報告や機能要望と、修正前のコミットでチェックアウトされたリポジトリが与えられ、エージェントは記述された問題を解決するコードパッチを生成しなければなりません。
採点方法
各インスタンスは実行によって合否で採点されます。エージェントのパッチをリポジトリに適用し、プロジェクトのテストを実行します。指定された FAIL_TO_PASS テストが通過し、かつすべての PASS_TO_PASS テストが引き続き通過した場合にのみ、そのインスタンスは解決済みとみなされます。報告されるスコアは解決率(解決済みインスタンス ÷ 総数)で、通常は pass@1、言語別や専門家が付与した難易度(easy/medium/hard)別に分解できます。
検証方法
受理は完全に実行ベースで、言語のツールチェーンと依存関係を正確に再現するインスタンスごとの Docker イメージ内で行われます。生成されたパッチはクリーンに適用できなければならず、その後 fail-to-pass と pass-to-pass のテストが実行されます。LLM による判定も、開発者のゴールドパッチとのテキスト比較もありません。
重要な理由
SWE-bench は影響力がありましたが Python 専用であり、実際のソフトウェア工学は多くの言語にまたがります。Multi-SWE-bench は、コーディングエージェントが本物の issue で言語をまたいで汎化できるかを、専門家による難易度ラベル付きで検証し、実務的なソフトウェア工学能力について、より難しく現実的で飽和しにくいシグナルを与えます。
解説付きの例
課題
Multi-SWE-bench 形式の例示インスタンス——言語:Go、小さなジェネリックコレクションライブラリ。problem_statement:「空のスタックに対する Stack.Pop() はゼロ値と nil エラーを返し、呼び出し側のバグを黙って隠してしまう。代わりにセンチネル ErrEmpty を返すべきである。」バグのあるベースコミットのリポジトリと失敗するテストが与えられます。FAIL_TO_PASS:TestPopEmptyReturnsError。PASS_TO_PASS:TestPushThenPop、TestLen。失敗するテストを通過させ、通過しているテストを壊さないパッチを提出してください。
解答
--- a/stack.go
+++ b/stack.go
@@ func (s *Stack[T]) Pop() (T, error) {
+	if len(s.items) == 0 {
+		var zero T
+		return zero, ErrEmpty
+	}
 	n := len(s.items)
 	v := s.items[n-1]
 	s.items = s.items[:n-1]
 	return v, nil
 }
解説
この修正は Pop に空チェックを追加し、TestPopEmptyReturnsError が期待するとおりにセンチネル ErrEmpty(型のゼロ値とともに)を返しつつ、通常の pop 経路は変更しないため TestPushThenPop と TestLen は通過し続けます。採点は純粋に実行ベースで、ハーネスがインスタンスの Docker イメージ内でパッチを適用し、FAIL_TO_PASS テストが通過に転じ、かつ PASS_TO_PASS テストが一つも後退しない場合にのみ、そのインスタンスを解決済みとします。

このベンチマークの検証済みスコアはまだありません。