Git履歴を900件の実行課題へ。Change2Taskがコードエージェント評価を作り直す

Gitの変更履歴が一つのmodern repository baseへ入り、多数のcoding agent taskへ分岐する概念図
過去PRから現在の実行課題を作り、modern baseを再利用するChange2Taskの考え方をAICompanyが独自に再構成した画像

1つの実行環境から、2件以上のcoding agent課題を取り出す。

そんな再利用を積み上げて、388個のmodern repository baseから900件のtaskを作った研究が登場しました。対象はbug fixだけではありません。feature追加、test生成、API migration、security repairまで含みます。

楽天最安値を一発検索!価格ナビで今すぐチェック!

論文はChange2Task: From Repository Changes to Executable Coding Agent Tasks and Environmentsです。

新しいtaskをゼロから合成するのではなく、過去のmerged PRを、保守された現在のcodeへ移し替えます。Git履歴を「昔の記録」から「現在のagentが解く実行課題」へ変える発想です。

古い問題。coding agentのtaskは環境ごと高い

coding agentの評価taskには、issue文と正解patchだけでは足りません。

repositoryをcheckoutできること、dependencyが入ること、testが動くこと、agentが修正できる壊れた状態があること、修正後を判定できること。この一式が必要です。

そのためtaskを増やすほど、container image、setup時間、storage、registry traffic、cold startが増えます。taskが1件増えるたびに環境も1個増やしていたら、評価datasetより先に請求書が育ちます。元気なのは請求書だけ、という少し困る構図です。

過去のPRには、開発者が直した現実の問題、変更理由、patch、testが残っています。ただし古いcommitへ固定すると、dependencyやbuild手順まで古くなります。

Change2Taskの問いは明快です。

過去の保守意図だけを取り出し、現在も動くrepositoryへ移せないか。

中心アイデア。過去PRを現在のcodeへ逆向きに埋め込む

Change2Taskは、merged PRと、その子孫にあたる健康なmodern revisionを組にします。

健康な状態をHとします。ここへtask patchを当て、agentが直すべき状態Cを作ります。さらにrestoration patchを当てたH’で健康な振る舞いへ戻ることを確かめます。

重要なのは、昔のcodeを丸ごと復元しないことです。現在のAPI、wrapper、cache、周辺機能は保ち、過去PRが表していたmaintenance obligationだけを再現します。

構成は3段階です。

Level 1。Patch Reversal

過去PRの変更が現在のcodeにも直接対応するなら、そのpatchを逆向きに適用します。

開発者が修正したbugなら、現在のcode上でその修正部分だけを元へ戻し、bugを再登場させます。source patchとの構造的な距離が最も近い方法です。

Level 2。Code Mapping

refactoringで行番号やindentが変わっていても、変更後blockが現在のfileに一意に残っている場合があります。

この段階では、historical post-change blockを現在のcodeから探し、過去のpre-change blockへ局所的に置き換えます。対象blockが複数ある、fileが消えた、pure additionやpure deletionで対応が作れない場合は次へ進みます。

Level 3。Agent Reconstruction

symbol名やcall chainまで変わり、機械的な対応が弱い場合はconstruction agentを使います。

agentへ渡すのは、PR description、historical patch、現在のbehavior host、target check、regression check、許可されたedit範囲、過去attemptの失敗理由です。候補patchは最大4回で、apply、syntax、scope、fidelity、lifecycleのgateを通します。

ここは魔法の「AIでいい感じに」ではありません。agentの出力を狭いdiffと実行可能な契約へ閉じ込めています。

Patch Reversal、Code Mapping、Agent Reconstructionの3経路が検証済みtaskへ合流する図
Change2Taskの3段階のtask reconstructionをAICompanyが独自に再構成した図

pass、fail、passでtaskを証明する

再構成できたように見えるpatchでも、本当に同じ保守課題とは限りません。

Change2Taskは3状態を検証します。

  1. 健康なHではtarget checkとregression checkが通る。
  2. task状態Cではtarget checkが失敗し、regression checkは通る。
  3. restored状態H’ではtarget checkとregression checkが再び通る。

つまりtargetはpass、fail、pass。regressionはpass、pass、passです。

さらに、historical source patchとmodern restoration patchを、file、hunk、changed line、symbol、target check、regression checkの6要素で比較します。aggregate fidelityは0.65以上、line、hunk、file ratioは0.50以上など、明示された最低条件があります。

testを落とすだけなら簡単です。関係ない機能まで壊せば、いくらでも赤くできます。Change2Taskが難しくしているのは、「狙った課題だけを再現し、周辺は壊さず、修正すれば元へ戻る」ことです。

実験結果。1,130件から900件を完成

論文は12のpublic benchmark collectionとreleaseから1,130件のconstruction-eligible changeを集めました。

最終的に900件をtaskとして確定しています。成功率は79.6%です。

構成routeの内訳は次の通りです。

  • Patch Reversal: 95件
  • Code Mapping: 190件
  • Agent Reconstruction: 615件

大半がLevel 3である点は重要です。Git patchを単純にreverseするだけでは、現在のcodeへ移植できる範囲は小さい。repositoryの進化をまたぐには、behavior mappingと実行feedbackが必要でした。

Bug Fix 621件のmatched comparisonでは、Change2Taskが500件、SWE-smith PR Mirrorが387件を回収しました。回収率は80.5%対62.3%。Change2Taskはverified taskを相対的に29.2%多く作っています。

ただし、この比較はBug Fixに限定されます。5 task familyすべてでPR Mirrorを上回った、という結果ではありません。

再構成taskはagentの順位を保てるか

現在のcodeへ移したtaskが簡単すぎたり、難しすぎたりすれば、benchmarkとして意味が薄れます。

論文は900 taskを4つのcoding agent configurationで解かせ、historical branchとChange2Task branchを比較しました。合計3,600 pairです。

両branchのsolve数はそれぞれ1,478件、41.1%で一致しました。Originalだけ成功が186件、Change2Taskだけ成功も186件です。aggregate agreementは89.7%、Cohen’s kappaは0.787でした。

論文Abstractの「最大98.0% agreement」は最良の個別条件です。全体のagreementは89.7%です。この区別は小さく見えて大事です。最大値はスポットライト、全体値は室内灯くらい役割が違います。

結果は、再構成taskが完全に同一ではない一方、agent間の比較signalを大きく崩していないことを示します。

健康な状態、targetだけが失敗するtask状態、restored状態の3段階とbase共有を示す図
targetはpass、fail、pass、regressionは常にpassとなる検証とenvironment reuseをAICompanyが独自に再構成した図

900環境を388 baseへ減らした効果

taskごとにbase環境を1つ用意する比較では900 baseが必要です。Change2Taskは388 modern baseを共有しました。1 baseあたり平均2.32 taskです。

同一hardware、同一retention、同一accounting ruleで比較した結果は次の通りです。

  • setup時間: 3,240時間から1,349時間。58.4%減
  • retained storage: 5,580GBから1,607GB。71.2%減
  • end-to-end expenditure: 1,917ドルから1,710ドル。10.8%減

時間とstorageの減少に比べ、総費用の減少は10.8%です。Agent Reconstructionとtask固有のmaterialization、verificationには追加費用がかかるためです。

「環境を半分以下にしたから費用も半分以下」という話ではありません。ここでも、都合のよい数字だけを一人旅させないことが重要です。

実務へ移すなら、まず小さなPR-to-task pipelineを作る

ここからはAICompanyの解釈です。

Change2Taskの全systemを再現できなくても、考え方は社内coding agent評価へ移せます。

最小構成は次のようになります。

  1. merged PRのうち、変更前後を区別できるtestがあるものを抽出する。
  2. 現在のdefault branchから固定commitを選び、clean buildとtest通過を記録する。
  3. historical patchをreverseできる場合だけtask patchを作る。
  4. current base、task state、restored stateでtargetとregressionを実行する。
  5. diff、commit hash、test command、結果をtask receiptとして保存する。

最初からAgent Reconstructionまで入れず、Level 1だけで始めるのが安全です。回収率は低くても、どのPRが現在のcode上で再利用できるかを測れます。

次にCode Mappingを加えます。最後に、失敗categoryとedit scopeを明確にできた範囲だけagent reconstructionへ渡します。

この順序なら、task生成agent自身の暴走を防ぎながら、毎週のmerged PRから継続評価setを増やせます。Codexや他のcoding agentを更新したときも、自社repositoryの保守意図で回帰を測れます。

どこまで信用できるか

第一に、79.6%の分母はraw recordではありません。

最初のsource recordは1,783件です。evidence、runnable modern base、behavior alignmentなどを通過した1,130件がconstruction-eligible setです。したがって、あらゆるPRの約8割をtask化できるという意味ではありません。

第二に、対象はpublic PythonとJava corpus、5 task family、4 agent configurationです。UI、分散service、性能要件、hardware behaviorは、通常のtestだけで同じように扱えません。

第三に、900件中615件はClaude Code with Opus 4.8を使うAgent Reconstructionで作られました。別model、別prompt、別budgetでも同じ回収率になるかは未検証です。

第四に、semantic alignment auditはKimi K3とDeepSeek V4 Proのjudgeに加え、disagreementへのmanual adjudicationを使っています。実行testは強い証拠ですが、maintenance intentの同一性には判断が残ります。

第五に、論文とarXiv metadataからChange2Taskの公開実装やdataset URLは確認できませんでした。結果を第三者がすぐ再現できる状態ではありません。

最後に、10.8%の費用削減は、この研究のhardware、価格、storage policy、retention periodに基づくmatched comparisonです。自社環境ではtask per baseとCI費用を測り直す必要があります。

結論。Git履歴は評価資産になり得る

Change2Taskの新しさは、過去PRを再利用したことだけではありません。

historical intentを現在のcodeへ移し、pass、fail、passのlifecycleでtaskを証明し、複数taskでmodern baseを共有した点にあります。

900件のtask、89.7%のaggregate outcome agreement、58.4%のsetup時間削減、71.2%のstorage削減は、この設計が単なるアイデアで終わっていないことを示します。

一方で、eligible setの強い前処理、agent reconstruction依存、公開artifact不在という制約もあります。

それでも実務への第一歩は明確です。自社のmerged PRを、閉じたticketとして眠らせない。current branch上で再実行できるtask receiptへ変える。

coding agentの評価setは、外から買うだけのものではありません。repositoryが毎日生み出している保守履歴から、継続的に育てられます。

参照

【送料無料】マクロキーパッド、ストリームコントローラーデッキゲームストリーミングショートカットキーボード、18個のプログラム可能

投稿者 AICompany

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA