4 4
5# エージェントを並列実行する5# エージェントを並列実行する
6 6
7> Claude Code が複数のタスクを同時に実行する方法を比較します。サブエージェント、エージェントビュー、エージェントチーム、および分離されたワークツリーセッションについて説明します。7> Claude Code が複数のタスクを同時に実行する方法を比較します。サブエージェント、エージェントビュー、エージェントチーム、および動的ワークフローについて説明します。
8 8
9[サブエージェント](/ja/sub-agents)、[エージェントビュー](/ja/agent-view)、[エージェントチーム](/ja/agent-teams)、および [ワークツリー](/ja/worktrees) は、それぞれ異なる方法で作業を並列化します。どれを選ぶかは、各会話に自分で留まりたいのか、タスクを引き継いで後で確認したいのか、それとも Claude に一群のワーカーを調整させたいのかによって異なります。9[サブエージェント](/ja/sub-agents)、[エージェントビュー](/ja/agent-view)、[エージェントチーム](/ja/agent-teams)、および [動的ワークフロー](/ja/workflows) は、それぞれ異なる方法で作業を並列化します。どれを選ぶかは、各会話に自分で留まりたいのか、タスクを引き継いで後で確認したいのか、それとも Claude に一群のワーカーを調整させたいのかによって異なります。
10 10
11| アプローチ | 提供内容 | 使用する場合 |11| アプローチ | 提供内容 | 使用する場合 |
12| :--------------------------- | :---------------------------------------------------------------------- | :------------------------------------------------ |12| :--------------------------- | :---------------------------------------------------------------------- | :--------------------------------------------------------------------------- |
13| [サブエージェント](/ja/sub-agents) | 1 つのセッション内で委任されたワーカーが、独自のコンテキストでサイドタスクを実行し、サマリーを返す | サイドタスクが検索結果、ログ、またはファイルコンテンツで主な会話を埋め尽くす場合(再度参照しない) |13| [サブエージェント](/ja/sub-agents) | 1 つのセッション内で委任されたワーカーが、独自のコンテキストでサイドタスクを実行し、サマリーを返す | サイドタスクが検索結果、ログ、またはファイルコンテンツで主な会話を埋め尽くす場合(再度参照しない) |
14| [エージェントビュー](/ja/agent-view) | `claude agents` で開く、バックグラウンドで実行されているセッションをディスパッチして監視する 1 つの画面。リサーチプレビュー | 複数の独立したタスクがあり、それらを引き継いで、一目で状態を確認し、必要な場合のみ介入したい場合 |14| [エージェントビュー](/ja/agent-view) | `claude agents` で開く、バックグラウンドで実行されているセッションをディスパッチして監視する 1 つの画面。リサーチプレビュー | 複数の独立したタスクがあり、それらを引き継いで、一目で状態を確認し、必要な場合のみ介入したい場合 |
15| [エージェントチーム](/ja/agent-teams) | 共有タスクリストとエージェント間メッセージングを備えた複数の調整されたセッション。リーダーによって管理される。実験的で、デフォルトでは無効 | Claude にプロジェクトを分割させ、割り当てさせ、ワーカーを同期させたい場合 |15| [エージェントチーム](/ja/agent-teams) | 共有タスクリストとエージェント間メッセージングを備えた複数の調整されたセッション。リーダーによって管理される。実験的で、デフォルトでは無効 | Claude にプロジェクトを分割させ、割り当てさせ、ワーカーを同期させたい場合 |
16| [ワークツリー](/ja/worktrees) | 個別の git チェックアウト。並列セッションが互いのファイルに触れることはない | 複数のセッションを自分で実行しているか、サブエージェントが重複するファイルを編集している場合 |16| [動的ワークフロー](/ja/workflows) | 多くのサブエージェントを実行し、その結果をチェックするスクリプト。1 回のターンで調整するには大きすぎるジョブ向け。リサーチプレビュー | タスクが大きすぎてサブエージェント数個では対応できない場合。コードベース全体の監査、500 ファイルのマイグレーション、または敵対的検証が必要な調査など |
17| [`/batch`](/ja/commands) | 1 つの大きな変更を 5 ~ 30 個のワークツリー分離サブエージェントに計画的に分割し、各エージェントがプルリクエストを開く | リポジトリ全体のマイグレーションまたは機械的なリファクタリング。1 つの指示で説明できる場合 |
18 17
19すべてのアプローチにおいて、ワーカーは Claude セッションです。別のツールを関与させるには、それを Claude に [MCP サーバー](/ja/mcp) として公開します。18すべてのアプローチにおいて、ワーカーは Claude セッションです。別のツールを関与させるには、それを Claude に [MCP サーバー](/ja/mcp) として公開します。
20 19
21これらのアプローチを組み合わせることができます。エージェントビューは、ディスパッチされた各セッションをファイルを編集する必要がある場合に自動的に独自のワークツリーに移動し、作業中のセッションはサブエージェントを生成でき、各サブエージェントは独自のワークツリーを取得します。20この作業をサポートする 2 つの追加ツールがありますが、エージェント自体を実行する方法ではありません。
21
22* [ワークツリー](/ja/worktrees) は各セッションに個別の git チェックアウトを提供するため、並列セッションが同じファイルを編集することはありません。自分で実行するセッションに使用します。エージェントビューは、ディスパッチされた各セッションを自動的に独自のワークツリーに移動し、スポーンするサブエージェントも各々独自のワークツリーを取得できます。
23* [`/batch`](/ja/commands) は、1 つの大きな変更を 5 ~ 30 個のワークツリー分離サブエージェントに分割し、各エージェントがプルリクエストを開く [skill](/ja/skills) です。これはサブエージェントとワークツリーのパッケージ化された使用法であり、別の調整スタイルではありません。
24
25他にも Claude を各ステップで駆動することなく実行する機能がいくつかありますが、これらはエージェント間で作業を分割することとは異なる問題を解決します。
26
27* [バックグラウンド bash コマンド](/ja/interactive-mode#background-bash-commands) は、会話をブロックすることなく 1 つのシェルコマンドを実行します。エージェントをスポーンしません。
28* [フォークされたサブエージェント](/ja/sub-agents#fork-the-current-conversation) は、新規に開始する代わりに完全な会話コンテキストを継承するサブエージェントです。これはサブエージェントをスポーンする方法であり、別のサーフェスではありません。
29* [ルーチン](/ja/routines) は、マシン上で並列に実行するのではなく、Anthropic のクラウドでスケジュールに従ってセッションを実行します。
22 30
23<Note>31<Note>
24 複数のセッションまたはサブエージェントを同時に実行すると、トークン使用量が増加します。使用量とレート制限の詳細については、[コスト](/ja/costs) を参照してください。32 複数のセッションまたはサブエージェントを同時に実行すると、トークン使用量が増加します。使用量とレート制限の詳細については、[コスト](/ja/costs) を参照してください。
25</Note>33</Note>
26 34
27## アプローチを選択する35<h2 id="choose-an-approach">
36 アプローチを選択する
37</h2>
28 38
29適切なアプローチは、誰が作業を調整するか、ワーカーが通信する必要があるかどうか、および同じファイルを編集するかどうかによって異なります。39適切なアプローチは、誰が作業を調整するか、ワーカーが通信する必要があるかどうか、および同じファイルを編集するかどうかによって異なります。
30 40
31* **誰が作業を調整するか?** Claude に 1 つの会話内で委任と結果の収集を行わせたい場合は、[サブエージェント](/ja/sub-agents) を使用します。独立したタスクを引き継いで後で確認する場合は、[エージェントビュー](/ja/agent-view) を使用します。Claude にワーカーのグループを計画、割り当て、監督させたい場合は、[エージェントチーム](/ja/agent-teams) を使用します。これは実験的で、デフォルトでは無効です。41* **誰が作業を調整するか?**
42 * Claude が 1 つの会話内で委任と結果の収集を行う場合:[サブエージェント](/ja/sub-agents)
43 * 独立したタスクを引き継いで後で確認する場合:[エージェントビュー](/ja/agent-view)
44 * Claude がワーカーのグループを計画、割り当て、監督する場合:[エージェントチーム](/ja/agent-teams)(実験的で、デフォルトでは無効)
45 * スクリプトが Claude のターンバイターン判断の代わりに計画を保持する場合:[動的ワークフロー](/ja/workflows)。[ワークフローがサブエージェントとスキルとどのように比較されるか](/ja/workflows#when-to-use-a-workflow)を参照してください
32* **ワーカーが互いに通信する必要があるか?** サブエージェントは結果をそれらを生成した会話に報告し、エージェントビューセッションはあなたにのみ報告します。エージェントチームのチームメイトはタスクリストを共有し、互いに直接メッセージを送信します。46* **ワーカーが互いに通信する必要があるか?** サブエージェントは結果をそれらを生成した会話に報告し、エージェントビューセッションはあなたにのみ報告します。エージェントチームのチームメイトはタスクリストを共有し、互いに直接メッセージを送信します。
33* **タスクが同じファイルに触れるか?** [ワークツリー](/ja/worktrees) で作業を分離します。サブエージェントと自分で実行するセッションは、それぞれ個別のワークツリーを使用できます。エージェントチームはチームメイトをワークツリーで分離しないため、[作業を分割](/ja/agent-teams#avoid-file-conflicts) して、各チームメイトが異なるファイルセットを所有するようにします。47* **タスクが同じファイルに触れるか?** [ワークツリー](/ja/worktrees)で作業を分離します。サブエージェントと自分で実行するセッションは、それぞれ個別のワークツリーを使用できます。エージェントチームはチームメイトをワークツリーで分離しないため、[作業を分割](/ja/agent-teams#avoid-file-conflicts)して、各チームメイトが異なるファイルセットを所有するようにします。
34 48
35## 実行中の作業を確認する49<h2 id="check-on-running-work">
50 実行中の作業を確認する
51</h2>
36 52
37実行中の作業を確認するコマンドは、使用したアプローチによって異なります。53実行中の作業を確認するコマンドは、使用したアプローチによって異なります。
38 54
39* バックグラウンドセッションの場合、`claude agents` は [エージェントビュー](/ja/agent-view) を開きます。すべてのセッション、その状態、および入力が必要なセッションを表示する 1 つの画面です。55* バックグラウンドセッションの場合、`claude agents` は [エージェントビュー](/ja/agent-view) を開きます。すべてのセッション、その状態、および入力が必要なセッションを表示する 1 つの画面です。
40* 現在のセッション内のサブエージェントの場合、`/agents` はパネルを開き、ライブサブエージェントをリストする **Running** タブと、[カスタムサブエージェントを作成および編集](/ja/sub-agents#use-the-%2Fagents-command) できる **Library** タブがあります。名前は似ていますが、これは `claude agents` とは別です。56* 現在のセッション内のサブエージェントの場合、`/agents` はパネルを開き、ライブサブエージェントをリストする **Running** タブと、[カスタムサブエージェントを作成および編集](/ja/sub-agents#use-the-%2Fagents-command) できる **Library** タブがあります。名前は似ていますが、これは `claude agents` とは別です。
41* 現在のセッションのバックグラウンドで実行されているもの場合、`/tasks` は各項目をリストし、確認、アタッチ、または停止できます。57* 現在のセッションのバックグラウンドで実行されているもの場合、`/tasks` は各項目をリストし、確認、アタッチ、または停止できます。
58* 動的ワークフローの場合、`/workflows` は実行中および完了した実行、各実行がある段階、および完了したエージェント数をリストします。
42 59
43すべてのセッションのデスクトップビューについては、[デスクトップアプリでのセッションの並列実行](/ja/desktop#work-in-parallel-with-sessions) を参照してください。60すべてのセッションのデスクトップビューについては、[デスクトップアプリでのセッションの並列実行](/ja/desktop#work-in-parallel-with-sessions) を参照してください。
44 61
45## 詳細情報62<h2 id="learn-more">
63 詳細情報
64</h2>
46 65
47以下の各ガイドは、1 つのアプローチのセットアップと構成をカバーしています。66以下の各ガイドは、1 つのアプローチのセットアップと構成をカバーしています。
48 67
49* [カスタムサブエージェントを作成する](/ja/sub-agents):再利用可能なスペシャリストを定義し、使用できるツールを制御します。68* [カスタムサブエージェントを作成する](/ja/sub-agents):再利用可能なスペシャリストを定義し、使用できるツールを制御します。
50* [エージェントビューでエージェントを管理する](/ja/agent-view):セッションをディスパッチし、その状態を監視し、必要な場合にアタッチします。69* [エージェントビューでエージェントを管理する](/ja/agent-view):セッションをディスパッチし、その状態を監視し、必要な場合にアタッチします。
51* [エージェントチームを調整する](/ja/agent-teams):リーダーとチームメイトをセットアップし、タスクを割り当て、その作業をレビューします。70* [エージェントチームを調整する](/ja/agent-teams):リーダーとチームメイトをセットアップし、タスクを割り当て、その作業をレビューします。
71* [動的ワークフローを調整する](/ja/workflows):バンドルされたワークフローを実行するか、多くのサブエージェントを実行し、その結果を相互に検証する Claude が作成したワークフローを実行します。
52* [ワークツリーで並列セッションを実行する](/ja/worktrees):分離されたチェックアウトで Claude を開始し、コピーされるものを制御し、その後クリーンアップします。72* [ワークツリーで並列セッションを実行する](/ja/worktrees):分離されたチェックアウトで Claude を開始し、コピーされるものを制御し、その後クリーンアップします。