- SWE-agentは、GPT-4のような言語モデル(LM)をソフトウェアエンジニアリングエージェントに変換し、実際のGitHubリポジトリのバグやイシューを修正
- SWE-benchテストセット全体で12.29%のイシューを解決し、全テストセットで最高の性能を達成
エージェント-コンピュータ・インターフェース
- エージェントがリポジトリを探索し、コードファイルを閲覧・編集・実行しやすいように、LM中心のコマンドとフィードバック形式を設計することで、これらの成果を達成。
- これをエージェント-コンピュータ・インターフェース(ACI)と呼び、リポジトリレベルのコーディングエージェント向けにACI設計を容易に反復できるよう、SWE-agentリポジトリを構築。
- 優れたACI設計は、エージェント利用時に大幅に良い結果をもたらすことを示している。
セットアップ
- Dockerをインストールし、ローカルでDockerを起動。
- Minicondaをインストールし、
conda env create -f environment.ymlを使ってswe-agent環境を作成。
conda activate swe-agentを使って有効化。
./setup.shを実行してswe-agentのDockerイメージを作成。
- このリポジトリのルートに
keys.cfgファイルを作成し、必要なAPIキーとGitHubトークンを入力。
使い方
- SWE-agentパイプラインには2つの段階がある。1つ目はGitHubイシューを入力として受け取り、それを解決しようとするプルリクエストを返す推論段階。
- 2つ目の段階はSWE-benchベンチマーク内のイシューに対してのみ可能で、生成されたプルリクエストが実際にイシューを解決したかを確認する評価段階。
評価
- この段階はSWE-benchセットのイシューに対してのみ可能。
- 生成されたプルリクエストを評価するには、
evaluation/ディレクトリに移動して./run_eval.sh を実行。
GN⁺の見解
- SWE-agentは、実際のGitHubイシューを解決するために言語モデルを活用する革新的なアプローチを提示することで、ソフトウェア開発プロセスにおける自動化の可能性を広げている。
- この技術には、開発者が反復的なバグ修正作業から解放され、より創造的で複雑な問題解決に集中できるようにする潜在力がある。
- ACI設計の重要性を強調することで、機械と人間の相互作用を最適化するインターフェース設計の重要性を浮き彫りにしている。
3件のコメント
ああいうagentが開発者にこんなふうに質問しながら仕事をしてくれたら、本当に良さそうですね。
"バグレポートで説明されている再現手順を、問題を再現するテストコードにしてみたよ。私の理解が合っているか、このコードを見てくれる?"
"このデザインよりも、こういうふうにリファクタリングすれば、プロジェクト全体で20,312行のコードを減らせそうなんだけど、do you approve?"
魅力的なオープンソースですね
Hacker Newsの意見
バグレポートに関するコメント:
プロジェクトに関するコメント:
使用された方法論に関するコメント:
AIとバグトラッカーに関するコメント:
SWEbenchベンチマークに関するコメント:
デモ比較に関するコメント:
レビュー作業に関するコメント:
類似プロジェクトに関するコメント:
著者への提案に関するコメント:
オープンソースプロジェクトへの貢献に関するコメント: