FrontierCode の紹介:高品質な生産データベース基準にモデルがどれだけ対応できるかを測定するベンチマーク
Cognition が、コードの正しさだけでなく「品質」や「マージ可能性」を評価する新ベンチマーク FrontierCode を発表し、既存モデルの高品質コード生成能力への課題を浮き彫りにした。
キーポイント
コード品質とマージ可能性の重視
単なる正しさ(correctness)を超え、実プロダクション環境での「マージ可能か」を評価基準とし、テスト品質やスタイル規範への適合性を総合的に測定する。
世界クラスのオープンソース開発者による作成
20 名以上の熟練したオープンソースメンテナーが、自身のリポジトリから難易度の高いタスクを設計し、各タスクに 40 時間以上を費やして構築された。
厳格な品質管理と誤検知の低減
主観的なルブリック評価を補完するため、敵対的テストや多段階レビューを導入し、SWE-Bench Pro と比較して誤検知率を 81% 削減した。
最上位モデルの苦戦という結果
最も能力が高いとされる現在のモデルでさえ、この新しい「高品質コード」の基準に対して依然として struggle(苦労)していることが示された。
影響分析・編集コメントを表示
影響分析
このニュースは、AI コード生成の評価指標が単なる機能実装の正しさから、実際の開発現場で使われるための品質基準へと大きく転換したことを示しています。これにより、企業はより信頼性の高い AI ツールを選定できるようになり、開発者にとっては生成コードのレビュー負荷を減らすための新たな評価軸が生まれます。
編集コメント
「正しさ」から「品質」へ、評価の基準が一段階上がったことで、AI コード生成の実用化に向けた新たなハードルと指標が明確になりました。
Eric Lu, Ben Pan, Deniz Birlikci, Sam Lee, Ray Wang, Rohan Choudhury, Fermi Ma, TC Qin, Carlo Baronio, Silas Alberti、その他 → 06.09.26
正しさから品質へ基準を引き上げる
今日のコーディングベンチマークは、モデルが「正しい」コードを書けることを示しています。しかし、AI 生成コードが生産環境への主要な道となった今、正しさはもはや最低限の要件に過ぎません。私たちが問うべきは、モデルが実際に「良い」コードを書くことができるのか、という点です。
私たちは、モデルが高品質なプロダクションコードベースの基準をいかに真に満たせるかを測定するベンチマーク「FrontierCode」を発表できることを嬉しく思います。私たちの独自性は以下の通りです:
- メンテナーは実際にこの PR をマージするのでしょうか?私たちはコードのマージ可能性を測定する最初のベンチマークです。私たちの基準は、正確性、テスト品質、スコープの規律、スタイル、およびコードベース標準への準拠を含むエンドツーエンドのコード品質を評価します。これには、ユニットテスト、ルーブリック、そして新しい種類の検証器を含む革新的なアンサンブル手法が採用されています。
- オープンソースのメンテナーによって作成されました。20 人以上の世界クラスのオープンソース開発者が、自分がメンテナンスしているリポジトリから、現実的で多様かつ挑戦的なコーディングタスクを構築しました。各タスクには 40 時間以上が費やされています。彼らは自らのリポジトリにおいて「マージ可能」が何を意味するかを定義しています。
- 厳格な品質管理。ルーブリックによる評価は主観的になりがちであるため、敵対的テスト、キャリブレーション、多段階レビューを含む広範な QC パイプラインを構築しました。すべてのタスクは Cognition の研究者によって手動でレビューされます。その結果、SWE-Bench Pro と比較して偽陽性率が 81% 低下しました。
私たちのベンチマークは、モデルが高品質で保守性の高いコードを作成する能力に関する、現在利用可能な中で最も強力なシグナルを提供します。私たちは、今日の最も有能力なモデルさえもこの新しい基準において苦戦していることを発見しました。
20 人以上の世界クラスのオープンソースメンテナー
タスクあたり 40 時間の努力
Cognition の研究者による手動レビュー
すべてのタスク
SWE-Bench Pro と比較して偽陽性率が 81% 低下
コード品質と微妙な人間の嗜好を測定する初のベンチマーク
Results
FrontierCode の難易度順に並べた 3 つのネストされたサブセットを提示します。それぞれ Extended、Main、Diamond です。Diamond は最も難しい 50 タスクから構成され、Main は Diamond を含む最も難しい 100 タスク、Extended は全 150 タスクの完全セットです。
2 つの評価指標、pass rate(合格率)とscore(スコア)を報告します:
- ブロッカー基準(コードレビューにおいてメンテナーがハードストップとして扱う基準)をすべてクリアした場合にのみ、その解決策は「合格」とみなされ、それ以外は不合格となります。
- 解決策のスコアは、評価項目に対する加重集計値です。ブロッカー基準を満たさない解決策には 0 が付与されます。
各モデルは、利用可能なすべての推論努力レベルで 5 回実行します。各努力レベルについては、5 回の試行における指標の平均を算出し、その後、各モデルが最も高いパフォーマンスを示した推論レベルでのスコアを報告します。
FrontierCode DiamondScore
- 020406080100スコア (%)0.7Gemini3.1 FlashLite1.0Kimi K2.51.1MiniMaxM2.52.4MiniMaxM2.72.5SWE-1.63.5ClaudeSonnet4.63.8Kimi K2.64.6GPT-5.4-mini4.7Gemini3.1 Pro5.2ClaudeOpus 4.76.3GPT-5.513.4ClaudeOpus 4.8
FrontierCode Diamondvs
020k40k60k80k100kロールアウトあたりの平均出力トークン数02468101214スコア (%)Opus 4.8GPT-5.5Opus 4.7Gemini 3.1 ProGPT-5.4-miniSonnet 4.6Kimi K2.6MiniMax M2.7MiniMax M2.5Kimi K2.5Gemini 3.1 Flash Liteスコア:ルブリック項目の加重集計。ブロック基準を満たさないソリューションは0点となります。出力トークン数:モデルがロールアウトあたり平均生成したトークンの数。FrontierCode Diamond はまだ飽和しておらず、最高性能を誇る Claude Opus 4.8 でさえスコアはわずか13.4%です。他のモデルのスコアはさらに著しく低く、GPT-5.5 は6.3%、Gemini 3.1 Pro は4.7%、その他はそれ以下となっています。しかし、GPT 5.5 は Opus 4.8 と比較して一貫して最大で4倍少ないトークン数を使用し、より優れたコストと知能のトレードオフを実現しています。FrontierCode Main および Extended では、Opus 4.8 は依然として明確なリードを維持しており、それぞれ34.3%、51.8%となっています。また、オープンソースモデルと最先端モデルの間には大きな隔たりがあることも観察されます。ベストパフォーマンスを示すオープンソースモデルである Kimi K2.6 でさえ、Diamond ではわずか3.8%、Main では16%、Extended では37%に留まります。
この投稿の後半では、なぜそしてどのようにして FrontierCode を構築したのかについて詳しく掘り下げていきます。
なぜ FrontierCode を構築したのか
SWE-Bench Verified や Pro などの最初の世代のコーディングベンチマークは、能力が低いモデル向けに設計されました。それらは現実性や堅牢性の多くの面で不足しています。根本的に、これらは機能的正しさのみをテストしており、品質までは評価していません。さらに、これらのベンチマークは誤分類エラーを起こしやすい傾向があります。METR の実験によると、これらのベンチマークで高スコアを獲得したモデルが生成するパッチの多くは、人間のメンテナによって受け入れられないことが判明しています。
では、どのようにして誤分類を定義するのか?これらは2つのカテゴリに分類されます:
偽陽性 (False Positives):検証器は間違ったソリューションに対して報酬を与えるべきではありません。テストカバレッジが不完全な場合、モデルが誤ったソリューションを書いてもそれが受け入れられてしまうことがあります。
偽陰性 (False Negatives):検証器は正しいソリューションに対してペナルティを科すべきではありません。テストが過度に具体的すぎる(例えば、正確なエラー文字列や関数名をチェックする)、あるいは指示やコードベースに含まれていない動作を検証するなどして解けない場合があります。
imageエージェントの軌跡を分析した結果、FrontierCode は他の主要ベンチマークと比較して誤分類エラーが81%少ないことが示されました。つまり、FrontierCode のスコアは現在利用可能な最も正確なランキングであるということです。
既存のベンチマークも、いくつかの点において多様性の欠如という問題を抱えています。
他のベンチマークがプログラムによるスクレイピングを通じて単一の PR から課題を生成するのに対し、FrontierCode はリポジトリのメンテナによって手動で選択され、複数の PR の連鎖や自由形式のリクエストから選ばれています。また、SWE-Bench Pro に比べてカバーされる言語数を 3 倍に増やしています。
既存のベンチマークは、過度に詳細で指定されたプロンプトという形でガイドラインが多すぎることも知られています。現在の最先端モデルには、これほど手厚いサポートは必要ありません。FrontierCode では、人間のコメンタと同じ文脈を前提として、エージェントがメンテナの意図を推測することを期待しています。
私たちのプロンプトは 2 つの部分で構成されています。第一にタスクの説明です。第二に、AGENTS.md に記載されているような、一般的なテスト、リンティング、スタイルの実践に関するコードベースガイドラインです。タスク説明は人間らしく、意図的に簡潔に書かれています——SWE-Bench Pro の約 3 分の 1の長さです。
各ベンチマークからのプロンプト例を同じスケールで表示しています。構造、長さ、具体性を比較するには、各列内でスクロールしてください。さらに、タスクの難易度を単純にパッチサイズを増やすのではなく、*品質評価基準(quality rubrics)*を用いてスケーリングすることを選びました。DeepSWE などのベンチマークよりもパッチサイズは小さいものの、FrontierCode はエージェントにとってより困難な課題となっています。
image FrontierCode のように野心的なコード品質の評価を生成するためには、ベンチマーク作成プロセスのすべての段階に品質を組み込む必要がありました。
FrontierCode の構築方法
オープンソースメンテナによるチーム
FrontierCode は、モデルが生産環境のコードベースに取り込まれるようなコードを生成できるかを測定することを目的としています。これを確保するため、36 の主要なオープンソースリポジトリのメンテナと直接協力しました。このオールスターの専門家チームは、集合的に数千件のコミットをレビューし、コードベースにマージしてきました。彼らは目にするすべてのプルリクエスト (PR) に、深いスタイルや設計の知識を適用できます。
各メンテナはタスクあたり40 時間以上を投資し、他の評価エンジニアおよび Cognition の研究者との複数の反復ラウンドを経験しました。彼らの判断は具体的な評価基準に凝縮されました。これらの基準を満たす PR は実際に承認されるものです。
彼らが FrontierCode について語った言葉はこちらです:
「FrontierCode を担当したチームと協力できたことは光栄でした。AI の評価問題に取り組むことは、芸術そのもののように感じました。他者が CI(継続的インテグレーション)のように採点する中で、FrontierCode はテックリードのように採点します。」Tomer Nosrati 氏、Celery CEO 兼テックリード (28.6k stars)
「FrontierCode が他と異なる点は、細部へのこだわりです。各タスクは、LLM ベンチマークにおいてこれまでに見られたことのない深さまで調整されています。ゲーム化可能なベンチマークから離れ、代わりに FrontierCode のようなものを用いて、モデルの真の知性と創造性を示すべきです。」
Budibase(スター数 28k)共同創設者兼 CTO マーティン・マッケイブニー氏
「オープンソースコミュニティの主要な専門家たちと協力できたことを感謝しています。正しさ versus 品質、およびリポジトリの文脈におけるマージ可能性の意味について、深い議論を行いました。FrontierCode は、現実世界における主観的な品質を尊重する AI モデルにとってのマイルストーンです。」
uppy(スター数 30.8k)コアメンテナー メルリン・沃斯氏
「FrontierCode の独自の価値は、その評価に込められた人間の経験にあります:高品質でマージに値するコードとは何かという、何年にもわたる判断です。各基準に対してほぼ強迫観念的なほど細心の注意が払われていることが、このベンチマークが SWE(ソフトウェアエンジニアリング)評価の新たな基準を設ける理由だと私が信じる所以です。」
Mattermost(スター数 37k)コアメンテナー クラウディオ・コスタ氏
ユニットテストを超えて
FrontierCode は、以下の軸に沿ってコードを評価することでマージ可能性を測定します:
- ビヘイビア正しさ:パッチは問題解決に成功しているか?
- 回帰安全性:既存のコードベースを壊していないか?
- メカニカルな清潔さ:プロジェクトのビルド、リンティング、スタイルチェックをパスするか?
- テスト正しさ:エージェントが作成したテストは実際に望ましい振る舞いを捉えているか?
- スコープ:パッチは必要な箇所のみを触っているか?
- コード品質:コードはコードベースの規約に準拠し、健全な設計パターンに従い、共同作業者にとって読みやすいものとなっているか?
以下の表では、これらの基準を評価するために、古典的な単体テストと、適応型古典的採点法(adaptive classical grading)、スコープ、逆古典的テスト(reverse-classical tests)といった新規手法(これらについては後述)の両方をどのように活用しているかを説明します。
カテゴリ | 方法 | 仕組み | 合格条件
---|---|---|---
ビヘイビア正しさ | classical | リポジトリにテストファイルを注入し、実行した後、クリーンアップする。 | 注入されたすべてのテストがパスする
メカニカルな清潔さ、回帰安全性 | command | シェルコマンドを実行する。 | 終了コードが 0
テスト正しさ | reverse-classical | ベースコミットに対してエージェントが提出したテストを実行する。 | テストが失敗する(※注:この条件は「テストが失敗すること」を合格基準とする逆古典的アプローチの特性)
複雑なタスクに対するビヘイビア正しさ | adaptive classical grading | LLM を用いて、参照テストまたはアプリケーションコードを適応させ、実装と整合させる。 | 適応されたテストがパスする
スコープ | scope | ファイル境界、diff サイズの制約、およびオプションで変更の意味的な局所性をチェックする。 | 制約内の diff であること
コード品質 | prompt | LLM が自然言語プロンプトに基づいてエージェントの diff をレビューする。 | LLM のスコアが閾値に達すること
各基準は、ブロックするもの(blocker)またはブロックしないもの(non-blocker)のいずれかです。
ブロックするものは、マージ要件を表します。つまり、コードレビューにおいてメンテナーがハードストップとして考慮する基準です。これには正しさに関するチェックに加え、パフォーマンスやスコープ制限といった正しさ以外の懸念事項も含まれます。
ブロックしないものは、コードスタイル、型安全性、可読性などの品質シグナルを表し、必ずしもマージを妨げるものではありません。
ある解決策がすべてのブロックする基準を満たす場合、それは合格とみなされ、そのスコアはその解決策が満たしたルブリック項目の加重合計となります。それ以外の場合は、スコアはゼロになります。
革新的な評価手法
私たちは、誤分類に対する基準を強化しつつ、複数の有効な解決策を受け入れる余地を残すために、3 つの主要な手法を導入しました。
逆古典的アプローチ(Reverse-Classical): 逆古典的アプローチとは、エージェントが作成したテストが意味のあるものであることを保証する方法です。元の壊れたコードベースでこれらを実行すると、必ず失敗する必要があります。これにより、エージェントが問題を十分に理解し、効果的なテストを記述できたかどうかを確認するための自動化された決定論的なチェックが可能になります。
コードスコープ: 優れたプルリクエスト(PR)は自制心を持つべきです。必要な箇所のみを変更し、無関係なファイルに触れたり、不要なリファクタリングを導入したりしてはいけません。スコープ基準とは、これらの境界を強制する自動化されたチェックです。これは3 つ種類の制約を組み合わせています:
- files: ファイルの許可、拒否、または削除が必要かどうかを高速かつ決定論的にチェックするため。
- size: 変更行数、純増行数、または修正されたファイル数の上限を強制するため。
- semantic: LLM を用いたチェックにより、特定部分(例えば単一の関数内など)における変更の局所性や性質を検証するため。
適応型古典的評価: オープンエンドなコーディング課題には多くの有効な解決策が存在します。静的なユニットテストは硬直的すぎ、関数名やエラーメッセージの表面的な違いにより優れた解決策が失敗してしまうことがあります。この対立を解消するために、私たちは「mutagent」というツールを開発しました。これは LLM を用いてテスト環境(またはアプリケーションコード)を外科的にパッチし、エージェントの実装詳細に適合させることで、オープンエンドな解決策に対して厳密かつ決定論的なテストを実行可能にします。
例題タスク
インタラクティブ: FrontierCode の評価パイプラインを各モデルの出力に対して実行し、パッチがルールの合格/不合格マッピングにどう影響するかを検証してください。Andrew He (ecnerwala) は Codeforces において米国で2番目に高い評価を持つ競技者であり、IOI で金メダルを2回獲得した選手です。また Cognition の創設エンジニアの一人であり、当社の専属 C++ エキスパートでもあります。彼は本タスクにおけるモデルの動作を個人的にレビューしました。
このタスクは C++ で書かれた jsonschema リポジトリに基づいています。コードベース内のすべての警告出力箇所 <message> で使用されるべき、新しい関数 auto LOG_WARNING() -> std::ostream & の実装が必要です。このヘルパー関数は、ログメッセージに warning: というプレフィックスを付け、stderr に出力し、--verbose フラグを無視する機能を持ちます。
タスクは一見単純に見えます:合格したソリューションは、与えられたコードベース内で警告: を出力しているすべての箇所を特定し、新たに実装された LOG_WARNING() 関数の呼び出しに置き換えるだけで済みます。しかし、モデルはこのタスクをある意味で驚くべき方法で失敗します。そのうちの一つの必須条件として、複数行にわたる警告メッセージは慣習的に LOG_WARNING を呼び出す必要があります。例えば以下のようになります:
cpp
LOG_WARNING() << "You are opting in to remove schema identifiers... \n"
<< "The only legit use case...\n"
<< "non-compliant...\n" << ... ;
慣習的な複数行の LOG_WARNING 使用例
Claude Opus 4.8 は、一方で一貫して以下の実装を選択します:
cpp
LOG_WARNING() << "You are opting in to remove schema identifiers...\n";
std::cerr << "The only legit use case...\n";
std::cerr << "non-compliant...\n";
Claude Opus 4.8 は LOG_WARNING と std::cerr の使用を混在させています。これら二つは振る舞い上同じであり、どちらの場合も複数行にわたるエラーメッセージが stderr に出力されます。しかし、エージェントによる解決策では、呼び出し元において LOG_WARNING() と std::cerr が同一のストリームであると仮定して実装されており、これは LOG_WARNING() の将来の変更によって変化する可能性があります。
品質管理
ルブリックの質をどのように改善していくのか?
ユニットテストのようなバイナリ検証器の改善は比較的実現可能です。なぜなら、すべての解決策は「正解」か「不正解」かのいずれかに分類されるからです。各ロールアウトを検証し、その分類を確認することで、テストを強化することができます。
原文を表示
By Eric Lu, Ben Pan, Deniz Birlikci, Sam Lee, Ray Wang, Rohan Choudhury, Fermi Ma, TC Qin, Carlo Baronio, Silas Alberti, and more →06.09.26
Raising the bar from correctness to quality
Today’s coding benchmarks have established that models can write *correct* code. But as AI-generated code becomes the dominant path to production, correctness is now table stakes. The question that we should be asking is: can models actually write *good* code?
We’re excited to introduce FrontierCode, a benchmark that measures how well models can truly meet the standards of high-quality production codebases. What sets us apart:
- Would the maintainer actually merge this PR? We’re the first benchmark to measure code mergeability. Our criteria assess end-to-end code quality — correctness, test quality, scope discipline, style, and adherence to codebase standards. This employs a novel ensemble of grading techniques, including unit tests, rubrics, and new types of verifiers.
- Crafted by open-source maintainers. 20+ world-class open-source developers built realistic, diverse, and challenging coding tasks from the repos they maintain, spending more than 40 hours per task. They define what “mergeable” means in their repo.
- Rigorous quality control. Rubric grading is subjective, so we built an extensive QC pipeline with adversarial testing, calibration, and multi-stage review, where every task is manually reviewed by a Cognition researcher. We achieve an 81% lower false positive rate compared to SWE-Bench Pro.
Our benchmark provides the strongest available signal of a model’s ability to write high-quality, maintainable code. We find that even today’s most capable models struggle on this new standard.
20+ world-class open-source maintainers
40 hours effort per task
Manually reviewed by Cognition researchers
Every task
81% lower false positive rate
Compared to SWE-Bench Pro
First-ever benchmark measuring code quality
And subtle human preferences
Results
We present three nested subsets of FrontierCode at increasing difficulty: Extended, Main, and Diamond. Diamond comprises the 50 hardest tasks, Main the 100 hardest (including Diamond), and Extended the full set of 150.
We report two metrics, pass rate and score:
- A solution passes if it clears all blocker criteria, i.e., criteria that a maintainer would consider hard stops during code review, and fails otherwise.
- A solution’s score is a weighted aggregate of the rubric items. Solutions that do not pass blocking criteria receive 0.
Each model is run 5 times at every available reasoning effort. For each effort, we average the metric across the 5 trials, then report each model’s score at its best performing reasoning level.
We show through analysis of agent trajectories that FrontierCode produces 81% less misclassification errors than other leading benchmarks. This means that FrontierCode scores are the most accurate ranking currently available.
Existing benchmarks also suffer from lack of diversity in several ways.
While other benchmarks generated issues from single PRs via programmatic scraping, FrontierCode is hand-selected by repo maintainers from multi-PR chains and freeform requests. We also triple the number of represented languages from SWE-Bench Pro.
It’s also known that existing benchmarks provide too much guidance in the form of overly specified and detailed prompts. Today’s frontier models need far less hand-holding. FrontierCode expects the agent to infer the maintainer’s intent, given the same context as a human contributor.
Our prompts contain two parts. First is the task description. Second, the codebase guidelines for generic testing, lint, and style practices, just like those found in AGENTS.md. The task descriptions are humanlike and deliberately concise — a third the length of SWE-Bench Pro’s.
Furthermore, we’ve chosen to scale the difficulty of tasks using *quality rubrics*, rather than simply increasing patch size. Despite having smaller patches than benchmarks like DeepSWE, FrontierCode is *harder for agents* to solve.
To produce an evaluation for code quality as ambitious as FrontierCode, we had to embed quality into every step of the benchmark creation process.
How we built FrontierCode
A Team of Open Source Maintainers
FrontierCode aims to measure whether models can produce code that would be merged into production codebases. To ensure this, we collaborated directly with the maintainers of 36 flagship open-source repositories. This team of all-star experts has collectively reviewed and merged thousands of commits to their codebases. They can apply deep stylistic and design knowledge to every PR they see.
Each maintainer invested more than 40 hours per task, undergoing multiple rounds of iteration with other eval engineers and Cognition researchers. They’ve distilled their judgment into concrete evaluation criteria: any PR that satisfies these standards would actually be approved.
Here’s what they say about FrontierCode:
“Working with the team behind FrontierCode was a privilege. Taking on the AI evaluation problem felt like nothing less than an art… Where others grade like a CI, FrontierCode grades like a tech lead.”Tomer Nosrati, CEO and Tech Lead of Celery (28.6k stars)
“What sets FrontierCode apart is the attention to detail. Each task is calibrated to a depth that simply hasn’t been seen before in LLM benchmarking. We should be moving away from benchmarks that can be gamed and instead using ones like FrontierCode to demonstrate genuine model intelligence and creativity.”Martin McKeaveney, Co-Founder and CTO of Budibase (28k stars)
“I’m grateful to have worked with leading experts in the Open Source community. We had deep discussions on correctness versus quality and what mergeability means in the context of their repository. FrontierCode is a milestone for AI models respecting subjective quality in the real world.”Merlijn Vos, Core Maintainer of uppy (30.8k stars)
“FrontierCode’s unique value comes from the human experience encoded in its evals: years of judgment about what makes code high-quality and worthy of merging. The almost obsessive care brought to every criterion is why I believe this benchmark sets a new bar for SWE evaluation.”Claudio Costa, Core Maintainer of Mattermost (37k stars)
Beyond Unit Tests
FrontierCode measures mergeability by evaluating code along the following axes:
- Behavioral correctness: Does the patch successfully solve the problem?
- Regression safety: Does it break anything in the existing codebase?
- Mechanical cleanliness: Does it pass the project’s build, lint, and style checks?
- Test correctness: Do the agent’s tests actually capture the desired behavior?
- Scope: Does the patch touch only what it needs to?
- Code quality: Does the code conform to codebase conventions, follow sound design patterns, and remain readable to collaborators?
The following table describes how we use both classical unit tests and novel methods, such as adaptive classical grading, scope, and reverse-classical tests (more on these methods below) to evaluate these criteria.
CategoryMethodHow it worksPasses when
Behavioral correctnessclassicalInjects test files into the repository, runs them, then cleans up.All injected tests pass
Mechanical cleanliness, regression safetycommandRuns a shell command.Exit code 0
Test correctnessreverse-classicalRuns agent’s submitted tests against the base commit.The tests fail
Behavioral correctness for complex tasksadaptive classical gradingUses an LLM to adapt reference tests or application code to align with the implementation.Adapted tests pass
ScopescopeChecks file boundaries, diff size constraints, and optionally semantic locality of changes.Diff within constraints
Code qualitypromptAn LLM reviews agent’s diff against a natural-language prompt.LLM score meets threshold
Each criterion is either a blocker or a non-blocker:
Blockers represent mergeability requirements, i.e., criteria that a maintainer would consider hard stops during code review. These include correctness checks, as well as non-correctness concerns like performance or scope restrictions.
Non-blockers represent quality signals such as code style, type safety, and readability, which would not necessarily block a merge.
If a solution satisfies all the blockers, it is considered passing, and its score is the weighted aggregate of all the rubric items it passes. Otherwise it receives a score of zero.
Novel Grading Methods
We’ve introduced three main techniques to strengthen criteria against misclassifications, while allowing space for multiple valid solutions:
Reverse-Classical: The reverse-classical criterion is a way to ensure that agent-written tests are meaningful: when we run them on the original, broken codebase, they must fail. This gives us an automated, deterministic check that the agent understood the problem well enough to write an effective test for it.
Code Scope: A good PR should exercise restraint: it modifies only what it needs to, without touching unrelated files or introducing unnecessary refactors. The scope criterion is an automated check that enforces these boundaries. It combines three types of constraints:
- files: For fast, deterministic checks on which files can be allowed, denied, or must be deleted.
- size: To enforce limits on the number of changed lines, net line growth, or total files modified.
- semantic: For LLM-based checks that verify the locality or nature of a change within a specific part of a file (e.g., inside a single function).
Adaptive Classical Grading: Open-ended coding tasks can have many valid solutions. Static unit tests are too rigid; good solutions can fail for superficial differences like function names or error wording. We resolve this conflict with mutagent, a tool we built that uses an LLM to surgically patch the test environment (or the application code) and align with the agent’s implementation details, allowing us to run rigorous, deterministic tests on open-ended solutions.
Example Task
Andrew He (ecnerwala) is the second highest rated US competitor on Codeforces, two-time IOI gold medalist, a founding engineer at Cognition and our resident C++ expert. He personally reviewed the models’ behavior on this task.
This task is based on the jsonschema repo which is written in C++. It requires implementing a new function auto LOG_WARNING() -> std::ostream & that should be used in every instance of printing warning: <message> in the codebase. The helper should prefix log messages with warning:, print to stderr, and ignore the --verbose flag.
The task seems simple: a passing solution has to just identify all places in the given codebase that print warning: and replace them with a call to a newly implemented LOG_WARNING() function. However, models fail this task in a somewhat surprising way. One of the blocking criteria requires that multi-line warning messages idiomatically call LOG_WARNING, like so:
Claude Opus 4.8, on the other hand, consistently opts for the following implementation:
These two are behaviorally the same; in both cases a multi-line error message will be printed to stderr. However, the agent solution bakes in the assumption at the call site that LOG_WARNING() and std::cerr are the same stream, which could change in a future modification of LOG_WARNING().
Quality Control
How do we iterate on rubric quality?
Improving binary verifiers like unit tests is relatively tractable because every solution falls into one of two buckets — correct or incorrect. You can examine each rollout, check its bucket, and strengthen the tests accordin
関連記事
今日は何も大きな出来事はありませんでした
Smol AI News は、6月5日から8日にかけての期間に12件のサブレッドと544件のツイートを調査しましたが、特に注目すべきAI関連のニュースや技術進展は見られませんでした。
「スロッペンハイマー」:アマゾンの従業員が社内チャットで同社の AI を揶揄
アマゾン創業者のジェフ・ベゾスは AI が生産性を飛躍的に高めると信じているが、社内の従業員は AI ツールの出力を「ゴミ(スロップ)」と呼び、同社の動機付け策の失敗をジョークとして嘲笑している。
Import AI 460:報酬ハッキング社会、Anthropic の RSI データ、RL による四旋翼ドローンレース
Jack Clark が執筆するニュースレター「Import AI」第 460 号では、サイバー空間と同様に社会も報酬ハッキングの対象となり得る点や、Anthropic から提供された RSI データ、強化学習を用いた四旋翼ドローンレースの最新動向について解説しています。