powered by TechFeed
表示モード
主要ニュース

YAMLファイル1枚でLLMが自律的にGitHubのバグを修正 — プリンストン発「SWE-agent」がコードエージェントの新標準になるか

8月28日、opensourceprojects.devが「SWE-agent lets your LLM autonomously fix real GitHub issues via a single YAML file」と題した記事を公開した。LLMがYAML1ファイルの設定だけで実際のGitHubリポジトリのIssueを自律的に修正できるOSSフレームワーク「SWE-agent」について詳しく紹介されている。

8月28日、opensourceprojects.devが「SWE-agent lets your LLM autonomously fix real GitHub issues via a single YAML file」と題した記事を公開した。LLMがYAML1ファイルの設定だけで実際のGitHubリポジトリのIssueを自律的に修正できるOSSフレームワーク「SWE-agent」について詳しく紹介されている。


LLMにコードを書かせたり、バグの原因を説明させたりするのはすでに一般的だ。しかし「リポジトリをナビゲートし、テストを実行し、動くパッチを提出する」となると話は別になる。SWE-agentはプリンストン大学の研究者が開発したフレームワークで、まさにそのギャップを埋めることを目指している。

コードエージェント領域では近年、DevinOpenHands(旧OpenDevin)など、自律的にコードを書き・テストし・修正するシステムが相次いで登場している。SWE-agentはその中でも「研究者がハックしやすい透明な設計」を重視した点で独自の立ち位置を持つ。

YAML1ファイルがエージェントのすべてを定義する

SWE-agentの最大の特徴は、エージェントの挙動全体を単一のYAMLファイルで制御する点にある。ツールセット、プロンプト、インタラクションループ——これらすべてが1ファイルに集約されており、読めば何が起きているか把握できる。

エージェントが意図しない動作をしたとき、ブラックボックスのシステムでは原因を追いにくい。YAMLで完全に定義されていれば、デバッグもカスタマイズも直感的に行える。新しいツールを追加したければYAMLを編集すればよい。この透明性は、研究・実験用途では特に価値が高い。

内部的には、LLM(GPT-4oやClaude Sonnetなど)にシェル、ファイルエディタ、リポジトリへのアクセスを与え、エージェントループの中で自律的にタスクを実行させる。モデルに「パッチを出力させる」のではなく、「パッチを作る行動をとらせる」設計だ。

SWE-benchでオープンソース最高水準の成績

記事によれば、SWE-agentはオープンソースプロジェクトの中で**SWE-bench(LLMのソフトウェアエンジニアリング能力を評価するベンチマーク)においてトップクラスの成績**を達成している。元記事ではClaude 3.7を用いたSWE-bench verifiedおよびfullの両バリアントで強い結果を出していると紹介されており、これはSWE-agentとClaude 3.7の組み合わせでの評価結果を指す。

設計思想は「自由度が高く、汎用的であること」だ。厳密なパイプラインにモデルを閉じ込めるのではなく、問題へのアプローチを最大限モデルに委ねる。この柔軟性がバグ修正以外のタスクにも応用を広げている。

バグ修正だけでなく、サイバーセキュリティにも

SWE-agentにはEnIGMAと呼ばれる専用モードがあり、オフェンシブセキュリティのCTF(Capture The Flag)チャレンジに対応している。複数のサイバーセキュリティベンチマークで最高水準の結果を達成しており、エージェントループがソフトウェアエンジニアリングを超えて汎用的に機能することを示している。なおEnIGMAは現在バージョン0.7上で動作する。

試し方

最も手軽な方法は、READMEにあるワンクリックボタンでGitHub Codespacesを起動する方法だ。ローカル環境のセットアップ不要で即座に試せる。

ローカルで動かしたい場合の手順は以下のとおりだ:

  1. github.com/SWE-agent/SWE-agent でリポジトリを確認する
  2. swe-agent.com/latest/installation/source/ でインストールドキュメントを参照する
  3. コマンドラインから"hello world"相当のサンプルを実行してエージェントの動作を確認する
  4. ベンチマーク評価が目的なら、ドキュメントにSWE-benchのバッチ実行方法が記載されている

ドキュメントサイトはswe-agent.comで、FAQ、インストールガイド、使用例が揃っている。

後継プロジェクトへの移行も視野に

開発チームは現在、後継プロジェクトである**mini-swe-agent**へ開発リソースの大半をシフトしている。mini-swe-agentはSWE-agentと同等の性能を持ちながら、より構造がシンプルだとされており、新規プロジェクトにはこちらを推奨している。

ただし、EnIGMAのサイバーセキュリティ機能が必要な場合、あるいは実績あるコードベースで作業したい場合は、SWE-agent 0.7が現状の選択肢となる。研究・実験用途であれば、抽象化レイヤーが少なく「ハックしやすい」SWE-agentから入るのは合理的な判断だ。DevinやOpenHandsのような商用・統合型ソリューションと比べると機能の網羅性では劣る面もあるが、動作原理を完全に把握した上でカスタマイズできる点は、研究者や実験的な用途を持つエンジニアにとって大きな強みになる。


詳細はSWE-agent lets your LLM autonomously fix real GitHub issues via a single YAML fileを参照していただきたい。