※本レポートは、GitHub Universe 2024のオープニングキーノートの内容を基に作成されています。キーノートの詳細は https://www.youtube.com/watch?v=dSf8QOjazrQ でご覧いただけます。
本レポートでは、GitHub CEO Thomas Dohmke氏による基調講演と、Anthropic共同創設者兼主任科学者のJared Kaplan氏との対談内容を中心に要約しております。また、GitHub開発者アドボケイトのCassidy Williams氏、GitHub プロダクトマネージャーのTim Rogers氏、GitHub Next研究チームのArini Kalamaku氏とPan氏による製品デモンストレーションの内容も含まれています。
なお、本内容は原著作者の見解を正確に反映するよう努めていますが、要約や解釈による誤りがある可能性もありますので、正確な情報や文脈については、オリジナルの動画をご視聴いただくことをお勧めいたします。より詳細な情報は、GitHubのブログ(https://github.blog/news-insights/ )やGitHubの各種ソーシャルメディアアカウント(YouTube: http://bit.ly/subgithub, Blog: https://github.blog )でもご確認いただけます。
1. イントロダクション(GitHub CEO Thomas Dohmke)
1.1. GitHubの10年間の成長
Fort Masonで開催された今回のGitHub Universeは、記念すべき10回目の開催となりました。この10年間のGitHub Universeは、オープンソースの創造と消費の大きな波に特徴づけられています。
2015年以降、開発者たちは迅速に大きな問題を解決し、6,700万以上のGitHubのissueをクローズしてきました。また、大きなアイデアを最後まで実現させ、1.8億以上のプルリクエストをマージしました。さらに、2015年以降、開発者たちは3.2億以上のパブリックプロジェクトをGitHub上で生み出してきました。
これは単なる数字以上の意味を持っています。数百万のissue、数百万のプロジェクト、そして世界中の数百万の開発者が協力して作業を進めてきました。NBA、ヨーロッパチャンピオンズリーグ、インディアンプレミアリーグなどのスポーツと比較しても、オープンソースは地球上で最大のチームスポーツとなっています。
すべてのプルリクエスト、すべてのコミットを通じて、開発者たちは新しいソフトウェアの星座を作り出し、テクノロジーの軌道をより良い方向へと曲げてきました。世界中の開発者たちが力を合わせて、この新しいテクノロジーの宇宙競争の時代、つまりAIの時代へと私たちを導いてきたのです。
この10年間の成長は、単なる量的な拡大ではなく、オープンソースコミュニティの質的な進化も示しています。各マイルストーンは、グローバルな開発者コミュニティの協力と革新の証となっており、GitHubがソフトウェア開発のエコシステムの中心的な存在へと成長してきた軌跡を表しています。
1.2. オープンソースの成功と影響力
2024年までの開発の歴史を振り返ると、もはや否定できない事実として「オープンソースの勝利」が挙げられます。この成功は、単なるソフトウェア開発手法の変化以上の意味を持っています。
私たちは、オープンソース開発を「地球上で最大のチームスポーツ」と位置付けています。NBAやヨーロッパチャンピオンズリーグ、インディアンプレミアリーグといった伝統的なスポーツと比較しても、オープンソースの開発コミュニティは、より多くの参加者と、より広範な協力関係を持つ世界最大のチームスポーツとなっています。
このチームスポーツとしての性質は、実際の開発プロセスにも反映されています。すべてのプルリクエスト、すべてのコミットを通じて、開発者たちは新しいソフトウェアの星座を作り出し、テクノロジーの進化の方向性をより良い方向へと導いてきました。
特に注目すべきは、このオープンソースの成功が、単なる技術的な進歩だけでなく、グローバルな開発者コミュニティの形成につながったことです。世界中の開発者たちが、言語や文化の壁を超えて協力し、共通の目標に向かって取り組む環境が整備されました。その結果として、3.2億以上のパブリックプロジェクトが生まれ、それぞれが新しい技術革新の種となっています。
このオープンソースの成功は、新しい技術の宇宙競争、特にAIの時代への扉を開くことにもつながりました。開発者たちの協力的な取り組みは、より複雑な技術課題に立ち向かうための基盤となり、次世代のテクノロジー開発の方向性を形作っています。
1.3. AIの時代における開発者コミュニティの進化
2024年、私たちはAI技術の爆発的な成長を目の当たりにしています。特筆すべきは、GitHubにおける新規AIプロジェクトの驚異的な成長率です。2024年単年で、前年比98%という急激な成長を記録しました。この成長曲線は、AIがもはや実験的な技術ではなく、メインストリームの開発分野として確立されたことを示しています。
この変化は、プログラミング言語の選好にも大きな影響を与えています。機械学習やAI開発で広く使用されているPythonが、ついにJavaScriptを追い越し、GitHub上で最も使用されているプログラミング言語となりました。これは歴史的な転換点と言えます。おめでとう、Pythonistaたち!
この変化は、GitHubの基盤そのものを大きく変革しています。GitHubの主要なユースケースが、私たちの足元で根本的に拡大しているのです。具体的には、以下の3つの重要な変化が起きています:
- データサイエンス、学術研究、研究開発分野の専門家たちが、日常的にGitHubを活用するようになってきました。
- AIのプログラミング言語としてのPythonの台頭により、開発のエコシステムが変化しています。
- かつて「ソーシャルコーディング」のホームとして始まったプラットフォームが、今やAI時代における世界最大のクリエイターネットワークへと進化しています。
皆さんの創意工夫が結集され、新しい創造のフロンティアが切り開かれているのです。そして、AIを構築するだけでなく、AIを使ってAIを構築するという、さらに高度な段階に入っています。開発者たちはグローバルな労働力の中で、最も急速にAIを受け入れているセクターとなっています。
2. AIコード生成の第2フェーズ(GitHub CEO Thomas Dohmke)
2.1. 第1フェーズの3本柱
GitHub Copilotが世界に登場してから約3年が経過し、現在もなお、最も広く採用されているAI開発ツールとしての地位を維持しています。皆様の信頼とサポートのおかげで、CopilotはGitHub自体と同様に革新的なツールとなりました。そして今、Copilotは次のフェーズへと進化を遂げようとしています。
第1フェーズは、以下の3つの重要な柱に基づいて構築されました:
まず1つ目の柱は、開発者のライフサイクルの様々なタッチポイントにおけるAIの統合です。この段階では、AIを使用するかどうかは開発者の選択に委ねられており、従来通りすべてを自分で構築することも可能でした。
2つ目の柱は、対話型コーディングの導入です。ChatGPTとCopilot Chatは、アイアンマンのJARVISのような対話型インターフェースを実現し、自然言語でのコーディングを可能にしました。これにより、誰もが自然言語を使用してコードを構築できるようになりました。
3つ目の柱は、単一モデルによる特定用途の機能提供です。例えば、自動補完にはGPT-3.5を、ワークスペースにはGPT-4を使用するというように、特定の用途に対して最適なモデルを1つ選んで提供していました。
これらの3本柱は、AIコード生成の基礎を築き、開発者とAIの協力関係の第一歩となりました。この段階で得られた知見と経験は、次のフェーズへの重要な足がかりとなっています。
2.2. 第2フェーズの主要な変更点
開発者とAIのパートナーシップは新たな段階に入り、AIコード生成の初期段階は終わりを迎えました。第2フェーズでは、3つの重要な変更点を導入します。
まず1つ目は、AIが単なる機能の統合から、開発環境の中核へと進化する「AI native」な開発環境への移行です。もはやAIは開発プロセスから切り離すことができない、不可欠な要素となります。これにより、開発者の体験全体がAIを中心に再構築され、より効率的で直感的な開発が可能になります。
2つ目の変更点は、「conversational coding(対話型コーディング)」から「agentic coding(エージェントベースのコーディング)」への進化です。エージェントとは、開発者の自然言語による指示に基づいて特定のタスクを実行するAIアシスタントを指します。各開発者は、特定のタスクのために設計された複数のエージェントと対話しながら開発を進めることができます。
3つ目の変更点は、単一モデルの機能からマルチモデル選択への移行です。2024年には高品質なモデルが急増し、GitHubはオープンな開発者プラットフォームとしての特性を活かし、開発者が自身のニーズに最適なモデルを選択できる環境を提供します。開発者は自分の作業に最適なモデルを選んで利用することができ、これはGitHubの本質的な特徴である開放性と選択の自由を体現するものです。
これらの変更により、開発者はより柔軟で強力な開発環境を手に入れることができ、AIとの協働がさらに深化することになります。そして、これらの機能は今すぐに利用可能な状態で提供されます。
2.3. マルチモデル選択の実装
今回、私たちはOpenAI O1のウェイトリストを完全に撤廃し、すべてのCopilotユーザーがO1 previewとO1 miniに公開アクセスできるようになりました。私たちが社内でO1 previewを検証した結果、このモデルは推論能力が高く、コードの制約やエッジケースをより深く理解し、効率的で質の高い結果を生成できることが確認されています。Copilot chatでO1を使用したい場合は、モデルピッカーでクリックするだけで、今すぐ使用を開始できます。
さらに、今年、開発者の間で大きな注目を集めているモデルがあります。それがAnthropicのClaude 3.5 Sonnetです。本日、私たちはAnthropicとの新しいパートナーシップを発表し、GitHub CopilotにClaudeの機能を導入することを発表できることを嬉しく思います。OpenAIのモデルと同様に、モデルピッカーでClaudeを選択することで、今日からすぐに使用を開始できます。
このパートナーシップの意義について、Anthropicの共同創設者で主任科学者のJared Kaplan氏は、「私たちはAIが急速に進歩すると予想し、それを有益な方向に導きたいと考えてAnthropicを設立しました。新しいAIモデルを即座に展開できなければ、6ヶ月から1年後に採用され始める頃には既に時代遅れになってしまいます。そこで、開発者やソフトウェアエンジニア向けにClaude 3.5 Sonnetを最適化することで、できるだけ多くの人々にフロンティアモデルの機能を素早く提供することを目指しました」と説明しています。
さらに本日、私たちはもう一つの重要なパートナーシップを発表します。GoogleのGemini 1.5 ProをGitHub Copilotに導入します。Gemini 1.5 Proは、コード、画像、ビデオ、テキストを同時に処理できるネイティブなマルチモーダルモデルです。コードの提案、ドキュメントの作成、コードの説明など、幅広いタスクで優れた性能を発揮します。
これらのマルチモデル選択機能は、今後数週間のうちにCopilotの様々な機能に順次展開されていく予定です。私たちはGitHubのオープンな開発者プラットフォームとしての特性を活かし、開発者が自身のニーズに最適なモデルを選択できる環境を提供していきます。
3. GitHub Copilotの新機能(GitHubデベロッパーアドボケイト Cassidy Williams)
3.1. VS Codeにおける拡張機能
私たちはMicrosoftと協力して、VS Code内でのエディタ体験を一新し、より優れたCopilotを作り上げました。今日は、その新機能をご紹介させていただきます。
まず、エディタ内での機能拡充により、コンテキストスイッチが大幅に削減されました。これは、私のような多くのブラウザタブを開き、メールボックスが満杯で、新しいRoséやBruno Marsの曲に気を取られがちな開発者にとって、非常に重要な改善です。
Copilotは単なるAI開発ツールではなく、複数のツールとサービスを備えたインテリジェントプラットフォームとして進化しています。例えば、私がデモで使用している「Copilot Airways」というウェブサイトでは、「世界で最もクールな開発者を取得する関数」を作成してみましょう。面白いことに、AIは私の名前を返してきました—AIは決して嘘をつきませんよね(笑)。
さらに、Copilot chatの機能も強化されています。コードを選択して、英語だけでなくスペイン語など他の言語でも説明を求めることができ、Copilotは適切に応答します。
また、コードベース内の既存の実装を探す際にも、Copilotは非常に賢く動作します。例えば、「コードベース内に線グラフを描画している箇所はありますか?」と尋ねると、インテント検出機能が働き、ワークスペースエージェントが質問を理解し、リポジトリインデックス機能を使用してコードベースを検索します。
これらの機能は、開発者がより自然な形でコードを書き、理解し、共有できるように設計されています。そして、これらすべての新機能は、個人ユーザー、ビジネスユーザー、エンタープライズユーザーを問わず、すべてのCopilotユーザーが今週中に利用できるようになります。
3.2. マルチファイル編集機能
Copilot Airwaysのデモサイトを使用して、マルチファイル編集機能の革新性をお見せしたいと思います。現在、プロファイルページには飛行ポイントの履歴データが表形式で表示されていますが、これをグラフ化してより視覚的に分かりやすくしてみましょう。
まず、既存のコードベースに線グラフを描画している部分があるかどうかを確認したところ、「ontime_line_chart」というコンポーネントが見つかりました。しかし、今回はエリアグラフを使用したいと考えています。これには新しいコンポーネントの作成、プロファイルページの変更、テストの追加、そしてREADMEへの記載など、複数のファイルを変更する必要があります。
ここで新しい「マルチファイル編集」モードの威力を発揮できます。新しい編集モードでは、モデル選択も可能で、今回はClaudeを選択して作業を進めます。「ポイントアクティビティサービスから再利用可能なエリアグラフを作成し、ポイントアクティビティテーブルの下に表示させてください。ontime_line_chartと同様の動作をさせ、テストも書いてください」という指示を出してみましょう。
すると、Copilotは以下のステップで作業を進めてくれます:
- チャートコンポーネントの作成
- プロファイルページへの追加
- 新しいコンポーネントのテスト作成
実際に生成されたコードを見ると、「monthly_points_area_chart」というコンポーネントが作成され、既存のコードベースを参考にした実装になっています。diffの緑色の部分で新しく追加された箇所が確認でき、ユニットテストもコンポーネントの各部分をカバーしています。
さらに興味深いのは、Launch Darklyのフィーチャーフラグ条件文が自動的に追加されていることです。これは、カスタムインストラクションファイルで「再利用可能なReactコンポーネントを作成する際はLaunch Darklyサービスを追加すること」と指定していたためです。
このように、マルチファイル編集機能は、複数のファイルの同時編集、適切なモデルの選択、テストコードの自動生成を統合的に提供し、開発者の生産性を大幅に向上させます。
3.3. カスタムインストラクション機能
私たちが導入した最も注目すべき新機能の1つが、GitHub Copilotカスタムインストラクションです。この機能は、開発者から最も要望の多かった機能の1つでもあります。
カスタムインストラクションは、.githubフォルダ内に配置される単純なマークダウンファイルとして実装されます。このファイルは「copilot-instructions」という名前で作成され、Copilotの動作をカスタマイズするための指示を記述することができます。
例えば、先ほどのデモで見たように、「再利用可能なReactコンポーネントを作成する際は、必ずLaunch Darklyサービスを追加すること」といった指示を設定できます。これ以外にも、以下のようなカスタマイズが可能です:
- すべての関数に特定の形式のdocstringを追加する
- 特定のlintingルールに従うように指示する
- コンポーネントの末尾に特定のコメントを追加する
- プロジェクト固有の命名規則を適用する
このカスタムインストラクション機能により、チーム全体で一貫した開発スタイルを維持することが可能になります。各開発者が独自のスタイルで開発を進めるのではなく、プロジェクト全体で統一された方針に従ってコードを生成することができます。
重要な点は、これらの指示がプロジェクトのリポジトリに保存され、チーム全体で共有されることです。これにより、新しいチームメンバーが参加した際も、すぐにプロジェクトの規約に従ったコードを書き始めることができます。
3.4. Xcodeサポートの追加
この選択の拡大は拡張機能を超えて、IDE全体にまで広がっています。本日、Apple開発者の皆様に朗報があります。GitHub CopilotがXcodeで利用可能になりました!
本日からパブリックプレビューとして、Apple エコシステム向けに開発を行う開発者の皆様は、GitHub Copilotのパワーを活用できるようになります。モバイルアプリケーション、デスクトップアプリケーション、リモート開発、github.comでの開発、ローカルマシンでの開発など、あらゆる場面でGitHub Copilotをご利用いただけます。
私たちの目標は、開発者の皆様の作業をより簡単に、より効率的にすることです。あなたがどこで作業していても、リモートであれ、モバイルであれ、デスクトップであれ、常に最適な支援を提供できるようにしています。Xcodeでの開発時にも、テスト、デプロイメントなど、開発のあらゆる段階でCopilotのサポートを受けることができます。
これらの新機能は、開発者の皆様に選択の自由を提供し、より柔軟な開発環境を実現するための私たちの取り組みの一環です。そして、これはまだ始まりに過ぎません。今後も継続的に機能を拡充していく予定です。
4. GitHubモデルの導入(GitHub プロダクトマネージャー Tim Rogers)
4.1. 利用可能なAIモデルの概要
今日、私たちはマルチモデル選択についてお話ししてきましたが、さらにその選択肢を広げる取り組みについてお話しさせていただきます。コードは、もはやソフトウェアを構築するための唯一のプリミティブではありません。この新しいクリエイターネットワークでは、開発者は大小様々なモデルを活用して、より高い抽象化レベルで構築を行っています。
この夏、GitHubは開発者がコードと同じ場所でAIアプリケーションを構築できる新しいツール「GitHub Models」を立ち上げました。モデルマーケットプレイスでは、業界最新のモデルを提供しています。
フランス発のテクノロジーとして、Mistral LargeとMistral Nemoを提供しています。また、小規模言語モデルも軽視せず、Code-53も提供しています。心配しないでください、小さなモデルも大人のモデルと同じくらいクールです。
さらに、MetaのLlamaモデル群でオープンインテリジェンスも提供しています。1年前まで、私はLlamaを気の利いたラクダだと思っていましたが、今では定期的にLlamaを使ってAIアプリケーションを構築しています。
そして今日、私たちはプラットフォームにさらに多くの素晴らしいモデルを追加したことをお知らせできることを嬉しく思います。Cohere Command、Bria AI、OpenAI O1など、コードが既に存在するGitHubに、必要なものすべてを用意しました。
これらのモデルは単なるツールではありません。各モデルは独自の特徴と強みを持っており、開発者は自身のプロジェクトやタスクに最適なモデルを選択できます。モデルマーケットプレイスを通じて、私たちは開発者に選択の自由を提供し、イノベーションを促進していきたいと考えています。
4.2. モデル比較とプレイグラウンド機能
プレイグラウンド機能を使用すると、開発者は自分のプロンプトとパラメータを使用してモデルを実際に試すことができます。しかし、さらに興味深いのは比較機能です。この機能を使用すると、同じタスクに対して2つのモデルを並行して実行し、どちらが自分のニーズに最適かを簡単に判断することができます。
例えば、Copilot Airwaysのデモで、私の旅行レビューからJSONデータを抽出するタスクを考えてみましょう。App Modelsの拡張機能を使用すると、Copilotがモデルマーケットプレースのデータを活用して、最適なモデルを推奨してくれます。Mistralのモデルを試してみることにしましょう。
まず、適切なプロバイダーでフィルタリングし、Mistral Large modelを選択します。READMEでは、トレーニングデータ、ライセンス、その他の重要な情報を確認できます。プレイグラウンドに移動すると、比較機能を使用してMistral NemoとMistral Largeを並べて実行できます。Nemoは小さく高速なモデルです。
システムプロンプトを設定し、それが両方のモデルに自動的に適用されます。その後、私のサンフランシスコのレビューを入力すると、両方のモデルが並行して処理を開始します。実験の結果、右側のモデル(Mistral Nemo)が明らかに高速で、結果も同等の品質でした。Nemoは小型で高速、かつコスト効率の良いモデルであることから、このユースケースには最適な選択と言えます。
生成されたJSONをアプリケーションにコピーして使用できるだけでなく、「コード」タブに切り替えることで、選択した言語での実装サンプルを即座に取得することもできます。認証には既存のGitHubトークンを使用できるため、新しいサービスへのサインアップは不要です。
実運用環境に移行する準備が整ったら、「Get API Key」ボタンをクリックするだけで、より高いレート制限とスケーラビリティを備えたAzure AIのAPIキーを取得できます。このように、プロトタイプから本番環境まで、シームレスな開発体験を提供しています。
4.3. マルチモーダルモデルの実装例
GitHub Modelsでは、テキストのみを処理するモデルに加えて、マルチモーダルモデルも提供しています。これらのモデルは、画像とテキストの両方を入力として受け付け、処理することができます。
この機能をデモンストレーションするため、タグフィルターを使用してマルチモーダルモデルを検索し、OpenAI GPT-4 Miniを選択してみましょう。プレイグラウンドに移動したら、週末に私が撮影したゴールデンゲートブリッジの写真をアップロードしてみます。
シンプルな質問として、「この画像に写っているものを1単語で、余計な説明なしで答えてください」と入力してみました。人工知能からの回答は簡潔に「Bridge(橋)」でした。これは私たちが求めていた通りの応答です。
このように、マルチモーダルモデルは画像認識と自然言語処理を組み合わせ、より豊かなインタラクションを可能にします。開発者は、これらの機能を活用して、画像分析、説明文の生成、視覚的なコンテンツの理解など、様々なアプリケーションを構築することができます。
GitHubのプラットフォーム上で直接これらの高度な機能を試すことができ、開発者は自身のアプリケーションに最適なマルチモーダルモデルを見つけ出すことができます。
5. Copilot Workspaceの進化
5.1. テクニカルプレビューの成果(GitHub Next研究チーム リード Arini Kalamaku)
GitHubのNext研究チームを代表して、Copilot Workspaceのテクニカルプレビューの成果についてご報告させていただきます。4月29日に開始したテクニカルプレビューから6ヶ月が経過し、私たち5人の小さな研究チームは、驚くべき成果を目の当たりにしてきました。
最も顕著な成果は、プルリクエストの生成とマージの実績です。テクニカルプレビュー期間中に、開発者の皆様は15,000以上のプルリクエストをWorkspaceを使用して作成し、そのうち10,000以上が正常にマージされました。この高いマージ率は、Workspaceが生成するコードの品質の高さを示しています。
しかし、数字以上に重要なのは、実際の開発者からのフィードバックです。たとえば、動画でご紹介したNilleのような高校生のロボット工学チームのリードプログラマーから、「従来なら長時間かかっていたタスクが、数分で理解できるようになった」という声をいただきました。
開発者の皆様からのフィードバックは、それが称賛であれ建設的な批判であれ、私たちにとって貴重な贈り物です。例えば、「Workspace内でのコードの検証が手動で行う必要があり、面倒である」という指摘は、私たちが取り組むべき重要な課題を示してくれました。
5人という小規模なチームながら、開発者の皆様からのフィードバックを活用することで、大きな進歩を遂げることができました。この成果は、AIと開発者のパートナーシップの可能性を示す具体的な証となっています。
5.2. フィードバックに基づく100以上の改善(GitHub Next研究チーム リード Arini Kalamaku)
私たちはテクニカルプレビューの開始以来、膨大な量のフィードバックを受け取ってきました。5人という小さなチームですが、開発者の皆様からのフィードバックを効果的に活用することで、大きな進歩を遂げることができました。
テクニカルプレビューの開始から今日まで、100以上もの改善を実装してきました。これらの改善には、大規模な機能の追加や完全な再設計も含まれていますが、多くは開発者の日常的な作業を改善する細かな調整やクオリティ・オブ・ライフの向上に関するものでした。
このような地道な改善の積み重ねにより、Workspaceは4月の時点と比較して100倍以上優れたものになりました。具体的な改善例として、コードの検証プロセスの自動化や、より直感的なユーザーインターフェースの実装などが挙げられます。
特に重要な進展として、ワークフローの両端に新しいエージェントを追加したことが挙げられます。アイデア創出のための「ブレインストーム」エージェントと、コードの構築と修復のためのエージェントを導入しました。これにより、Copilot Workspaceのエージェント数は合計5つとなり、開発プロセス全体をカバーできるようになりました。
さらに、VS Code向けの拡張機能をリリースし、プルリクエストへのWorkspaceの統合も実現しました。これらの改善は、まだ氷山の一角に過ぎません。すべての改善は、AIが開発者の第二の頭脳として、より効果的なパートナーとなることを目指して実施されています。
5.3. 5つのエージェントシステムの実装(GitHub Next研究チーム Pan)
Copilot Workspaceでは、Copilot Airwaysのデモを通じて、5つのエージェントがどのように協調して動作するかをお見せします。現在、旅行ガイドには地図と推奨都市の説明のみが表示されていますが、これは管理ページの機能が限られているためです。各投稿に画像を追加できる機能を実装してみましょう。
まず、ブレインストームエージェントが働き始め、GitHubの課題から文脈を理解し、画像アップロード機能の実装に関する複数の提案を生成します。具体的には、ファイル入力要素の使用、サードパーティライブラリの活用、クラウドストレージサービスの利用など、いくつかの選択肢を提示します。
次に、仕様策定エージェントが、コードベースを読み込み、目標達成のための要件を明確化します。プロジェクトの文脈を理解し、既存の実装と整合性のある仕様を策定します。
その後、計画立案エージェントが、変更が必要なファイルと具体的な変更内容をリストアップします。この計画は編集可能で、必要に応じて調整できます。
実装エージェントは、計画に基づいて実際のコード変更を行います。このデモでは、入力フィールドが追加され、アップロードした画像のプレビュー機能も実装されました。
最後に、コード修正エージェントが、テストの実行結果に基づいて必要な修正を提案します。例えば、テストが失敗した際に、新しい入力フィールドをテストに含めていなかったことを指摘し、適切な修正を行いました。
これら5つのエージェントは、自然言語でのやり取りを通じて協調し、開発者の意図を理解しながら効率的に作業を進めます。例えば、私がヒンディー語で「アップロードした画像のプレビューを表示して」と指示しても、適切に理解して実装を行うことができます。
このように、アイデアの創出から実装、テスト、修正まで、開発プロセス全体をカバーする包括的なサポートを提供しています。
6. GitHub Sparkの発表(GitHub CEO Thomas Dohmke)
6.1. 自然言語によるアプリケーション開発
本日、私たちは革新的な進展をお知らせできることを嬉しく思います。GitHub Sparkの導入です。これは、完全に自然言語でアプリケーションを構築できるAIネイティブなツールです。これにより、プログラミング経験の有無に関わらず、誰もが数分でアプリケーションを作成し、共有できるようになります。
GitHubスパークの画面を見ていただくと、従来のIDEとは全く異なることがわかります。Pythonをインストールする必要もなく、sudoがhomebrewでどのように動作するのかを理解する必要もありません。代わりに、シンプルな入力フィールドがあり、そこに作成したいものを記述するだけです。
また、異なるAIモデルを選択できるモデルピッカーと、最近作成したSparkのリストも表示されています。リストを見ると、ポッドキャストタイマーアプリ、カラオケナイトプランナー、車の世界ゲームなど、様々なアプリケーションが作成可能だということがわかります。
特筆すべき機能として、Azure Cosmos DBによってバックアップされたキーバリューストアがあります。これにより、アプリケーションのデータを永続的に保存することができます。また、テーマの変更やスケールの調整、アクセントカラーの変更など、UIのカスタマイズも簡単に行えます。
カスタムインストラクション機能も実装されており、VS Codeで見たものと同様に、開発プロセスをカスタマイズすることができます。これらの機能により、GitHub Sparkは、コーディングの知識がなくても、プロフェッショナルなアプリケーションを作成できる強力なツールとなっています。
このような機能群により、私たちはソフトウェア開発の新しい可能性を切り開き、より多くの人々がアプリケーション開発に参加できる環境を整備しています。
6.2. ゲーム開発のデモンストレーション
大規模言語モデルで実験する際、私はいつもゲームを作るのが好きなので、今回はTic-tac-toeゲームを作ってみましょう。「カモとカバのTic-tac-toeゲームを作成してください」という単純なプロンプトを入力します。
モデルはバックグラウンドで作業を開始し、必要なすべてのコードをストリーミング形式で生成します。従来のチャットベースのデモでは、どのコードをどのファイルに配置すべきか、ターミナルでの実行方法など、多くの手作業が必要でした。しかし、GitHub Sparkではこれらすべてを自動的に処理します。
UIのカスタマイズも非常に直感的です。コンソールで簡単なプロンプトを入力することで、テーマの変更が可能です。例えば、サンフランシスコは明るいので、ライトテーマに切り替えてみましょう。また、ゲームの表示サイズを大きくしたり、アクセントカラーを変更したりすることも簡単にできます。
もちろん、ゲームはただ見た目が良いだけでなく、完全に機能します。私はカバ(Moogang)を選び、対戦相手としてカモを配置してみましょう。すべての変更はリアルタイムで反映され、即座にテストすることができます。
このように、GitHub Sparkを使用することで、複雑なプログラミングの知識がなくても、機能的でカスタマイズ可能なアプリケーションを数分で作成することができます。私たちが目指しているのは、このような開発体験をより多くの人々に提供することです。
6.3. バッジスキャンアプリケーションの実例
私のチームは、さらに実用的なアプリケーションの例として、カンファレンスバッジをスキャンするアプリケーションを作成しました。このアプリケーションの開発過程では、各ステップごとのプロンプトの履歴を確認することができ、どのようにアプリケーションが構築されていったかを追跡できます。
実際のデモをお見せしましょう。カメラを起動すると、私のカンファレンスバッジ(皆様も同様のバッジをお持ちだと思います)をスキャンすることができます。スキャンすると、私の写真、名前、ハンドルネームなどの情報が即座に表示されます。
このアプリケーションの特徴的な機能は、スキャンしたデータの永続的な保存です。データタブをクリックすると、これまでにスキャンした全てのバッジ情報を確認することができます。この機能により、カンファレンス中に出会った人々の情報を簡単に記録し、後から参照することができます。
さらに、このアプリケーションはモバイルデバイスでの使用に最適化されており、展示会場を歩き回りながら、実際に使用することができます。このように、GitHub Sparkを使用することで、カメラ統合、データ保存、モバイル対応といった複雑な機能を持つアプリケーションを、コーディングの知識がなくても短時間で作成することができます。
これは、私たちが目指している「誰もがアプリケーションを作れる」という未来の具体例です。技術的な障壁を取り除き、アイデアを直接実装可能なアプリケーションへと変換できる環境を提供することで、より多くの人々がソフトウェア開発に参加できるようになります。
7. 今後のビジョン(GitHub CEO Thomas Dohmke)
7.1. 10億人の開発者を目指して
GitHub Sparkのデモをお見せしましたが、これには深い意味があります。あまりにも長い間、英語がプログラミングの主要言語ではなかった人々、教育へのアクセスが十分でなかった人々、そしてコーディングの技術を習得することが高すぎる壁に見えた人々にとって、ソフトウェア開発は参入障壁の高い分野でした。
この堅固なコンクリートの壁は、技術経済における機会を制限し、私たちの業界を囲われた庭園のような状態にしてきました。しかし、GitHub Sparkによって、このコンクリートの壁に10億の亀裂を入れることができます。そして、皆様の助けを借りて、いつの日かこの壁を完全に打ち壊し、地面に叩きつけることができるでしょう。
これは単なる理想ではありません。100万人ではなく、10億人の開発者がGitHub上でソフトウェアを共に構築できる世界を実現することは、私たちの指針となる目標です。そのために、以下の取り組みを進めています:
- 言語のバリアを取り除き、母国語でのプログラミングを可能にする
- AIを活用して、プログラミングの学習曲線を緩やかにする
- 世界中のどこからでもアクセス可能な開発環境を提供する
このAIの時代における新しいクリエイターネットワークは、すべての人のためのネットワークとなるべきです。そして、この目標を実現するための具体的な一歩として、GitHub Sparkを含む新しいツールやプラットフォームを提供していきます。私たちは、この大きなビジョンを必ず実現させます。
7.2. 技術教育のバリアフリー化
私たちのビジョンは、技術教育のバリアを完全に取り除くことです。現在の技術経済において、多くの人々は様々な理由でソフトウェア開発への参加機会を失っています。それは、英語が母国語でないこと、教育へのアクセスが限られていること、あるいは単にコーディングの学習が高い壁に感じられることなど、様々な要因が考えられます。
しかし、あまりにも長い間、これらの具体的な壁が、世界中の大多数の人々をソフトウェアの創造から遠ざけてきました。この状況は、テクノロジー経済における機会そのものを制限し、私たちの業界を「囲われた庭」のような状態にしてきました。
GitHub SparkやCopilot Workspaceのような新しいツールは、この状況を根本的に変える可能性を持っています。例えば、母国語でのプログラミングが可能になり、AIによる支援で学習曲線が緩やかになり、より直感的な開発環境を提供することで、これまでソフトウェア開発に参加できなかった人々に新たな機会を提供できます。
私たちの最終目標は、技術教育の完全なバリアフリー化です。その実現のために、私たちは以下の取り組みを進めています:
- プログラミング教育へのアクセスを改善し、より多くの人々が学習を開始できるようにする
- AIを活用して、コーディング学習をより簡単で直感的なものにする
- 新しい技術経済において、誰もが平等に機会を得られる環境を整備する
これらの取り組みは、単なる理想論ではありません。GitHub Sparkのような具体的なツールを通じて、私たちは着実にこのビジョンを実現に近づけています。技術教育のバリアフリー化は、10億人の開発者という私たちの大きな目標を達成するための重要な一歩となります。