【完全保存版】Copilot Workspaceについて(翻訳・編集版)
当記事は、こちらの記事を翻訳・編集したものです。
0 はじめに
1 未知のタスクに直面した時
あなたが馴染みのないリポジトリ、プログラミング言語、またはフレームワークを使用するタスクに直面する頻度はどれくらいでしょうか?
何をどう始めればよいかわからないことは、圧倒的に感じられます。
タスクとその文脈を理解し、何をすべきかを決定するために必要な精神的な努力は、タスクに取り組むのをためらわせることがあります。
2 未知のタスクへの対応
したがって、オープンソースプロジェクトで見つけたバグを修正するためにPRを送信しないかもしれません。
また、新しいスキルを学ぶ必要がある自分のプロジェクトでの問題に対処しないかもしれません。
1 Copilot Workspaceが解決するもの
Copilot Workspaceは、まさにこれらの課題を支援するための試みです。
Copilot Workspaceは、開発者の内部ループを再考したものです。
1 体験の焦点について
体験の焦点は、タスクの選択、意図の表現、そしてAIと協力して解決策に向かうことです。
これにより、複雑さを大幅に減らし、生産性を向上させ、開発者を喜ばせることができると信じています。
2 損なわれない要素
それでいて、意思決定、創造性、所有権といったソフトウェア開発の最も重要な側面を損なうことはありません。
3 解決策の提案
Copilot Workspaceは、タスクを提供すると、自動的に解決策を提案することができます。
Copilot Workspaceは、タスクに関するすべてのコメントや返信を含む、タスクとコードベースの両方の全文脈を持っています。
そのため、あなたが何をしようとしているかとコードの詳細を理解しています。
4 自然言語による修正
Copilot Workspaceが提案した解決策が完全に適切でない場合でも、行動から計画、コードまで、プロセスのどのステップでも自然な言語で編集できます。
5 AIの機能の変化
現在のAI開発者ツールの世代は、開発者が面倒で繰り返しの作業を迅速に終えるのを助ける「第2の手」のように動作します。
Copilot Workspaceは、開発者の「第2の脳」として機能し、より大規模で複雑なタスクをサポートする新しい世代のAI開発者ツールを紹介しています。
6 対応範囲について
Copilot Workspaceは、リポジトリ全体の粒度で動作し、異なるプログラミング言語で複数のファイルに一貫した変更を加えることができます。
これは、コアコーディングタスクだけではありません。
「テストフレームワークをセットアップする」や「継続的インテグレーションのためのGitHub Actionsワークフローを書く」といった足場作りのようなタスクも扱うことができます。
7 現状について
私たちはすでにGitHub NextでCopilot Workspaceをドッグフーディングしており、Copilot Workspace自体の開発だけでなく、他のプロジェクトにも使用しています。
まだ初期段階ですが、すでに実用的な価値を見ており、今後さらにその使用が増えると期待しています。
2 タスク中心のワークフロー
1 Copilot Workspaceの目的
Copilot Workspaceは、開発者が完全な開発タスクを完了するのを助けることを目的としています。
2 動作の流れについて
これらのタスクは、しばしばGitHubのイシューとして指定され、追跡されます。
そのため、Copilot Workspaceは
① issuesを入力として受け取り
② コードの現在の動作を自動的に抽出し、
③ 問題を解決するための新しい動作を提案し、
④ 計画を立て、
⑤ その計画を実装(つまり、コードを書く)
することができます。
①「Open in workspace」で開始
②動作の抽出
③提案
④計画
⑤実装
Copilot Workspaceはissuesの全文脈、すべてのコメントを含めて把握しており、issuesからリンクをたどってタスクを完了するための情報を抽出することさえできます。
3 ユーザーフィードバックと反復について
ユーザーフィードバックと反復はCopilot Workspaceの重要なコンセプトです。
提案された新しい動作、計画、実装の各ステップを編集することができます。
例えば、計画を実装してコードを見た後、動作や計画を調整して再試行することができます。
同じイシューを複数のタブで開き、いくつかの異なる選択肢を探求することもできます。
4 Copilot Workspaceの利点について
LLM(大規模言語モデル)を用いた開発者タスクの完了を目指す以前の試みはチャットに焦点を当てていました。
Copilot Workspaceのより構造化されたタスクベースのUIは明確な利点があると私たちは信じています。
問題の全文脈がCopilot Workspaceに利用可能であり、適切な解決策を提案するのに役立ちます。
構造化された出力(元のおよび変更された動作、計画、実装)は、ちょうど適切な抽象レベルでCopilot Workspaceを指揮するのを容易にします。
5 今後について
現在、Copilot Workspaceはissuesから開始しますが、時間が経つにつれて、他のエントリーポイントをサポートするようになります。
例えば、Copilot Workspaceは
開発者がCodeQLを通じて見つけたセキュリティアラートに対処したり
依存関係の新しいバージョンに移行したり
あるライブラリから別のライブラリへの移行を支援したり
PRレビューのコメントを解決したり
するのに役立つかもしれません。
3 クラウドパワード・エージェント
1 ユーザーによる確認の必要性
LLM(大規模言語モデル)は完璧ではなく、Copilot Workspaceに要求されるタスクは複雑で十分に明確ではありません。
したがって、Copilot Workspaceが提案した内容がユーザーの意図と一致しているかどうかを容易に確認できるようにすることが重要です。
2 AIエージェント技術の使用
確認を可能にするために、AIエージェント技術とGitHub Codespacesを組み合わせて使用します。
これはヘッドレスで一時的かつ安全な計算環境を提供します。
3 ビルドについて
ユーザーが「実行」ボタンをクリックすると、背後では新しいコードスペースを作成し、変更されたコードをそこにプッシュし、プロジェクトのビルドを試みます。
ビルドが失敗した場合、エラーメッセージとコードをCopilot Workspaceにフィードバックし、ビルドの修復を依頼します。
ビルドに成功すると、修復されたコードをCopilot Workspace UIに同期し、ユーザーがビルドの修復方法を確認できるようにします。
4 動作の確認
最後に、プロジェクトを実行し、ウェブアプリの場合は、コードスペース上のポートをそのユーザーのみがアクセスできるURLにフォワードします。
ユーザーはクリックしてウェブアプリのライブプレビューを視覚的に確認でき、Copilot Workspaceが期待通りの動作をしているかを検証できます。
5 最後の仕上げについて
LLMが完璧でないため、多くのタスクには「最後の仕上げ」が必要になると予想されます。
そのため、Copilot Workspaceではコードスペースを開き、途中から作業を再開し、安全なランタイムを備えた完全なクラウドIDEでタスクを完了できるようにします。
6 今後について
デバッグ、テストの実行と修復、パフォーマンスプロファイリングなど、ライブ開発環境を必要とする他のタスクにもエージェントを拡張する予定です。
4 協力のための設計
1 チームへの共有
Copilot Workspaceは、「共有」ボタンをクリックするだけでワークスペースを簡単に共有できるようになっています。
これにより、チームメイトとの状態を共有し、協力を促進することが容易になります。
2 過程への理解
ユーザーエクスペリエンスが構造化されているため、セッションの全活動ログを記録することができ、提案された実装がなぜそのような形になったのかを理解するのに役立ちます。
3 AIによるコードレビュー
さらに、Copilot Workspaceの経験はAIによるコードレビューのような感覚を持つように設計されています。
4 計画から実装への移動
計画を確認し、実装される各ステップを見て、UI内の計画ステップをクリックすることで該当するコード変更に移動することができます。
これにより、コードの差分だけでなく、その差分がなぜ生じたかがレビューアーにも明確になる、豊かな形式のコードレビューが可能になります。
5 今後について
時間が経つにつれて、コメント機能やマルチプレイヤー編集を追加する予定です。
それが実現すれば、Copilot Workspaceは開発者の内部ループとレビューループの両方を1つのツールで扱うことができるようになります。
5 次は何ですか?
Copilot Workspaceの進捗を共有できることにとても興奮しています。
皆さんの意見を聞かせてください!
witterの@GitHubNextでツイートするか、next@github.comまでメールをお送りください。
サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊