Levix

Levix's zone

x
telegram

GitHub Copilot の強力なモードを全面的に理解する

image

先月、私たちはエージェントモードをリリースしました。これは、GitHub Copilotを、あなたと協力するだけでなく、あなたのために働くシステムにするための重要なステップです。自然言語のプロンプトを与えると、Copilot のエージェントモードはあなたの代わりにそれを実行し、時間がかかるプロセスやワークフローを自動化し、より高次の問題解決に集中できるスペースを提供します。
先月、私たちはエージェントモードをリリースしました。これは、GitHub Copilot を協力するだけでなく、あなたのために働くシステムにするための重要なステップです。自然言語のプロンプトを与えると、Copilot のエージェントモードはあなたの代わりにそれを実行し、時間がかかるプロセスやワークフローを自動化し、より高次の問題解決に集中できるスペースを提供します。

コーディングに不慣れな方にとって、エージェントモードはアプリを開発する際に便利な同期ツールとなります(Copilot の新しいコーディングエージェントのプレビューでは非同期タスク完了機能を提供しています)。しかし、エージェントモードは、より迅速に作業を進めたい経験豊富な開発者にとっても非常に便利なツールです。エージェントモードを使用すると、高次の要件を持って Copilot にプロンプトを与えることから、プロトタイプのテストに迅速に移行できます。さらに、すべてのレベルの開発者の間で新しいユースケースが展開され続けています。
コーディングに不慣れな方にとって、エージェントモードはアプリを開発する際に便利な同期ツールとなります(私たちの新しいコーディングエージェントのプレビューは非同期タスク完了機能を提供しています)。しかし、同様に、あるいはそれ以上に、効率を追求する経験豊富な開発者にとっても非常に強力なツールです。エージェントモードを使用すると、高次の要件を持って Copilot にプロンプトを与えることから、プロトタイプのテストに迅速に移行できます。さらに、私たちはすべてのレベルの開発者の間で新しいユースケースが展開され続けているのを見ています。

エージェントモードとは何か、どのように機能するのか、そしてどのように使用できるのかを詳しく見ていきましょう。
エージェントモードの定義、機能、使用方法を詳しく見ていきましょう。

しかしまず、GitHub Copilot エージェントモードとは何でしょうか?
しかしまず、GitHub Copilot エージェントモードとは何でしょうか?#

GitHub Copilot エージェントモードは、自然言語のプロンプトに基づいて複数のコーディングタスクを実行する自律的でエージェント的なリアルタイムの同期コラボレーターです。より簡単に言えば、あなたの意図を理解し、解決策を構築し、正しい結果が得られるまで反復する問題解決者です。
GitHub Copilot エージェントモードは、自律的でエージェント的なリアルタイムの同期コラボレーターであり、自然言語のプロンプトに基づいて複数のコーディングタスクを実行します。簡単に言えば、あなたの意図を理解し、解決策を構築し、正しい結果が得られるまで反復する問題解決者です。

エージェントモードは以下のことができます:
エージェントモードは以下のことができます:

  • コードベースを分析して全体のコンテキストを把握する。
    コードベースを分析して全体のコンテキストを把握します。
  • 複数のステップの解決策を計画し実行する。
    複数のステップの解決策を計画し実行します。
  • コマンドやテストを実行する。
    コマンドやテストを実行します。
  • 専門的なタスクのために外部ツールに連絡する。
    専門的なタスクのために外部ツールに連絡します。
  • アーキテクチャの改善を提案する。
    アーキテクチャの改善を提案します。
  • 計画、変更の適用、テスト、反復を含むエージェントループを通じて自身の作業を実行し、洗練させる。
    計画、変更の適用、テスト、反復を含むエージェントループを通じて自身の作業を実行し、洗練させます。

エージェントモードは、単にリクエストに応じるのではなく、あなたの目標に向かって積極的に働きかけます。あなたが結果を定義し、最適なアプローチを決定します — 必要に応じてあなたからフィードバックを求め、自身の解決策をテストし、リアルタイムで作業を洗練させます。そして、操作中には、その推論、意思決定プロセス、使用するツールを確認できます。
エージェントモードは、単にリクエストに応じるのではなく、あなたの目標に向かって積極的に働きかけます。あなたが結果を定義し、最適なアプローチを決定します — 必要に応じてあなたからフィードバックを求め、自身の解決策をテストし、リアルタイムで作業を洗練させます。そして、操作中には、その推論、意思決定プロセス、使用するツールを確認できます。

Copilot にコードベースを分析させたり、ファイルの編集を提案させたり、テストを実行させたりしたい場合、エージェントモードを使用すると、Copilot がすべての必要なサブタスクを自動的に完了させることができます。
Copilot にコードベースを分析させたり、ファイルの編集を提案させたり、テストを実行させたりしたい場合、エージェントモードを使用すると、Copilot がすべての必要なサブタスクを自動的に完了させることができます。

さらに、エージェントモードは Copilot がエラーを迅速に認識し、自動的に修正することを可能にします。
さらに、エージェントモードは Copilot がエラーを迅速に認識し、自動的に修正することを可能にします。

エージェントモードと他の AI コーディングツールとの比較は以下の通りです:
エージェントモードと他の AI コーディングツールとの比較は以下の通りです:

Tool 工具

What it is 功能说明

エージェントモード
エージェントモード

Copilot が自らのコードを反復し、エラーを認識し、自動的に修正できるモード
Copilot が自らのコードを反復し、エラーを認識し、自動的に修正できるモード

GitHub Copilot コーディングエージェント
GitHub Copilot コーディングエージェント

自律的な SWE エージェントで、非同期的にあなたの代わりに作業し、問題解決から人間のフィードバックの処理まで行う
自律的な SWE エージェントで、非同期的にあなたの代わりに作業し、問題解決から人間のフィードバックの処理まで行う

コード補完
コード補完

サポートされている IDE で自動補完スタイルの提案を提供する Copilot の機能
サポートされている IDE で自動補完スタイルの提案を提供する Copilot の機能

GitHub Copilot のエージェントモードはどのように機能しますか?
GitHub Copilot のエージェントモードはどのように機能しますか?#

Flowchart diagram illustrating how a user interacts with Copilot, which communicates with a machine, workspace, and tools, all connected through a loop involving a large language model (LLM).

エージェントモードの核心は、最終的な状態に達するまで Copilot に自身の出力を反復し続けるよう指示するシステムプロンプトを通じて、さまざまなツールや変数(例:あなたのプロンプトや作業スペース)を調整することです。
エージェントモードの核心は、最終的な状態に達するまで Copilot に自身の出力を反復し続けるよう指示するシステムプロンプトを通じて、さまざまなツールや変数(例:あなたのプロンプトや作業スペース)を調整することです。

自然言語のプロンプトを Copilot エージェントモードに送信すると、私たちのバックエンドシステムプロンプトによって強化されます。これには、あなたのクエリ、作業スペースの要約構造、マシンコンテキスト、ツールの説明が含まれます。
自然言語のプロンプトを Copilot エージェントモードに送信すると、私たちのバックエンドシステムプロンプトによって強化されます。これには、あなたのクエリ、作業スペースの要約構造、マシンコンテキスト、ツールの説明が含まれます。

Copilot エージェントモードを使用する際に何が起こるかを分解してみましょう:
Copilot エージェントモードを使用する際に何が起こるかを分解してみましょう:

  • あなたは Copilot に望む最終結果に関する明確な要件を提示します。
    あなたは Copilot に望む最終結果に関する明確な要件を提示します。
  • Copilot は質問を解析し、AI 言語モデルにタスクを解決する方法を尋ね、その後作業を開始します。
    Copilot は質問を解析し、AI 言語モデルにタスクを解決する方法を尋ね、その後作業を開始します。
  • Copilot は最初の反復を監視し、エラーを検出し、修正方法を決定します。
    Copilot は最初の反復を監視し、エラーを検出し、修正方法を決定します。
  • エージェントモードは自律的にさまざまなツールを使用して最終結果に到達します。
    エージェントモードは自律的にさまざまなツールを使用して最終結果に到達します。

コマンドを実行し、編集を適用した後、エージェントモードは構文エラー、ターミナル出力、テスト結果、ビルドエラーを検出します。結果に基づいて、追加の編集、ターミナルコマンド、またはツール呼び出しを行うことで修正方法を決定します。
コマンドを実行し、編集を適用した後、エージェントモードは構文エラー、ターミナル出力、テスト結果、ビルドエラーを検出します。結果に基づいて、追加の編集、ターミナルコマンド、またはツール呼び出しを行うことで修正方法を決定します。

LLM は呼び出すためのツールのセットを持っており、それぞれのツールは Copilot がタスクを完了するのを助ける機能を持っています — どのツールをエージェントモードに使用させるかはあなたが決定します。read_fileedit_filerun_in_terminalなどの各ツールは、Copilot にどのように、いつ使用するかについての詳細な指示を提供します。これらのツールにより、Copilot はあなたの作業スペースを検索し、ファイルの内容を読み取り、ターミナルコマンドを実行し、エディタからエラーを取得し、提案された変更を適用することができます。
LLM は呼び出すためのツールのセットを持っており、それぞれのツールは Copilot がタスクを完了するのを助ける機能を持っています — どのツールをエージェントモードに使用させるかはあなたが決定します。read_fileedit_filerun_in_terminalなどの各ツールは、Copilot にどのように、いつ使用するかについての詳細な指示を提供します。これらのツールにより、Copilot はあなたの作業スペースを検索し、ファイルの内容を読み取り、ターミナルコマンドを実行し、エディタからエラーを取得し、提案された変更を適用することができます。

組み込みツールだけに制限されるわけではありません。モデルコンテキストプロトコル(MCP)サーバーや拡張機能からより専門的なツールをインストールすることで、エージェントモードの機能を拡張できます。MCP は、AI モデルが統一されたインターフェースを介して外部ツールやサービスと相互作用できるオープンスタンダードです。最近、GitHub MCP サーバーを発表しました。これにより、あなたは:
組み込みツールだけに制限されるわけではありません。モデルコンテキストプロトコル(MCP)サーバーや拡張機能からより専門的なツールをインストールすることで、エージェントモードの機能を拡張できます。MCP は、AI モデルが統一されたインターフェースを介して外部ツールやサービスと相互作用できるオープンスタンダードです。最近、GitHub MCP サーバーを発表しました。これにより、あなたは:

  • GitHub のワークフローやプロセスを自動化する。
    GitHub のワークフローやプロセスを自動化します。
  • GitHub リポジトリからデータを抽出し分析する。
    GitHub リポジトリからデータを抽出し分析します。
  • GitHub のエコシステムと相互作用する AI 駆動のツールやアプリケーションを構築する。
    GitHub のエコシステムと相互作用する AI 駆動のツールやアプリケーションを構築します。

エージェントモードと MCP の力を組み合わせることで、LLM の知識はあなたのサービスやデータソースに接続されるとさらに拡張されます。✨
エージェントモードと MCP の力を組み合わせることで、LLM の知識はあなたのサービスやデータソースに接続されるとさらに拡張されます。✨

GitHub Copilot エージェントモードで何ができるのか?どのようなユースケースがありますか?
GitHub Copilot エージェントモードで何ができるのか?どのようなユースケースがありますか?#

エージェントモードは GitHub Copilot にエージェント的なワークフローをもたらし、あなたのワークフロー内の任意のタスクに対してリアルタイムで同期的な支援を提供します。
エージェントモードは GitHub Copilot にエージェント的なワークフローをもたらし、あなたのワークフロー内の任意のタスクに対してリアルタイムで同期的な支援を提供します。

エージェントにアイデアを持たせて実行させるか、各ステップを導いてその道を制御するかにかかわらず、あなたは Copilot を運転手として利用できます。
エージェントにアイデアを持たせて実行させるか、各ステップを導いてその道を制御するかにかかわらず、あなたは Copilot を運転手として利用できます。

私の個人的な経験では、エージェントモードは小さなプロジェクトや概念実証をゼロから始める際にゲームチェンジャーでした。オープンソースの歴史可視化スクリプトを近代化する必要があったとき、私はエージェントモードを GPT-4o と Claude 3.7 モデルの両方でテストしました。結果は驚くべきものでした — それは私たちの基本的な matplotlib ヒストグラムを、最小限の指導で洗練された SVG ベースのアニメーション折れ線グラフに変えました。特に印象的だったのは、Copilot が初めての試みで完璧な SVG ヒストグラムを生成したことです。この知的支援は開発を加速するだけでなく、プロトタイピングやリファクタリングへのアプローチを根本的に変えました。
私の個人的な経験では、エージェントモードは小さなプロジェクトや概念実証をゼロから始める際にゲームチェンジャーでした。オープンソースの歴史可視化スクリプトを近代化する必要があったとき、私はエージェントモードを GPT-4o と Claude 3.7 モデルの両方でテストしました。結果は驚くべきものでした — それは私たちの基本的な matplotlib ヒストグラムを、最小限の指導で洗練された SVG ベースのアニメーション折れ線グラフに変えました。特に印象的だったのは、Copilot が初めての試みで完璧な SVG ヒストグラムを生成したことです。この知的支援は開発を加速するだけでなく、プロトタイピングやリファクタリングへのアプローチを根本的に変えました。

Zhe-You Liu, Apache Airflow Committer
刘哲有,Apache Airflow 提交者

以下は、GitHub 内外の開発者がエージェントモードを使用している方法のいくつかです:
以下は、GitHub 内外の開発者がエージェントモードを使用している方法のいくつかです:

  • コードのリファクタリング
    コードのリファクタリング
  • プロジェクトを別のプログラミング言語または別の技術スタックに移行する
    プロジェクトを別のプログラミング言語または別の技術スタックに移行する
  • テストを書く
    テストを書く
  • レガシーコードを近代化する(古い言語を学ぶ必要がないように)
    レガシーコードを近代化する(古い言語を学ぶ必要がないように)
  • コード生成エラーを自動修正する
    コード生成エラーを自動修正する
  • アプリケーションに新機能を追加する
    アプリケーションに新機能を追加する
  • 機能仕様や UI スケッチに基づいて新しいアプリをプロトタイピングする
    機能仕様や UI スケッチに基づいて新しいアプリをプロトタイピングする
  • 非機能要件やボイラープレートコードを実装する
    非機能要件やボイラープレートコードを実装する
  • 新機能の実装に向けた作業の範囲と計画を立てる
    新機能の実装に向けた作業の範囲と計画を立てる
  • ドキュメント作成などの非コード生成タスク
    ドキュメント作成などの非コード生成タスク

重要な点として、Copilot は LLM によって駆動されており、これは非決定的であるため、同じプロンプトとコンテキストでも提案が異なる場合があります。
重要な点として、Copilot は LLM によって駆動されており、これは非決定的であるため、同じプロンプトとコンテキストでも提案が異なる場合があります。

エージェントモードを使用するにはどうすればよいですか?
エージェントモードを使用するにはどうすればよいですか?#

VS Code で Copilot Chat ビューを開き、チャットモードのドロップダウンリストからエージェントを選択します。また、Visual Studio でプレビューすることもできます。
VS Code で Copilot Chat ビューを開き、チャットモードのドロップダウンリストからエージェントを選択します。また、Visual Studio でプレビューすることもできます。

VS Code のチャット体験に統合されているエージェントモードは、あなたの作業スペース全体と開発環境にアクセスできるため、リクエストを正確に達成するための適切なコンテキストを持っています。エージェントモードの機能を拡張するには、ツールボタンを選択してツールを構成または追加します。
VS Code のチャット体験に統合されているエージェントモードは、あなたの作業スペース全体と開発環境にアクセスできるため、リクエストを正確に達成するための適切なコンテキストを持っています。エージェントモードの機能を拡張するには、ツールボタンを選択してツールを構成または追加します。

エージェントモードはあなたの選択したモデルによって駆動されています。モデルのドロップダウンリストから使用するモデルを選択できます。
エージェントモードはあなたの選択したモデルによって駆動されています。モデルのドロップダウンリストから使用するモデルを選択できます。

エージェントモードの使用を補完する関連ツールや機能は何ですか?
エージェントモードの使用を補完する関連ツールや機能は何ですか?#

エージェントモードは強力ですが、GitHub Copilot の他の機能と組み合わせることでその能力を拡張できます。たとえば、Copilot にカスタム指示を与えることで、すべての応答があなたの日常のコーディングプラクティス、ツール、および開発者のワークフローに合うようにすることができます。
エージェントモードは強力ですが、GitHub Copilot の他の機能と組み合わせることでその能力を拡張できます。たとえば、Copilot にカスタム指示を与えることで、すべての応答があなたの日常のコーディングプラクティス、ツール、および開発者のワークフローに合うようにすることができます。

GitHub では、Copilot に特定のテストフレームワークを使用させるためにカスタム指示をよく使用し、単体テストのためのガードレール、フレームワーク、および指示を設定します。これにより、エージェントモードで Copilot がどのようにコーディングするかをカスタマイズでき、あなたの仲間に指示を与えるのと同様の効果があります。
GitHub では、Copilot に特定のテストフレームワークを使用させるためにカスタム指示をよく使用し、単体テストのためのガードレール、フレームワーク、および指示を設定します。これにより、エージェントモードで Copilot がどのようにコーディングするかをカスタマイズでき、あなたの仲間に指示を与えるのと同様の効果があります。

他のCopilot Chat モード(編集モードや質問モード)を使用することもできます。
他の Copilot Chat モード(編集モードや質問モード)を使用することもできます。

Mode モード

What you can do with it
それができること

A use case ユースケース

編集モード
編集モード

コードベース内の複数のファイルにわたって簡単に編集を行う。
コードベース内の複数のファイルにわたって簡単に編集を行います。

新機能の実装、バグの修正、またはコードのリファクタリングのためにプロジェクト内でコード編集を直接適用する。
新機能の実装、バグの修正、またはコードのリファクタリングのためにプロジェクト内でコード編集を直接適用します。

質問モード
質問モード

コードベースや技術的概念をよりよく理解するために Copilot に質問する。
コードベースや技術的概念をよりよく理解するために Copilot に質問します。

コードの動作を学んだり、ソフトウェアのアイデアをブレインストーミングしたり、新しい技術を発見したりする。
コードの動作を学んだり、ソフトウェアのアイデアをブレインストーミングしたり、新しい技術を発見したりします。

エージェントモード
エージェントモード

最小限の指導で望む結果を提供する自律的なコーディングワークフローを開始する。
最小限の指導で望む結果を提供する自律的なコーディングワークフローを開始します。

エージェントモードを通じて新機能やプロジェクトの高次の要件を実装し、必要な変更を自動的に特定し適用します。
エージェントモードを通じて新機能やプロジェクトの高次の要件を実装し、必要な変更を自動的に特定し適用します。

このガイドを持ち歩こう
このガイドを持ち歩こう#

他の開発者と同様に、提供するコンテキストが豊富で、意図する結果について具体的であればあるほど、GitHub Copilot から得られる結果は良くなります — これは特にエージェントモードに当てはまります。正しい作業を行うためには適切なツールが必要ですが、エージェントモードにカスタム指示を与えてコーディングの好みに合わせたり、MCP 統合を通じてその機能を拡張したりすることで、特定のソフトウェア構築スタイルに適合させることができます。
他の開発者と同様に、提供するコンテキストが豊富で、意図する結果について具体的であればあるほど、GitHub Copilot から得られる結果は良くなります — これは特にエージェントモードに当てはまります。正しい作業を行うためには適切なツールが必要ですが、エージェントモードにカスタム指示を与えてコーディングの好みに合わせたり、MCP 統合を通じてその機能を拡張したりすることで、特定のソフトウェア構築スタイルに適合させることができます。

LLM によって駆動されるすべてのものと同様に、エージェントモードの提案は、コードをレビューし、期待通りに動作することを確認するためにあなたが運転席にいることから利益を得ます。しかし、エージェントモードの素晴らしい点は、あなたが望む方法で正確に使用できることです。それはあなたの仲間のプログラマーであり、プロトタイプアプリを構築したり、既存のコードベースで作業したり、質問に答えたり、ワークフローの下位部分を自動化したりするために使用することができます。あなた次第です。楽しい構築を!
LLM によって駆動されるすべてのものと同様に、エージェントモードの提案は、コードをレビューし、期待通りに動作することを確認するためにあなたが運転席にいることから利益を得ます。しかし、エージェントモードの素晴らしい点は、あなたが望む方法で正確に使用できることです。それはあなたの仲間のプログラマーであり、プロトタイプアプリを構築したり、既存のコードベースで作業したり、質問に答えたり、ワークフローの下位部分を自動化したりするために使用することができます。あなた次第です。楽しい構築を!

原文リンク:

https://github.blog/ai-and-ml/github-copilot/agent-mode-101-all-about-github-copilots-powerful-mode/

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。