「小さいmodelでも強い」という話は、たいていparameter数の比較で終わります。ところが今回の主役は、数字を削ったことよりも、modelへ何を練習させたかが面白い。
2026年7月29日に公開された論文MindForge: Teaching Small Language Models Whole-Life-Cycle Software Engineering via Source-Free Program Synthesisは、27Bのcoding modelに、調査、仕様推定、設計、実装、debug、test、失敗からの復帰までをまとめて学習させました。
結果は、ProgramBenchの平均test pass rateが37.98%から49.51%へ上昇。さらに、訓練に使っていない7つのsoftware engineering benchmarkでも、base modelを全て上回りました。
ただし、これは「安いmodelが少ない計算で勝った」という話ではありません。agentが使ったtokenはむしろ5.7倍です。MindForgeが示したのは、短く答えるmodelではなく、最後まで仕事を進めるmodelの育て方です。
古い問題。patchは書けても、製品をゼロから作れない
現在のcoding agent向け訓練は、既存repositoryのbugを直す、featureを追加する、issueを解決するといった仕事が中心です。これは実務的ですが、すでにsource codeと構造が存在します。
一方、ゼロからprogramを作る仕事では、先に「何を作るべきか」を調べなければなりません。説明書を読み、referenceの挙動を試し、曖昧な仕様を仮説へ変え、architectureを決め、実装し、失敗したtestから戻る必要があります。
論文が使うProgramBenchでは、agentに渡されるのはCLIの説明書と実行可能なreference binaryです。元sourceは見えません。著者によると、frontier modelでもtaskを完全解決できる割合は1%未満でした。
これはcode completionの延長というより、小さなsoftware companyを一人で回す問題です。仕様書が足りないのは、だいたい現実も同じです。現実のほうがbenchmarkを真似してきます。
MindForgeの中心。sourceを隠して、挙動から仕様を学ばせる
MindForgeは、公開されているcommand-line programを訓練環境へ変換します。
builder側はsource codeへアクセスできます。固定commitを取得し、clean environmentでbuildできるscriptを作り、通常binaryとcoverage用binaryを生成します。しかし、学習対象のagentへ渡すDocker imageには、compiled reference executable、public documentation、agentが書き込むworkspaceだけを残します。
source file名やpathなどのmarkerが残れば、その環境は作り直されます。さらにfresh sandboxでbuildを再実行し、host側のbehavior checkを通して、referenceが再現可能かを検証します。
つまり、agentは答えを読むのではなく、次のloopを回します。
- documentationから最初の仕様を作る
- reference executableへ入力し、挙動を観察する
- architectureと実装方針を決める
- codeを書き、buildとtestを行う
- failureを分析し、具体的なeditへ戻る
- hidden testを通る状態まで進める

この設計の要点は、正解codeだけを教師にしないことです。著者はGLM-5.2をteacher agentとして動かし、tool callと環境の反応を含む長期軌跡を集めました。infrastructure errorで中断した軌跡は補修し、tool-call errorを含むreasoningは前後の行動と矛盾しない形へ書き直します。
最終的に、562のsource-free program environmentsと1,001のwhole-life-cycle trajectoriesを構築し、Qwen3.6-27Bをfine-tuneしました。
実験結果。37.98%から49.51%へ
中心結果は、ProgramBenchのfull 200 instancesです。
- Qwen3.6-27B base: 37.98%
- MindForge-27B: 49.51%
- 絶対差: 11.53 points
- 相対改善: 30.4%
200 tasksの内訳は、MindForgeが152 tasksで改善、43 tasksで悪化、5 tasksでtieでした。少数の簡単なtaskだけが平均を押し上げた形ではありません。
さらに重要なのが、訓練に含まれない7 benchmark、8 settingsでの一般化です。
- RepoZero-C2Rust: 47.00%から78.00%
- DeepSWE: 1.76%から15.92%
- NL2Repo-Bench with tests: 61.27%から71.97%
- SWE-bench Verified: 68.80%から73.84%
- SWE-bench Pro: 45.41%から51.34%
- SWE-bench Multilingual: 62.55%から67.77%
- FeatBench: 50.10%から55.05%

論文のAppendix Dでは、ProgramBenchと8つの一般化settingsの改善が、9 comparisonsへのHolm correction後も統計的に有意だと報告されています。ProgramBench改善のpaired-bootstrap 95% confidence intervalは8.34から14.74 pointsで、zeroをまたぎません。
ここまでは論文の主張です。
AICompanyの解釈では、最も重要な変化はscoreそのものより、reasoningやfailure recoveryが実際のeditへ接続された割合です。base modelはreasoning直後に実装を変えた割合が27.8%、failure recovery直後は31.8%でした。MindForge-27Bでは、それぞれ50.1%、48.8%へ上がっています。
考えた回数ではなく、考えたあとに正しい種類の作業へ移れたか。長期agentでは、この遷移のほうが最終scoreより先行指標になる可能性があります。
実務へ移すなら、正解patchではなく開発loopを保存する
MindForgeをそのまま再現するには、大量のcomputeと長時間benchmarkが必要です。しかし、考え方は小さく試せます。
たとえば社内CLIやdata変換toolを題材に、次のmini experimentを作れます。
1. referenceとworkspaceを分離する
agentへはhelp、example、実行可能binaryだけを見せ、元sourceは別containerへ隔離します。networkも切り、sourceを検索できない状態にします。
2. taskを一発回答にしない
最終codeだけでなく、probeしたcommand、観察結果、設計memo、edit、test、failure recoveryをeventとして記録します。
3. 成功だけでなく遷移を採点する
hidden testのpass rateに加えて、観察から仕様仮説へ移れたか、仕様仮説からimplementation editへ移れたか、failureの原因を特定したあと関係するfileを変更したか、同じ失敗を無意味に繰り返していないかを数えます。
4. 軌跡をcleanにする
network errorや壊れたtool outputを学習データへ残すと、modelは開発能力ではなく事故の癖まで学びます。environment failureとagent failureを分け、補修後も前後のreasoningがつながるか確認します。
このmini experimentなら、fine-tuningまで進まなくても、現在のagentがどこで仕事を止めるかを可視化できます。modelを変える前にharnessを直すべき場所も見つかります。
限界。強くなったが、安くはなっていない
第一の限界はcostです。MindForge-27Bの平均turn数は344.0から735.7、tool callは174.4から373.0へ増えました。ProgramBench 200 instancesのtotal tokenは2.03Bから11.64Bへ5.7倍です。
27B modelが大型modelへ近づいたとしても、agent run全体の費用が自動的に下がるわけではありません。小さいengineを長く回す設計です。
第二に、長時間benchmarkのProgramBench、DeepSWE、両NL2Repo settings、RepoZero-C2Rustは、計算費用のため各model 1 runです。task-levelのpaired testはありますが、run-to-run varianceは十分に測れていません。
第三に、開発行動の分類はrule-basedです。論文自身が、暗黙の行動を見逃すfalse negativeと、偶然のkeywordや無関係なeditを拾うfalse positiveを認めています。固定した10 event、15 event windowも、すべての有効な開発sequenceを表現しません。
第四に、training repositoryとevaluation側で17 instancesのrepository identity overlapがあります。著者はtask形式、commit、prompt、test、solutionが異なるためsolution leakageではないと分析していますが、完全に無関係な世界での一般化とは言えません。
最後に、著者のHugging Face modelと評価artifactはpublicですが、取得にはmanual approvalが必要です。論文の公開と、誰でも即座に完全再現できることは別です。
結論。coding agentへ教えるべきは、codeより仕事の進め方
MindForgeの価値は、27Bが大きなmodelへ迫ったというheadlineだけではありません。
sourceを隠した環境で、挙動を調べ、仕様を作り、設計し、実装し、testし、失敗から戻る。その全工程を一つの学習単位にしたことが本質です。
これからcoding agentを評価するときは、最終patchが正しいかだけでは足りません。調査からeditへ、failureから修正へ、正しい状態遷移を続けられるかを見る必要があります。
短い正解を出すmodelではなく、長い仕事を終えられるmodelを作る。MindForgeは、その訓練設計をかなり具体的な形まで持ってきました。
参照
- MindForge paper, arXiv:2607.27146
- MindForge-27B author model artifact
- ProgramBench evaluation runs
- Distilled training artifacts
【送料無料】マクロキーパッド、ストリームコントローラーデッキゲームストリーミングショートカットキーボード、18個のプログラム可能
