VS CodeのAgents windowでは、Copilot、Claude、Codexなどの対応AIエージェントを、同じGitリポジトリの別々のworktreeで並列実行できます。各AIの変更先が別ディレクトリになるため、作業中のファイルを上書きし合うことなく、実装案やテスト結果を比較してから必要な変更だけを取り込めます。
操作の要点は、AIごとに新しいトップレベルのsessionを作り、各sessionで「New Worktree」を有効にすることです。単に「+ New Chat」でチャットを増やしただけではworktreeは分かれません。同じsession内の複数chatは、同じworkspaceとworktreeを共有するため注意してください。(The GitHub Blog)
VS CodeでCopilot・Claude・Codexを別worktreeに分離して差分確認する
GitHubが2026年7月30日に公開した公式Changelogは、同年7月に配信されたVS Code 1.127~1.131の更新をまとめたものです。
今回の機能は一度に追加されたわけではありません。Agents windowの画面再設計、worktree対応、subagentの進行状況表示が、複数のバージョンに分かれて段階的に追加されています。
| VS Code | リリース日 | Agents windowに関する主な変更 |
|---|---|---|
| 1.127 | 2026年7月1日 | sessionのグループ化、並べ替え、変更件数表示を強化 |
| 1.128 | 2026年7月8日 | Claudeのmulti-chat、Quick Chat、subagent chatを追加 |
| 1.129 | 2026年7月15日 | Agent Hostと再設計されたeditor panelを追加 |
| 1.130 | 2026年7月22日 | Claude・Codexを含む対応harnessでworktree分離に対応 |
| 1.131 | 2026年7月29日 | subagentのモデル、経過時間、実行中ツールを表示 |
特に重要なのはVS Code 1.130です。それまで「New Worktree」は主にCopilot harness向けでしたが、Agent Host上で動くClaudeやCodexのsessionでもGit worktreeを利用できるようになりました。(The GitHub Blog)
Git worktreeでAIエージェントを分離する意味
Git worktreeは、1つのGitリポジトリから、別のブランチや状態を独立したディレクトリへチェックアウトする機能です。
通常のブランチ切り替えでは、同じ作業ディレクトリの内容が入れ替わります。一方、worktreeでは複数の作業ディレクトリを同時に保持できます。そのため、Copilotが実装している間に、Claudeが別案を作り、Codexがテストを追加するといった並列作業が可能です。(Visual Studio Code)
folder isolationとworktree isolationの違い
| 比較項目 | folder isolation | worktree isolation |
|---|---|---|
| 変更先 | 選択したworkspace | session専用の別worktree |
| 並列実行 | 同じファイルを触ると競合しやすい | 作業中の上書きを防ぎやすい |
| 変更の取り込み | workspaceでCommit | worktreeからMergeまたはPR作成 |
| 向いている用途 | 単発の小さな修正 | 複数AIの並列作業、実装案の比較 |
| 主な注意点 | 作業中の変更へ直接影響する | 後でマージ競合が発生する可能性がある |
worktree分離で防げるのは、作業中に複数AIが同じファイルを直接上書きすることです。
複数のworktreeが同じ行や同じロックファイルを変更した場合、最終的なマージ時には競合することがあります。worktreeは競合そのものをなくす機能ではなく、競合が起こるタイミングを「AIの作業中」から「人が確認して取り込む段階」へ移す仕組みと考えると分かりやすいでしょう。
harnessとAIモデルは同じものではない
Agents windowに表示されるCopilot、Claude、Codexは、単なるモデル選択ではなく、Agent Host上でsession管理やツール実行を担当するagent harnessです。
Agent HostはVS Codeとは別の専用プロセスとして動作し、各harnessと共通のAgent Host Protocolで通信します。これにより、同じsessionを複数のVS Codeウィンドウから表示したり、エディターを閉じても処理を継続したりできる設計になっています。(Visual Studio Code)
モデルを変更しただけでは、作業ディレクトリが自動的に分かれるわけではありません。AIごとに変更を隔離したい場合は、harnessを選ぶだけでなく、別sessionを作成してNew Worktreeを有効化する必要があります。
複数chatと複数worktreeは別物
Agents windowには、1つのsession内で複数のchatを開くmulti-chat機能があります。ただし、multi-chatはworktree分離の代わりにはなりません。
| 作り方 | workspace・worktree | 主な用途 |
|---|---|---|
| Newから別sessionを作る | sessionごとに分離可能 | AI別の実装、別案の比較 |
| + New Chatでchatを追加する | 同じsessionのworktreeを共有 | 関連する質問、同じ実装内の役割分担 |
| subagentを起動する | 親session内の作業として表示 | 調査やテストなどの委任 |
同じsession内の複数chatは、会話履歴やモデルを個別に持てますが、workspaceとworktreeは共有します。Changesに表示される差分も、session内のchatで行われた変更を合算したものです。(Visual Studio Code)
たとえば、CopilotとClaudeに同じファイルの別実装を作らせて比較したい場合、multi-chatではなく、別々のworktreeを持つ2つのsessionを作成してください。
利用前に確認する設定
worktree分離を利用する前に、次の条件を確認します。
- VS Code 1.130以降を使用する
- 対象フォルダがGitリポジトリになっている
- GitHub Copilotへサインインしている
- Agent Hostを有効にする
- 基準にしたい変更を事前にコミットしておく
Agent Hostは設定画面でchat.agentHost.enabledを検索して有効にします。ClaudeをAgent Host側で優先して動かす場合は、chat.agents.claude.preferAgentHostも確認します。
{
"chat.agentHost.enabled": true,
"chat.agents.claude.preferAgentHost": true
}
Agent Hostは段階的に展開されている機能です。組織管理された端末では、設定が管理者ポリシーによって変更できない場合があります。(Visual Studio Code)
未コミット変更は先に整理する
worktreeはGit上のコミットを基準に作られます。元のworkspaceにだけ存在する未コミット変更は、新しいworktreeへ自動的には反映されません。
AIに現在の修正内容を引き継がせたい場合は、次のいずれかを行ってからsessionを作成します。
- 作業用ブランチへコミットする
- 一時コミットを作成する
- 必要な変更をパッチとして渡す
- AIへのプロンプトで変更内容を明示する
特に複数AIへ同じ条件で実装させる場合は、全sessionを同じコミットから開始することが重要です。
AIごとに別worktreeを作成する手順
Agents windowを開く
Agents windowは、次のいずれかの方法で開けます。
- VS Code上部の「Open in Agents」を選択する
- コマンドパレットから「Chat: Open Agents Window」を実行する
- ターミナルから
code --agentsを実行する
Agents windowは通常のエディターとは別ウィンドウで開きます。左側にsession一覧、中央にchat、右側にFilesとChangesが表示されます。(Visual Studio Code)
Copilot用のsessionを作る
- 左上の「New」を選択します。
- 対象のローカルworkspaceを選択します。
- harnessからCopilotを選択します。
- 「New Worktree」を有効にします。
- 権限レベルやモデルを選択します。
- 実行させる内容を入力して送信します。
たとえば、次のように作業範囲と完了条件を明示します。
ユーザー登録APIを実装してください。
対象:
- src/api/users.ts
- src/services/user-service.ts
条件:
- 既存の認証方式を維持する
- 入力値検証を追加する
- 単体テストを追加する
- package-lock.jsonは必要な場合のみ変更する
完了後に実行したテストと変更ファイルを説明してください。
ClaudeとCodexのsessionを追加する
同じ手順で新しいsessionを作成し、それぞれのharnessを選びます。
- Copilot session:標準的な実装
- Claude session:設計を重視した別実装
- Codex session:最小差分の実装やテスト強化
各sessionで「New Worktree」を有効にすれば、それぞれ別ディレクトリで処理されます。
2026年7月のVS Code 1.130リリースノートでは、ClaudeとCodexもworktree isolationの対象とされています。一方、Agents windowの公式ドキュメントにある制限事項では、対応agentとしてCopilot CLI、Copilot Cloud、Claudeのみが列挙されています。Codexがharness一覧に表示されない場合、設定ミスとは限りません。VS Codeのビルド、拡張機能、アカウント単位の段階展開を確認し、実際にharness pickerへ表示されるagentを基準に判断してください。(Visual Studio Code)
複数sessionを横に並べて比較する
作成したsessionは、Agents window内で横に並べて表示できます。
- sessionを右クリックして「Open to the Side」を選択する
- sessionを表示領域へドラッグする
- Altキーを押しながらsessionを選択する
これにより、Copilotの実装内容を左、Claudeの実装内容を右に表示し、会話や進行状況を比較できます。
ただし、Terminal、Files、Changesは現在アクティブになっているsessionの内容を表示します。差分を確認するときは、どのsessionが選択されているかを確認してください。(Visual Studio Code)
再設計されたpanelで差分を確認する
VS Code 1.129では、Agents windowのeditor panelが再設計されました。chatの横にファイルやdiffを開き、共通のタブバーで切り替えられる構成です。通常のVS Codeエディターに近い操作感で、AIが生成した変更を確認できます。(Visual Studio Code)
FilesとChangesを使い分ける
右側のpanelには、主に次の2つの表示があります。
- Files:worktree内にあるファイル全体を確認する
- Changes:AIが追加、変更、削除したファイルを確認する
Changesでは、ファイルごとに追加行数と削除行数が表示されます。
src/api/users.ts +82 -14
src/services/user.ts +36 -8
tests/users.test.ts +94 -0
変更量の大きいファイルを先に確認できるため、数十ファイルを変更するsessionでもレビューの優先順位を付けやすくなります。VS Code 1.130では、multi-file diffの余白も縮小され、狭いpanel内でコードを確認しやすくなりました。(Visual Studio Code)
inlineとside-by-sideを切り替える
diffは、次の2種類の表示を切り替えられます。
- inline:変更前後を1列にまとめて表示
- side-by-side:変更前と変更後を左右に表示
小さな修正はinline、大規模な書き換えやリファクタリングはside-by-sideが確認しやすいでしょう。
デフォルトではsession全体のmulti-file diffが開きます。選択した1ファイルだけを個別のdiffとして開きたい場合は、sessions.changes.openSingleFileDiffを有効にします。(Visual Studio Code)
diff上からAIへ修正を依頼する
Agent Host経由のsessionでは、変更箇所を選択して「Add Feedback」を実行できます。
たとえば、次のような指示を変更行へ直接付けられます。
この例外処理では内部エラーの内容をレスポンスへ含めないでください。
ログへ記録し、クライアントには共通メッセージを返してください。
複数のコメントをまとめて「Submit Feedback」すると、AIが指摘箇所を修正します。
確認済みのファイルには「Mark as Reviewed」を付けられます。AIがそのファイルを再変更するとレビュー済み状態が解除されるため、再確認が必要なファイルを見落としにくくなります。(Visual Studio Code)
subagentの動作もAgents windowで追跡できる
複雑なタスクでは、親agentが調査やテストをsubagentへ委任することがあります。
VS Code 1.131では、親chat内から次の情報を確認できるようになりました。
- subagentが使用しているモデル
- 実行開始からの経過時間
- 現在呼び出しているツール
実行中のsubagentを選択すると、別のread-only chatとして会話内容を開けます。親chatはそのまま残るため、親agentとsubagentの進行状況を並べて追跡できます。(Visual Studio Code)
subagentは作業の委任状況を確認する機能であり、AIごとのworktree分離とは別の仕組みです。独立した実装案を作らせたい場合は、subagentではなく別sessionを使用してください。
複数AIへの仕事の割り振り方
worktreeを分けても、すべてのAIへ無計画に同じリポジトリを変更させると、最後の統合作業が難しくなります。
実務では、次の2パターンを使い分けます。
| パターン | 指示方法 | 取り込み方 |
|---|---|---|
| 比較型 | 各AIへ同じ要件を異なる方針で実装させる | 最も良い1案だけを採用する |
| 分担型 | API、UI、テストなど変更範囲を分ける | 順番にマージし、毎回再テストする |
比較型は同じ要件を異なる制約で渡す
たとえば、認証機能を3つのsessionへ次のように依頼します。
- Copilot:既存構成を維持した標準実装
- Claude:保守性を優先したリファクタリング案
- Codex:変更ファイル数を抑えた最小実装
この場合、3案をすべてマージする必要はありません。diff、テスト結果、変更量を比較し、最も適切な1案を選択します。
分担型はファイル境界を明示する
複数AIの成果をすべて利用する場合は、作業範囲を明確に分けます。
Copilot:
src/api/** のみ変更する
Claude:
src/components/** のみ変更する
Codex:
tests/** のみ変更する
本体コードは変更しない
ただし、型定義、API仕様、データベースmigration、package-lock.jsonなどの共有ファイルは競合しやすいため、担当を1つのsessionに固定するのが安全です。
worktree内でビルドとテストを実行する
差分を読むだけでなく、各worktree内で実際にビルドやテストを実行します。
Agents window上部のTerminalアイコンからターミナルを開くと、現在のsessionのfolderまたはworktreeがカレントディレクトリになります。そこで、プロジェクトに応じたコマンドを実行します。
npm ci
npm run lint
npm test
npm run build
Tasksへテストコマンドを登録しておけば、sessionごとに同じ検証を繰り返せます。worktree作成時に自動実行する設定も可能です。(Visual Studio Code)
複数の開発サーバーを同時に起動する場合は、worktreeが分かれていても使用するTCPポートは共有されます。各sessionで異なるポートを指定してください。
# Copilot側
npm run dev -- --port 3001
# Claude側
npm run dev -- --port 3002
# Codex側
npm run dev -- --port 3003
worktreeへ.envや依存関係が引き継がれない場合
Git worktreeには、.gitignoreで除外されているファイルが通常は含まれません。そのため、次のファイルが不足して動作しないことがあります。
.env- ローカル専用設定
node_modules- ビルドキャッシュ
- 開発用証明書
必要なファイルは、git.worktreeIncludeFilesでコピー対象にできます。
{
"git.worktreeIncludeFiles": [
".env",
"node_modules/**"
]
}
この設定でコピーされるのは、指定パターンに一致し、かつ.gitignoreへ登録されているファイルです。(Visual Studio Code)
ただし、node_modulesのコピーはディスク容量を大きく消費する場合があります。大規模プロジェクトでは、各worktreeで依存関係を再構築する方法や、パッケージマネージャーの共有キャッシュを利用する方法も検討してください。
.envに本番用の秘密情報が含まれている場合も注意が必要です。複数worktreeへ無条件にコピーせず、ローカル開発専用の値だけを含むファイルを用意する方が安全です。
変更を安全にマージする手順
各AIの作業が完了したら、次の順序で取り込みます。
- Changesで追加・削除ファイルを確認する
- inlineまたはside-by-sideでdiffを読む
- lint、テスト、ビルドを実行する
- 不要な生成ファイルや秘密情報が含まれていないか確認する
- 最初のworktreeをMergeする
- 残りのworktreeへ最新のbase branchを取り込む
- 再度テストしてから次のworktreeをMergeする
- 必要に応じてPull Requestを作成する
folder isolationではChanges panelからCommitを行います。worktree isolationではMergeを使用し、上流との同期やPull Request作成へ進めます。(Visual Studio Code)
複数worktreeを一度にマージするのではなく、1つ取り込むたびに残りのsessionを最新状態へ合わせるのがポイントです。特にAPI仕様や型定義を変更した場合は、後続のworktreeを必ず再テストしてください。
New Worktreeや新しいpanelが表示されない場合
VS Codeのバージョンを確認する
対応harnessへのworktree拡張はVS Code 1.130で追加されました。古いバージョンでは、ClaudeやCodexを選択してもNew Worktreeが表示されない可能性があります。
Agent Hostが有効か確認する
設定画面で次を検索します。
chat.agentHost.enabled
設定項目がグレーアウトしている場合は、組織の管理ポリシーが適用されている可能性があります。
Gitリポジトリを選択しているか確認する
Git worktreeはGitリポジトリを前提とした機能です。単なるフォルダや、Git初期化前のプロジェクトでは利用できません。
git status
Gitリポジトリでない場合は、必要に応じて初期化します。
git init
git add .
git commit -m "Initial commit"
再設計されたpanelが表示されない場合
VS Code 1.129で新しいeditor panelが初めて提供された時点では、次の設定を有効にしてウィンドウを再読み込みする必要がありました。
{
"sessions.layout.singlePaneDetailPanel": true
}
Preview機能の設定名や初期値は、今後のバージョンで変わる可能性があります。最新バージョンで設定項目が見つからない場合は、JSONへ無理に追加するのではなく、VS Codeの設定画面と該当バージョンのリリースノートを確認してください。(Visual Studio Code)
複数AIを安全に並列実行するための結論
Copilot、Claude、Codexを別々のGit worktreeで動かすには、AIごとに別sessionを作成し、それぞれでNew Worktreeを有効にすることが重要です。
同じsession内でNew Chatを追加してもworktreeは分離されません。実装案を比較するときは別session、同じ実装の中で関連する質問を並行処理するときはmulti-chat、と使い分けてください。
実務では、最初にVS Code 1.130以降へ更新し、Agent Hostを有効化します。その後、各sessionのFilesとChangesから追加・削除件数を確認し、inlineまたはside-by-sideでdiffをレビューします。テストが通ったworktreeだけを1つずつマージすれば、複数AIを利用しながら変更の混在を抑えられます。

コメント