VS Codeのエージェントモードを拡張するには、を試してください!

必要なのはGitHub Copilot Extensionsだけ

2024年6月24日 by Isidor Nikolic, @isidorn

2017年、Googleの研究者たちは画期的な論文「Attention is All You Need」の中で、Transformerという概念を発表しました。人間の集中力と同様に情報に優先順位を付けるこれらのモデルは、GitHub Copilotを支えるものなど、今日の最新の言語モデルの基礎となっています。

TransformerがAIにとって変革的(transformative、駄洒落ですみません)であったように、GitHub Copilot Extensionsは最終的に開発者にとってのAIの可能性を最大限に引き出すものになると信じています。

VS Codeは、歴史上最も広く使われている開発者ツールの1つです。この人気の大部分は、コミュニティによって貢献されてきた広大な拡張機能のエコシステムによるものです。VS Codeユーザーであれば、これなしでは生きていけない拡張機能をいくつかすぐに挙げられるでしょう。もしそれらの拡張機能がAIとGitHub Copilotの力を活用したら、どんな可能性が広がるか想像してみてください。

AIの真価は、あなたの特定のコンテキストを理解したときに発揮されます。そしてVS Codeはその知識を持っています。拡張機能はVS Code APIを使用してこのコンテキストを活用し、すべての開発者が既にいるVS Code内で、最適かつ最も関連性の高いAI駆動の回答とインタラクションを提供できます。

この記事では、拡張機能が言語モデルやGitHub Copilotが提供するチャット体験と直接やり取りできるようにする新しいAPIについて見ていきます。今日からこれらのAPIを使って開発を始める方法を紹介し、これらのAPIを活用して拡張機能を充実させ始めた初期の採用者をいくつか紹介します。

チャットと言語モデルAPI

今年のBuildで、私たちはVS CodeにおけるGitHub Copilot向けの新しいAPIセットを発表しました。

これらのAPIについてすべてを学ぶために、GitHub CopilotでVS Code拡張機能を強化するに関するBuildセッションをぜひご覧ください。

LLMの使用方法として最も馴染み深いのは、チャットインターフェースを介したものでしょう。あなたの拡張機能がGitHub Copilotの力を活用する1つの方法は、ユーザーがVS Code内のチャットビューで対話できるチャット参加者を構築することです。Chat APIを使用してチャット参加者を作成し、Language Model APIを使用して自然言語を処理し、ユーザーのクエリに対する応答を作成できます。新しいAPIコンセプトの例として@catコードメンターを使用する拡張機能ガイドで、Chat APIについてさらに詳しく学んでください。

Screenshot of the Chat view in VS Code, showing the cat sample participant.

Language Model APIを使用すると、GitHub Copilotが提供する大規模言語モデル(略してLLM)に、あなた自身の拡張機能から直接アクセスして活用できるようになりました。使用したいモデルを選択し、プロンプトを構築し、選択したモデルにリクエストを送信するだけです。そしてVS Code APIを使用することで、プロンプトに関連するコンテキストを追加できます。たとえば、現在のファイルの内容や使用されている技術スタックを含めることなどです。

Language Model APIは、チャットビューだけでなく、エディターのあらゆる部分で開発者体験を向上させるためにも使用できます。Language Model APIを使用するアクションを、エディターのコンテキストメニューなど、VS Codeのすべてのコントリビュート可能なサーフェスに追加できます。たとえば、ソース管理ビューでは、Language Model APIを使用して、ソースコードの変更に基づいてユーザーがコミットメッセージを生成できるようにしています。別の例としては、Copilotを活用したリネーム機能があり、言語モデルがコードのコンテキストに基づいてシンボルのリネーム候補を提供します。

Screenshot of the Copilot-powered rename functionality in the VS Code editor.

拡張機能ガイドでLanguage Model APIについてさらに詳しく学んでください。

私たちは、Chat APIと言語モデルAPIをVS Codeの堅牢なAPIスイートと組み合わせることで、最も素晴らしいユーザー体験が生まれると信じています。拡張機能の作者は、これらのツールを創造的に活用し、単純な質疑応答ボットを超えて、適切なユーザーコンテキストを使用したVS Code内のリッチで統合されたインタラクションを開発すべきです。ユーザーは、自身のワークフロー内でのシームレスで強力なインタラクションを高く評価します。これらの新しいAPIにより、拡張機能はAI機能をVS Codeに直接統合することで、ユーザーの生産性を向上させることができます。

GitHub Apps

別の方法として、チャットビューにチャット参加者を提供するGitHub Appを作成することで、GitHub Copilotを拡張できます。GitHub Appはサービスによって支えられており、github.com、Visual Studio、VS Codeなど、すべてのGitHub Copilotサーフェスで動作します。GitHub AppsはVS Code APIへの完全なアクセス権を持っていません。GitHub Appを通じてGitHub Copilotを拡張するには、Copilot Partner Programに参加する必要があります。

私たちはMicrosoft BuildカンファレンスでGitHub AppsによるGitHub Copilot Extensionsを発表し、すでにGitHub Marketplaceでいくつかの素晴らしい拡張機能が登場しています。

BuildセッションのGitHub Copilotの拡張を見て、実際の動作をご覧ください。

VS Code拡張機能ショーケース

VS Code拡張機能コミュニティがLanguage Model APIとChat APIで構築したものを紹介できることを嬉しく思います。これまでに、100を超える拡張機能が、幅広いシナリオでGitHub Copilot上に構築されているのを見てきました。ここでは、特に魅力的だと思ったものをいくつか紹介します。

Stripe

Stripeは、開発者がオンラインで支払いを受け付け、送金できるようにします。新しい@stripeチャット参加者は、Stripeのドキュメント、コード例、ベストプラクティスの知識をすぐに利用できるようにするため、VS Codeを離れることなくStripe連携を構築・維持できます。

「私たちは開発者がStripeをより簡単に連携できるように常に取り組んでいます。そのため、CopilotをStripe固有のコンテキストと機能で拡張できることに興奮しています。新しい拡張性APIは巧みに作られており、構築が容易なため、私たちは非常に迅速に動くことができました。」 - Ian McCrystal (EM, Stripe Developer AI team)

@stripe参加者は、以下のことを支援します。

  • Stripe APIコードを生成・デバッグし、プロジェクトに挿入する
  • Stripeドキュメントに基づいた質問への回答を得る
  • API連携の構築から最終的なアップグレードまでを段階的に進める

Screenshot of the Stripe chat participant in the Chat view in VS Code.

@stripe参加者は、7月中旬までにすべてのStripe VS Code拡張機能ユーザーが利用可能になります。

MongoDB

MongoDB開発者は、シームレスなデータナビゲーション、クエリ構築、プレイグラウンドでのプロトタイピング、一般的な言語へのエクスポートを可能にするMongoDB for VS Code拡張機能を愛用しています。@mongodbチャット参加者はこの拡張機能と深く統合されており、開発者はGitHub Copilotと拡張機能の強力な組み合わせを活用して、VS Code内でのMongoDBを使ったアプリケーション開発をさらに高速化できます。

@mongodbチャット参加者

  • 自然言語からMongoDBクエリを生成する
  • データベースログからクエリパフォーマンスやエラーパターンの洞察を提供する
  • データベースとコレクションのスキーマ情報を提供する
  • 公式ドキュメントへの参照付きで、VS Code内で直接質問に答える

Screenshot of the MongoDB chat participant in the Chat view in VS Code.

MongoDBチャット参加者の使用に興味がある場合は、プライベートプレビューへのアクセスにサインアップできます。

Parallels

人気のmacOS仮想化ソフトウェアであるParallelsは、最近、Parallels Desktop体験を向上させるための新しいParallels Desktop VS Code拡張機能を発表しました。彼らはGitHub Copilotと統合することで、それをさらに改善しました。

「優れたサンプルを備えた簡単で強力なAPIにより、そうでなければ相当な労力と時間を要したであろう強力なcopilot参加者を迅速に作成することができました。」 – Carlos Lapao (Solutions Architect, Parallels)

新しい@parallelsチャット参加者を通じて、自然言語を使用してほとんどの仮想マシン操作を簡単に実行できます。たとえば、「@parallels Windows 11 VMを起動して」と言うだけで、チャット参加者があなたに代わって行動します。

Screenshot of the Parallels chat participant in the Chat view in VS Code.

PostgreSQL

PostgreSQLは非常に人気のあるリレーショナルデータベースプラットフォームで、PostgreSQL Chat Participant拡張機能を使用することで、直接チャットできるようになりました。@pgチャット参加者は、あなたのデータベーススキーマを学習し、そのスキーマに基づいて回答を提供します。また、スキーマの生成、SQLクエリのヘルプ、さらにはデータベースとやり取りするためのコード生成にも使用できます。

Screenshot of the PostgreSQL chat participant in the Chat view in VS Code.

次のステップ

私たちはまだ始まったばかりです。VS Codeのすべての製品イニシアチブと同様に、私たちはAIの拡張機能を時間とともに拡大していきます。以下の機能は、今年後半に登場する予定です。

  • チャット参加者が自動的に呼び出されるためのインテント検出
  • GPT-4o言語モデルのサポート
  • モデルリクエストのトークン上限の増加(現在の制限は4Kトークン)
  • エディターのインラインチャット、ターミナル、ノートブックでのチャット参加者
  • Variable Resolving API - 拡張機能がチャット変数をコントリビュートできるようになり、拡張機能のドメインからコンテキストを提供します
  • Tools API – 自然言語を引数付きのツール呼び出しに変換し、拡張機能が他の参加者から呼び出せるツールを登録できるようにします

本日より、どなたでもご利用いただけます!

Chat APIとLanguage Model APIは、本日よりVS Code Insidersで利用可能であり、7月初旬にはVS Code Stableに搭載されます。私たちのドキュメントサンプルを使えば、強力なAI拡張機能の構築を簡単に始めることができます。質問やフィードバックがあれば、私たちのリポジトリにissueをオープンしてください。

本日より、Language Model APIとChat APIに依存する拡張機能をVS Marketplaceに公開できます。本当の問いは、「あなたはどんな素晴らしい拡張機能を作成しますか?」です。可能性は無限であり、これらの革新的なアイデアを現実のものにできるのはあなただけです。さあ、私たちの素晴らしい拡張機能開発フローに飛び込み、適切なユーザーコンテキストでAIの力を活用し、あなたの創造性で開発の未来を形作りましょう!構築する部分は楽しいものです – ぜひ楽しんでください!

よろしくお願いいたします。

IsidorとVS Codeチーム