JoyCode Agent — SWE-Benchベースの修復エージェント
概要
JoyCode Agentは、実運用されているオープンソースプロジェクトに対して、言語モデル(LLM)を用いた自動修復ワークフローを提供するリポジトリです。主な流れは「パッチ生成 → テスト生成(任意)と事前検証 → パッチ検証と失敗解析 → 必要に応じたリトライ」で、SWE-Benchベンチマークを前提に設計されています。エージェントはコンテナ内で実行され、差分(diff)を出力してCI相当の検証を行えるため、再現性と分離性を確保します。デフォルトのエントリポイントは run_patch_pipeline.py で、実運用を想定した自動化が可能です。(約300字)
リポジトリの統計情報
- スター数: 91
- フォーク数: 0
- ウォッチャー数: 91
- コミット数: 3
- ファイル数: 20
- メインの言語: Python
主な特徴
- パッチ生成: コンテナ化されたエージェントがコード差分(patch/diff)を生成するワークフローを提供
- テスト生成と事前検証: 新規テストの自動生成(オプション)と、生成前のコードベースに対する事前チェックを実施
- 検証と根本原因分析: パッチ適用後のテスト結果から「テストの問題かパッチの問題か」を判別し、インテリジェントにリトライ
- エンドツーエンド運用: run_patch_pipeline.py を中心とした実行可能なパイプラインで、SWE-Benchデータセットとの連携を想定
技術的なポイント
JoyCode Agentは、LLMを用いた自動修復を実運用レベルで回すための設計思想が随所に見られます。まず、エージェント実行をコンテナに閉じ込めることで、依存関係や環境差による非決定性を抑制し、再現性の高いパッチ生成を実現しています。パッチ生成は単なるdiff出力に留まらず、生成した変更に対して自動テストを回すことで「動作検証→失敗時の原因解析→リトライ」までを一連のループとして組み込んでいる点が重要です。
テスト生成機能は、既存テストが不足しているケースに対してLLMや自動テスト作成ツールを用いて補完することを意図しており、事前に生成テストをオリジナルコードベースで検証することで偽陽性(テスト自体の問題)を減らす工夫をしています。根本原因分析( root-cause analysis )は、テスト失敗のパターン分析やスタックトレースの解釈を組み合わせることで、修正対象がコードのロジックか、あるいはテスト設計の欠陥かを切り分け、無駄なリトライを避けます。
さらに、パイプラインはSWE-Benchに合わせた出力形式や評価指標を想定しているため、研究用途と実運用の橋渡しにも適しています。Pythonベースで構成されているため、CI統合や既存の自動修復ツールチェーンへの組み込みが容易です。一方で、LLMの非決定性、フレークなテスト、依存パッケージの揺らぎといった現実的な課題に対処するためのメトリクス設計やリトライ戦略のチューニングが運用上の鍵となります。(約700字)
プロジェクトの構成
主要なファイルとディレクトリ:
- .DS_Store: file
- LICENSE.txt: file
- NOTICE-Third-Party: file
- README.md: file
- init.py: file
…他 15 ファイル
(注)リポジトリ内には実行用スクリプト(run_patch_pipeline.py)やエージェント関連のモジュール、テスト生成/検証用のユーティリティが含まれている想定です。コンテナ設定や依存管理はREADMEに記載の実行手順に従ってください。
まとめ
SWE-Bench準拠の自動修復パイプラインを手早く試せる実用的な実装です(約50字)。
リポジトリ情報:
- 名前: joycode-agent
- 説明: Repository-level Repair Agent Based on SWE-Bench—JoyCode Agent
- スター数: 91
- 言語: Python
- URL: https://github.com/jd-opensource/joycode-agent
- オーナー: jd-opensource
- アバター: https://avatars.githubusercontent.com/u/75349771?v=4
READMEの抜粋:
JoyCode SWE-bench Agent Pipeline
An end-to-end pipeline that lets LLMs fix real-world OSS: generate patch → generate/verify tests → intelligent retries.
This repository provides a ready-to-run SWE-bench pipeline. The default entry point is run_patch_pipeline.py.
Features
- Patch generation: run agents in a container to produce code diffs
- Test generation (optional) and pre-validation on the original codebase
- Validation and root-cause analysis for failures (test issue vs. patch…