Socratic-SWE: Self-Evolving Coding Agents via Trace-Derived Agent Skills
Socratic-SWEは、エージェントの過去の解決トレースを構造化されたスキルへと変換し、標的を絞った検証可能な修復タスクを生成することで、固定された変異手順に依存することなく継続的な改善を可能にし、SWEベンチマークにおいて最先端の性能を達成するクローズドループ型の自己進化フレームワークを導入する。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
あなたは、ロボットに壊れたソフトウェアを修理する方法を教えようとしていると想像してください。通常、ロボットのために何千もの特定の「宿題」を作成し、答えを見つけ、採点しなければなりません。これはコストがかかり、時間がかかり、しかもその宿題がロボットの実際の弱点と一致しないこともよくあります。
この論文では、これらのコーディング・ロボットを訓練するための新しい手法であるSocratic-SWEを紹介しています。ロボットに静的な宿題を配る代わりに、ロボットが自分自身のミスと成功を分析し、それをパーソナライズされた学習ガイドへと変えることで、自律的に学習を進める方法です。
その仕組みを、簡単な比喩を使って説明します。
1. 旧来の方法:静的な教科書
ある学生が木工を学ぼうとしている場面を想像してください。従来の方法では、教師が修正のための設計図を1,000枚用意して渡します。
- 問題点: 一部の設計図は簡単すぎ(学生はすでに直し方を知っている)、一部は不可能すぎます(学生はまだ適切な道具を持っていない)。教師は、学生がいま現在、何に苦戦しているのかを知りません。
- 結果: 学生はすでに知っていることに時間を浪費するか、解決できない問題で行き詰まり、最終的には成長が止まってしまいます。
2. 新しい方法:Socratic-SWE(自己学習する弟子)
Socratic-SWEはゲームのルールを変えます。ロボットが「生徒」であると同時に「教師」でもあるという、**クローズドループ(閉じたループ)**を作り出します。
ステップ1:「トレース」(ビデオ再生)
ロボットがバグを修正しようとするたびに、デジタルな「足跡」であるトレースが残されます。これは、ロボットの思考プロセス全体のビデオ再生のようなものです。
- どこを探したのか?
- どのコードを変更したのか?
- テストはパスしたのか、それとも失敗したのか?
- 何かを誤って壊してしまわなかったか?
以前は、研究者たちはこれらの再生映像を単なる「合格」または「不合格」の判定にのみ使い、そのまま捨てていました。Socratic-SWEは、「待て!このビデオをもう一度見直そう」と言います。
ステップ2:「スキルの抽出」(学習ガイド)
システムはすべての再生映像を観察し、パターンを見つけ出します。
- 失敗した場合: 「ああ、タブを3つ開いた状態でファイルを編集しようとすると、いつも最初のファイルを保存し忘れている」といったことを察知します。
- 成功した場合: 「エラーログを確認してから編集を行うと、たいてい成功している」といったことを察し。
これらは構造化された**「エージェント・スキル・レジストリ(Agent Skill Registry)」へと変換されます。これは、パーソナライズされた「学習ガイド」や「コーチのチートシート」**のようなものです。ロボットが苦手なこと(例:「副作用のチェックを忘れないこと」)と、得意なことが明確にリストアップされます。
ステップ3:「新しい宿題の生成」(カスタムクイズ)
次に、ロボットはこの学習ガイドを使用して、新しい宿題を作成します。
- ランダムにバグを選ぶのではなく、ロボットはこう問いかけます。「私の学習ガイドによれば、『複数ファイルの編集』で失敗し続けている。では、一度に3つのファイルを編集しなければならない、非常にトリッキーなバグを新しく作成しよう」
- これにより、宿題がロボットの現在の弱点に対して完璧にターゲットを絞ったものになります。
ステップ4:「検証器(Verifier)」という門番
新しい宿題がロボットに与えられる前に、厳格な**門番(Gatekeeper)**がそれをチェックします。
- そのバグは実際に存在するのか?
- ロボットはそれを本当に修正できるのか?
- テストは信頼できるものか?
もし宿題が壊れていたり不可能であったりする場合、それは破棄されます。高品質で解決可能なタスクのみが、トレーニング・プールへと送られます。
「勾配アライメント(Gradient Alignment)」(コンパス)
もう一つ、巧妙なトリックがあります。システムは単にロボットに「何らかの問題」を解かせたいのではありません。ロボットに「正しい方向」で成長してほしいのです。
- システムには「信頼できる方向(既知の高品質なタスクのセット)」があります。
- ロボットが新しいタスクを生成すると、システムはこう問いかけます。「この新しいタスクを解くことは、私たちの『信頼できるコンパス』と同じ方向に進むことになるだろうか?」
- もしYESであれば、そのタスクは保持されます。もしNOであれば、破棄されます。これにより、ロボットが偽の問題に対してのみ通用する「小細工」を学習することを防ぎます。
結果:より速く賢くなる
研究者たちは、4つの主要なベンチマーク(コーディング・エージェントの最終試験のようなもの)でテストを行いました。
- ベースライン: 固定されたデータで訓練された標準的なロボット。
- 競合相手: この特定の「スキル・レジストリ」手法を用いずに自己学習を試みる他のロボット。
- Socratic-SWE: 自己学習をわずか3ラウンド行っただけで、最も難しいテスト(SWE-bench Verified)で**50.4%**を記録しました。これは、停滞したり、あるいは非常にゆっくりとしか向上できなかった他のモデルと比較して、劇的な飛躍でした。
なぜこれが重要なのか
この論文は、Socratic-SWEが、人間が際限なく新しい宿題を書き続ける必要はないことを証明していると主張しています。ロボット自身の履歴(トレース)を再利用してスキルガイドを構築することで、ロボットは自律的にカリキュラムを生成し続けることができます。これは、ロボットの過去の失敗を未来の燃料へと変え、絶え間ない人間の教師を必要とせずに、進化し続け、向上することを可能にします。
要約すると: これは、ロボットが自分の試合のビデオを見返し、自ら学習ガイドを書き、独自の練習ドリルを作成し、そして実際に上達したかどうかを確認するためにテストを受けるようなものです。そして、この「セルフ・コーチング」の手法が、人間が同じ古いワークシートを配り続けるよりも優れた結果をもたらすことが判明しました。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。