見出し画像

【完全保存版】Copilot Workspaceについて(翻訳・編集版)

当記事は、こちらの記事を翻訳・編集したものです。

0 はじめに

1 未知のタスクに直面した時

あなたが馴染みのないリポジトリ、プログラミング言語、またはフレームワークを使用するタスクに直面する頻度はどれくらいでしょうか?

何をどう始めればよいかわからないことは、圧倒的に感じられます。

タスクとその文脈を理解し、何をすべきかを決定するために必要な精神的な努力は、タスクに取り組むのをためらわせることがあります。

2 未知のタスクへの対応

したがって、オープンソースプロジェクトで見つけたバグを修正するためにPRを送信しないかもしれません。

また、新しいスキルを学ぶ必要がある自分のプロジェクトでの問題に対処しないかもしれません。

1 Copilot Workspaceが解決するもの

Copilot Workspaceは、まさにこれらの課題を支援するための試みです。

Copilot Workspaceは、開発者の内部ループを再考したものです。

翻訳者注
「開発者の内部ループ(Developer Inner Loop)」とは、ソフトウェア開発プロセスにおいて、開発者が日常的に行う一連の作業を指します。

1 体験の焦点について

体験の焦点は、タスクの選択意図の表現、そしてAIと協力して解決策に向かうことです。

これにより、複雑さを大幅に減らし生産性を向上させ、開発者を喜ばせることができると信じています。

2 損なわれない要素

それでいて、意思決定、創造性、所有権といったソフトウェア開発の最も重要な側面を損なうことはありません。

3 解決策の提案

Copilot Workspaceは、タスクを提供すると、自動的に解決策を提案することができます。

Copilot Workspaceは、タスクに関するすべてのコメントや返信を含む、タスクとコードベースの両方の全文脈を持っています。

そのため、あなたが何をしようとしているかコードの詳細を理解しています。

4 自然言語による修正

Copilot Workspaceが提案した解決策が完全に適切でない場合でも、行動から計画、コードまで、プロセスのどのステップでも自然な言語で編集できます。

5 AIの機能の変化

現在のAI開発者ツールの世代は、開発者が面倒で繰り返しの作業を迅速に終えるのを助ける「第2の手」のように動作します。

Copilot Workspaceは、開発者の「第2の脳」として機能し、より大規模で複雑なタスクをサポートする新しい世代のAI開発者ツールを紹介しています。

翻訳者注
現在のAIツールは「第2の手」であり、新しいAIツールは「第2の脳」であるとしています。

6 対応範囲について

Copilot Workspaceは、リポジトリ全体の粒度で動作し、異なるプログラミング言語で複数のファイルに一貫した変更を加えることができます。

これは、コアコーディングタスクだけではありません。

「テストフレームワークをセットアップする」「継続的インテグレーションのためのGitHub Actionsワークフローを書く」といった足場作りのようなタスクも扱うことができます。

翻訳者注
GitHub Actionsは、GitHub上で自動化されたワークフローを作成および管理するための機能です。
これにより、ソフトウェア開発のさまざまなプロセスを自動化することが可能になります。

7 現状について

私たちはすでにGitHub NextCopilot Workspaceをドッグフーディングしており、Copilot Workspace自体の開発だけでなく、他のプロジェクトにも使用しています。

翻訳者注
「ドッグフーディング」とは、企業や開発チームが自社で開発した製品やサービスを自ら使うことを指します。

まだ初期段階ですが、すでに実用的な価値を見ており、今後さらにその使用が増えると期待しています。

2 タスク中心のワークフロー

1 Copilot Workspaceの目的

Copilot Workspaceは、開発者が完全な開発タスクを完了するのを助けることを目的としています。

2 動作の流れについて

これらのタスクは、しばしばGitHubのイシューとして指定され、追跡されます。

https://githubnext.com/projects/copilot-workspace

そのため、Copilot Workspaceは

① issuesを入力として受け取り
② コードの現在の動作を自動的に抽出し、
③ 問題を解決するための新しい動作を提案し、
④ 計画を立て
⑤ その計画を実装(つまり、コードを書く)

することができます。

翻訳者注
流れは下のようになっています。

①「Open in workspace」で開始

②動作の抽出

③提案

④計画

⑤実装

Copilot Workspaceはissuesの全文脈、すべてのコメントを含めて把握しており、issuesからリンクをたどってタスクを完了するための情報を抽出することさえできます。

3 ユーザーフィードバックと反復について

ユーザーフィードバックと反復はCopilot Workspaceの重要なコンセプトです。

提案された新しい動作、計画、実装の各ステップを編集することができます。

例えば、計画を実装してコードを見た後、動作や計画を調整して再試行することができます。

同じイシューを複数のタブで開き、いくつかの異なる選択肢を探求することもできます。

4 Copilot Workspaceの利点について

LLM(大規模言語モデル)を用いた開発者タスクの完了を目指す以前の試みはチャットに焦点を当てていました。

Copilot Workspaceのより構造化されたタスクベースのUIは明確な利点があると私たちは信じています。

翻訳者注
LLM(Large Language Model、大規模言語モデル)は、大量のテキストデータを使用して訓練される人工知能(AI)の一種です。

これらのモデルは、自然言語処理(NLP)のタスクにおいて高度な能力を持ち、テキストを理解し、生成することができます。

  • 問題の全文脈がCopilot Workspaceに利用可能であり、適切な解決策を提案するのに役立ちます。

  • 構造化された出力(元のおよび変更された動作、計画、実装)は、ちょうど適切な抽象レベルでCopilot Workspaceを指揮するのを容易にします。

翻訳者注
提案、計画、実装などに分かれていることで、必要な場所でCopilot Workspaceを指揮することができます。

5 今後について

現在、Copilot Workspaceはissuesから開始しますが、時間が経つにつれて、他のエントリーポイントをサポートするようになります。

例えば、Copilot Workspaceは

  • 開発者がCodeQLを通じて見つけたセキュリティアラートに対処したり

  • 依存関係の新しいバージョンに移行したり

  • あるライブラリから別のライブラリへの移行を支援したり

  • PRレビューのコメントを解決したり

するのに役立つかもしれません。

翻訳者注
CodeQLは、GitHubが提供するコード分析ツールです。
このツールは、ソースコード内のセキュリティ脆弱性やその他の問題を特定するために使用されます。


3 クラウドパワード・エージェント

1 ユーザーによる確認の必要性

LLM(大規模言語モデル)は完璧ではなくCopilot Workspaceに要求されるタスクは複雑で十分に明確ではありません。

したがって、Copilot Workspaceが提案した内容がユーザーの意図と一致しているかどうかを容易に確認できるようにすることが重要です。

2 AIエージェント技術の使用

確認を可能にするために、AIエージェント技術GitHub Codespacesを組み合わせて使用します。

翻訳者注
AIエージェント技術は、人工知能(AI)を利用して、特定のタスクや活動を自動的に実行するシステムやプログラムを指します。
この技術は、ユーザーの指示に基づいて操作を行うだけでなく、状況に応じて自律的に行動する能力も持っています。
AIエージェントは、学習アルゴリズムやデータ処理能力を活用し、さまざまな分野での応用が進んでいます。

これはヘッドレスで一時的かつ安全な計算環境を提供します。

翻訳者注
ヘッドレス(Headless): この用語は、通常、ユーザーインターフェイス(UI)がないコンピューティング環境を指します。
つまり、グラフィカルユーザーインターフェイス(GUI)を必要とせず、コマンドラインやAPIを通じて操作されるシステムです。

3 ビルドについて

ユーザーが「実行」ボタンをクリックすると、背後では新しいコードスペースを作成し、変更されたコードをそこにプッシュし、プロジェクトのビルドを試みます。

ビルドが失敗した場合、エラーメッセージとコードCopilot Workspaceにフィードバックし、ビルドの修復を依頼します。

ビルドに成功すると、修復されたコードをCopilot Workspace UIに同期し、ユーザーがビルドの修復方法を確認できるようにします。

4 動作の確認

最後に、プロジェクトを実行し、ウェブアプリの場合は、コードスペース上のポートをそのユーザーのみがアクセスできるURLにフォワードします。

ユーザーはクリックしてウェブアプリのライブプレビューを視覚的に確認でき、Copilot Workspaceが期待通りの動作をしているかを検証できます。

5 最後の仕上げについて

LLMが完璧でないため、多くのタスクには「最後の仕上げ」が必要になると予想されます。

そのため、Copilot Workspaceではコードスペースを開き途中から作業を再開し、安全なランタイムを備えた完全なクラウドIDEでタスクを完了できるようにします。

6 今後について

デバッグ、テストの実行と修復、パフォーマンスプロファイリングなど、ライブ開発環境を必要とする他のタスクにもエージェントを拡張する予定です。

翻訳者注
パフォーマンスプロファイリング(Performance Profiling)
アプリケーションの実行中にリソースの使用状況や性能のボトルネックを特定することです。
これにより、プログラムの効率や速度を改善するための情報が得られます。

4 協力のための設計

1 チームへの共有

Copilot Workspaceは、「共有」ボタンをクリックするだけでワークスペースを簡単に共有できるようになっています。

これにより、チームメイトとの状態を共有し、協力を促進することが容易になります。

2 過程への理解

ユーザーエクスペリエンスが構造化されているため、セッションの全活動ログを記録することができ、提案された実装がなぜそのような形になったのかを理解するのに役立ちます。

3 AIによるコードレビュー

さらに、Copilot Workspaceの経験はAIによるコードレビューのような感覚を持つように設計されています。

翻訳者注
つまり、あくまでもユーザーがレビュアーであり、AIのサポートによって効率的にレビューの体験ができるということだと思いました。

4 計画から実装への移動

計画を確認し、実装される各ステップを見て、UI内の計画ステップをクリックすることで該当するコード変更に移動することができます。

これにより、コードの差分だけでなく、その差分がなぜ生じたかがレビューアーにも明確になる、豊かな形式のコードレビューが可能になります。

5 今後について

時間が経つにつれて、コメント機能やマルチプレイヤー編集を追加する予定です。

それが実現すれば、Copilot Workspaceは開発者の内部ループレビューループの両方を1つのツールで扱うことができるようになります。

翻訳者注
内部ループ(Developer Inner Loop)
これはソフトウェア開発におけるコーディング、テスト、デバッグの連続的なサイクルを指します。
開発者はこのループ内でコードを書き、小さな変更を加え、それが正しく機能するかを確認します。

翻訳者注
レビューループ(Review Loop)
これはコードのレビュー、批評、改善を含むプロセスです。
他の開発者やチームメンバーがコードを評価し、フィードバックを提供します。
この段階は、コードの品質を確保し、チーム内での知識共有と協力を促進します。

5 次は何ですか?

Copilot Workspaceの進捗を共有できることにとても興奮しています。

皆さんの意見を聞かせてください!

witterの@GitHubNextでツイートするか、next@github.comまでメールをお送りください。

サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊