
GitHub Copilotの新機能を発表:VS Code向けのエージェントモードを導入、Copilot Editsの一般提供を開始、SWEエージェントの初公開
2021年にGitHub Copilotを発表した際、私たちの目標は明確でした。それは、AIペアプログラマーがより良いコードを書く手助けとなり、開発者の生活をより快適にすることでした。GitHub Copilotの名前には、人工知能(AI)は開発者に取って代わるものではないという私たちの信念が反映されています。そしてAIは常に開発者の味方で、優秀な副操縦士のように、一人で操縦することもできます。例えば、プルリクエストのフィードバック、セキュリティ脆弱性の自動修正、課題の実装方法に関するブレインストーミングをしたりすることができます。
今日、私たちはGitHub Copilotをさらに強化、エージェント的なAIの力を追加します。VS Codeにてエージェントモードの導入とCopilot Editsの一般提供(GA)を発表します。また、すべてのGitHub CopilotユーザーにGemini 2.0 Flashモデルを追加します。そして、GitHub Copilotの新しい自律型エージェント(コードネーム:Project Padawan)を初公開します。コード補完、チャット、複数ファイルの編集、ワークスペース管理、エージェント機能を統合し、GitHub Copilotはソフトウェア開発という創造的な作業の中心に人間を据えたまま、AIが開発者がやりたくないことを手伝い、やりたいことに集中できるようにします。
エージェントモードはプレビューで利用可能です🤖
GitHub Copilotの新しいエージェントモードは、自身のコードを反復してエラーを認識し、それを自動修正することができます。また、ターミナルコマンドを提案し、実行を促すこともできます。また、ランタイムエラーを分析し自己修復が可能です。
エージェントモードでは、GitHub Copilotは自分自身の出力だけでなく、その出力の結果に基づいて反復処理します。つまり、要求されたタスクだけを実行するのではなく、必要なサブタスクを推測し、それらをすべて完了するまで動作し続けるのです。さらに、GitHub Copilotは自身のエラーを検知し、それを修正するため、開発者がターミナルの出力を手作業でコピー&ペーストする手間を省くことができます。
ここでは、GitHub CopilotがマラソンのトレーニングをトラッキングするためのiOSアプリを構築する例を紹介します:
始めるには、VS Code Insidersをダウンロードし、GitHub Copilot Chatのエージェントモード設定を有効にしましょう:
次に、Copilot Editsパネルで、モデルピッカーの右隣にあるEditからAgentに切り替えます:
エージェントモードは開発者のエディタでの作業方法を変えるものであり、GitHub CopilotがサポートするすべてのIDEに導入する予定です。また、現在のInsidersビルドが完璧でないことは承知しており、今後数カ月でVS Codeと基盤となるエージェント技術の両方を改善するため、皆様からのフィードバックをお待ちしております。
VS CodeでCopilot EditsがGAに🎉
昨年10月のGitHub Universeで発表されたCopilot Editsは、チャットとインラインチャットの長所を組み合わせたもので、会話型のフローと、管理するファイル群に対してインラインで変更を加える機能を備えています。過去に皆様からいただいたフィードバックのおかげで、本日VS Codeでこの機能をGAとしてリリースできました。ありがとうございました!
Copilot Editsでは、編集対象のファイルを指定し、自然言語で変更をリクエストできます。GitHub Copilotは指定した範囲内でコードをインラインで変更し、開発者は提案された変更を確認しながら、適用・修正を繰り返すことができます。
舞台裏では、Copilot Editsはデュアルモデルアーキテクチャを活用して、編集の効率と精度を高めています。まず、基礎となる言語モデルが編集セッションの完全なコンテキストを考慮し、最初の編集候補を生成します。基礎となる言語モデルは、利用できるモデルは以下のとおりです:
最適なエクスペリエンスのために、私たちは投機的デコードエンドポイントを開発し、ファイルの変更を高速に適用できるように最適化しました。基礎モデルから提案された編集は、投機的デコードエンドポイントに送られ、エディターでインラインに変更を提案します。
Copilot Editsの特徴は、開発者がコントロールを持ち、反復的な作業がしやすいことです。変更を確認しながら、正しい解決策に到達するまで何度も調整できます。さらに、テスト実行や変更の取り消しも可能です。つまり、変更を受け入れた後、コードを実行して変更を確認し、必要に応じてCopilot Editsで元に戻して以前の作業状態に戻すことができます。
Copilot Editsはセカンダリサイドバー(デフォルトは右側)にあるため、提案された変更を確認しながら、エクスプローラ、デバッグ、ソース管理ビューなどのプライマリサイドバーのビューを操作できます。たとえば、左側のテストビューでユニットテストを実行しながら、右側のCopilot Editsビューを使用して、反復ごとにCopilot Editsが提案した変更がユニットテストに合格しているかどうかを確認できます。
音声入力を使用すると、Copilot Editsとのやりとりがさらにスムーズになります。まるで熟練の開発者とペアプログラミングをしているような感覚です。
ロードマップの次の予定は、変更を投機的にデコードするエンドポイントのパフォーマンスを改善し、コンテキストを保持することでGitHub Copilot ChatからCopilot Editsへの移行をサポートし、作業セットにファイルを提案し、提案されたチャンクを元に戻せるようにすることです。これらの改良をいち早く利用したい場合は、VS Code InsidersとGitHub Copilot Chat拡張機能のプレリリース版を使用してください。この機能の改善にご協力いただける場合は、こちらのリポジトリに問題をご報告ください。
VS CodeでのGA以外では、Copilot Editsは現在Visual Studio 2022のプレビュー版となっています。
SWEエージェントがGitHubに登場
今回、私たちの自律型SWEエージェントのデモと、このようなエージェントがGitHubのユーザー体験にどのようにフィットしていくかをご紹介できることを嬉しく思います。Project Padawanというコードネームで開発中の製品が今年後半にリリースされると、GitHub Copilotに課題を直接割り当てることができるようになります。タスクが完了すると、GitHub Copilotはあなたや同僚をPRにアサインし、あなたが追加したフィードバックを解決します。いわば、GitHub CopilotをGitHub上のあなたのリポジトリへの貢献者としてオンボードするようなものです。✨
舞台裏では、GitHub Copilotは割り当てられた課題ごとにセキュアなクラウドサンドボックスを自動的に立ち上げます。その後、リポジトリのクローン作成、環境のセットアップ、コードベースの分析、必要なファイルの編集、コードのビルド、テスト、リンティングを非同期に行います。さらに、GitHub Copilotは課題またはPR内の議論やリポジトリ内のカスタム指示を考慮するため、タスクの完全な意図だけでなく、プロジェクトのガイドラインや規約も理解します。
エージェントが動作している間、開発者は他の機能の開発を続けたり、プルリクエストをレビューしたり、コーヒーを飲んだりすることができます。開発者がCI/CDのログファイルを閲覧しないように、開発者がエージェントが同期的に作業しているのを見たいとは思っていません。私たちのエージェント的な未来の鍵は、SWEエージェントが非同期で実行され、共通のプルリクエストフローと統合されることです。
また、GitHub Copilot ExtensionsやGitHub Copilotのモデルピッカーの開発と同様に、このAIネイティブなワークフローへの統合の機会を提供し、パートナーやユーザーと密接に連携しながら、フィードバックを反映していきます。Project Padawanの目指す最終形は、バグ修正、テストの作成・メンテナンスといった、面倒だが重要な作業を自動化し、開発者が本当に必要なことに集中できるようにすることです。そして何より、エージェントが「ダークサイド」に堕ちることはないのでご安心ください。😉
VS CodeとGitHub Copilotエージェントモードで、エージェントを覚醒させましょう。 |