LLMを活用してソフトウェアのバグを自動検出・修正する技術。エラーメッセージやスタックトレースからバグの原因を推論し、修正パッチを自動生成する。SWE-Benchが標準評価基準。
LLM Code Repair(LLMコード修復)は、大規模言語モデルを用いてプログラムのバグを自動的に検出・診断・修正する技術である。従来の自動プログラム修復(APR: Automated Program Repair)がテンプレートベースや遺伝的アルゴリズムに依存していたのに対し、LLMはコードの意味的理解に基づいてより自然で正確な修正を生成する。
LLMベースのコード修復は以下のステップで動作する。
バグ報告/テスト失敗 → 障害箇所の特定 → 原因分析 → パッチ生成 → パッチ検証 → 適用
エラーメッセージ・スタックトレース・テスト結果からバグの存在するファイル・関数・行を特定する。LLMはスタックトレースの解析と関連コードの理解を同時に行えるため、従来のスペクトラムベース手法(Ochiai/Tarantula)より広い文脈を考慮できる。
特定されたバグ箇所に対し、LLMが修正コード(パッチ)を生成する。単一行の修正から複数ファイルにまたがるリファクタリングまで対応する。
| 修正タイプ | 例 | LLMの強み |
|---|---|---|
| 単一行修正 | off-by-one、null check追加 | 高精度(80%+) |
| 関数レベル修正 | アルゴリズム変更、API移行 | 中精度(50-70%) |
| 複数ファイル修正 | インターフェース変更、依存関係修正 | 長コンテキストモデルで改善中 |
SWE-Bench(Software Engineering Benchmark)は、実際のGitHub Issue/PRからバグ修正タスクを抽出したベンチマークである。
| モデル/ツール | スコア | 時期 |
|---|---|---|
| Claude 3.5 Sonnet (raw) | 49.0% | 2024 Q4 |
| Claude Sonnet 4 + scaffold | 70.3% | 2025 Q2 |
| OpenAI o3 + scaffold | 71.7% | 2025 Q2 |
| Devin (Cognition) | 55.0% | 2025 Q1 |
| SWE-Agent | 40.2% | 2024 Q3 |
| Aider + Claude | 45.3% | 2024 Q4 |
SWE-Bench Verifiedは500問の厳選セットで、人間の検証済みテストケースで正確性を保証している。
A: SWE-Bench Verifiedで70%超のスコアが示す通り、単純〜中程度のバグは高い確率で修正可能。ただし全自動適用は推奨されず、人間のコードレビューを経るのが安全。
A: Python・TypeScript・Javaで最も精度が高い。SWE-Benchの対象がPythonプロジェクト中心であるため、Python修正のデータが最も豊富である。
A: SQLインジェクション・XSS・パストラバーサルなどの定型的な脆弱性パターンは修正可能。ただしビジネスロジックに起因するアクセス制御バグ等は文脈依存性が高く、自動修正の信頼性は低い。