project
SWEエージェント - プリンストン大学のオープンソースAIプログラマー、インテリジェントエージェント
SWE-agentは、プリンストン大学の自然言語処理グループの研究者によって開発されたオープンソースのAIプログラマーおよびソフトウェアエンジニアシステムです。大規模言語モデル(GPT-4など)の機能を活用し、GitHubリポジトリ内の問題を自動的に解決します。
SWEエージェントとは何ですか?
SWE-agentは、プリンストン大学の自然言語処理(NLP)グループの研究者によって開発されたオープンソースのAIプログラマーおよびソフトウェアエンジニアシステムです。GPT-4などの大規模言語モデルの機能を活用し、GitHubリポジトリ内の問題を自動的に解決できます。SWE-agentはエージェント・コンピュータ・インターフェース(ACI)を介してコードベースとやり取りし、コードの閲覧、編集、テスト、実行などのタスクを実行できます。SWE-benchテストセットでは、クローズドソースのAIプログラマーであるDevinと同等の精度を示し、平均93秒で問題を解決し、最先端のパフォーマンスを実現しています。
SWE-benchテストセットの25%において、SWE-agentはDevinと同等の精度を達成し、問題の12.29%を解決しました。SWE-agentは現在GitHubでオープンソースとして公開されており、研究論文は4月10日に発表される予定です。
SWEエージェント公式サイトへの入り口
- 公式プロジェクトホームページ:https://swe-agent.com/
- GitHubソースコードリポジトリ:https://github.com/princeton-nlp/SWE-agent
- 公式オンラインデモ:https://swe-agent.com/demo
SWEエージェントの主な機能
- プルリクエストの問題解決SWE-agentはGitHubリポジトリ内の問題を理解し、プルリクエストを作成することでそれらを修正しようと試みます。
- コードの編集と修復SWEエージェントは、コードベース内のファイルを閲覧および編集し、コード内のエラーや脆弱性を自動的に修正できます。
- 自動構文チェックコード編集中、SWEエージェントはリンター(コード検査ツール)を実行して、コードが構文規則に準拠していることを確認できます。
- ファイルビューアこの機能には、1回転あたり100行のコードを表示できる専用のファイルビューアが搭載されており、垂直スクロール機能や検索機能もサポートしているため、より効率的にコードを表示および編集できます。
- ディレクトリ文字列の完全検索SWE-agentには、ディレクトリ全体を文字列で検索する機能があり、検索条件に一致するすべてのファイルとコードスニペットを簡潔に一覧表示できます。
- コマンドとフィードバックエージェント・コンピュータ・インターフェース(ACI)を介して、SWEエージェントは自然言語で与えられたコマンドを受信して実行し、それに対応するフィードバックを提供することができます。
- テストの作成と実行SWEエージェントは、修正の効果を検証するためのテストコードを作成および実行できます。
SWEエージェントのワークフロー
- 問題の理解まず、SWE-agentは自然言語処理(NLP)技術を用いて、GitHubリポジトリ内の課題記述を理解します。このステップでは、内部に統合された大規模言語モデル(GPT-4など)が活用され、人間が作成した課題報告を解析・理解することが可能です。
- エージェント・コンピュータ・インターフェース(ACI)SWE-agentは、コードベースとのやり取りにACIを使用します。ACIは、大規模モデルとコンピュータシステム間のやり取りを簡素化するために設計されたコマンドおよびフィードバック形式のセットです。SWE-agentはACIを介して、コードベースの閲覧、ファイルの検索、コードの表示と編集、さらにはコードの実行を行うことができます。
- コード分析と修正SWE-agentは問題点を理解した後、関連するコードを分析し、潜在的なエラーや脆弱性を特定して、修復計画を生成します。これには、既存コードの変更、不足しているコードの追加、コード構造のリファクタリングなどが含まれる場合があります。
- 自動テスト修正が効果的であることを確認するため、SWEエージェントはテストケースを自動的に作成および実行できます。これらのテストケースは、コードの変更によって新たなエラーが発生することなく、元の問題が解決されたことを検証するように設計されています。
- パフォーマンスフィードバックSWE-agentが実行する各ステップはフィードバックを生成し、そのフィードバックは作業の有効性を評価するために使用されます。具体的には、SWE-benchベンチマークテストにおいて、SWE-agentは生成したプルリクエストが実際に問題を解決しているかどうかを評価します。
- 反復と最適化SWEエージェントの設計は、継続的な反復と最適化を可能にするものです。研究チームは、ユーザーからのフィードバックとパフォーマンスデータを収集することでACIの設計を継続的に改善し、SWEエージェントの問題解決能力とコード修正の精度を高めています。