---
title: マルチエージェントオーケストレーション
url: https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration
description: 単一のセッション内で複数のエージェントを連携させます。
featureMetadata:
  topic:
    title: Managed Agents
    url: https://platform.claude.com/docs/en/managed-agents/overview
  status: beta
  betaHeader: managed-agents-2026-04-01
---

「multiagent orchestration」（マルチエージェントオーケストレーション）により、1つのエージェントが他のエージェントと連携して複雑な作業を完了できます。エージェントはそれぞれ独立したコンテキストを持って並列に動作できるため、出力品質の向上に役立ち、完了までの時間も短縮できる場合があります。

マルチエージェント構成が自分の課題に適しているかわからない場合は、[マルチエージェントシステムを使うべきとき（と使うべきでないとき）](https://claude.com/blog/building-multi-agent-systems-when-and-how-to-use-them)を参照してください。

## 他のエージェントに作業を引き渡す

セッションが実行するエージェントは、2つの方法で他のエージェントに作業を引き渡すことができます。「**subagents**」（**サブエージェント**）を使う場合、エージェント自身がタスクを委任し、各サブエージェントが報告する内容を読み取ります。「**dynamic workflows**」（**動的ワークフロー**）を使う場合、エージェントはワークフローを作成します。これは、多数のエージェントをバックグラウンドで実行し、その結果を統合するプログラムです。また、エージェントは自ら作業を行いながら、ガイダンスを得るために「**advisor**」（**アドバイザー**）モデルに相談することもできます。

エージェントがこれらのうちどれを使用できるかはあなたが決め、いつ使用するかはエージェントが判断します。その選択を導くには、システムプロンプトでワークフロー実行をいつ使用すべきかをエージェントに伝えてください。[実行を使用するタイミングをエージェントに伝える](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#tell-the-agent-when-to-use-a-run)を参照してください。また、エージェントが使用できるエージェントを、あなたが列挙したものに限定することもできます。

サブエージェントの場合、次に何が起こるかはエージェント自身が判断します。[サブエージェントのスレッド](https://platform.claude.com/docs/ja/managed-agents/session-threads)はアーカイブするまで利用可能なままなので、エージェントはフォローアップメッセージを送信できます。動的ワークフローの場合、Claudeは、Claudeが直接関与することなくエージェントをオーケストレーションするプログラムを作成します。コンテキストと結果はエージェントからエージェントへプログラム的に受け渡されるため、メインのセッションスレッドはユーザーとのコミュニケーションや、実行中の1つまたは複数のワークフローの状況確認と進捗報告に専念できます。エージェントは実行のスレッドにフォローアップメッセージを送信できず、サーバーは各スレッドを実行の終了までにアーカイブします。

| アプローチ                                                                                                                       | 何が起こるか                                                                                                                                                                           | 使用する場面                                                                                          | 考慮事項                                                                                                                                                                                                  |
| --------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [サブエージェント](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#delegate-to-subagents)               | エージェントがサブエージェントにタスクを委任します。各サブエージェントは独自の[セッションスレッド](https://platform.claude.com/docs/ja/managed-agents/session-threads)で作業し、あなたはそれを一覧表示したりストリーミングしたりできます。                         | サブエージェントの報告後にエージェントがフォローアップすべき場合、またはあなたが列挙した、独自のシステムプロンプトとツールを持つスペシャリストが必要な場合。                  | 委任は1階層のみで、セッションが同時に持てる子スレッドはアイドル状態のものを含めて最大25個です。アドバイザースレッドとワークフロー実行のスレッドはカウントされません。                                                                                                                  |
| [動的ワークフロー](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#dynamic-workflows)                   | エージェントがワークフローを作成します。これは、多数のエージェントをフェーズごとに実行し、その結果を統合するプログラムです。サーバーはそれを1つのワークフロー実行としてバックグラウンドで実行し、あなたはそれを追跡できます。ワークフローはエージェントを定義するか、あなたが与えたリストから選択します。                            | 複数のエージェントを必要とするほとんどの作業。多くの部分からなる作業、並列作業、またはより早く完了させるべき長いタスクなどです。例としては、監査、移行、詳細な調査、クロスチェックがあります。 | 実行内のすべてのエージェントがトークンを使用するため、[セッション予算](https://platform.claude.com/docs/ja/managed-agents/budgets)を設定して、実行を含むセッションの支出に上限を設けてください。システムプロンプトで実行をいつ使用すべきかをエージェントに伝えてください。実行はフェーズごとに追跡でき、各スレッドを読み取ることができます。 |
| [セッションにアドバイザーを与える](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#give-the-session-an-advisor) | セッションの[プライマリスレッド](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#how-it-works)が、アプローチの計画や作業のレビューなどのガイダンスを得るためにターンの途中でアドバイザーモデルに相談し、作業自体は引き続き自ら行います。 | 1つのエージェントが作業を行い、計画や最終レビューなどの重要な場面でアドバイザーモデルの判断を取り入れるべき場合。                                       | アドバイザーに相談できるのはプライマリスレッドのみで、相談はアドバイザーモデルの料金で課金されます。                                                                                                                                                    |

これらは、エージェント定義の `multiagent` ブロックで設定します。このブロックには `type` があります。`multiagent_20261001` タイプでは、エージェントは3つすべてを併用でき、それぞれをオンまたはオフにできます。デフォルトでは、`subagents` と `workflows` の両方が有効です。`subagents` と `workflows` はそれぞれ `inline_agents` が有効になっています。これは[エージェントまたはワークフローが自ら定義するエージェント](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#predefined-and-inline-agents)のための設定です：

```json
{
  "multiagent": { "type": "multiagent_20261001" }
}
```

エージェントが呼び出せるエージェントを設定するには、[事前定義エージェントとインラインエージェント](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#predefined-and-inline-agents)を参照してください。設定をオフにするには、[動的ワークフローを有効にする](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#turn-on-dynamic-workflows)を参照してください。

## 事前定義エージェントとインラインエージェント

すべてのサブエージェント、およびワークフロー実行内のすべてのエージェントは、次の2種類のいずれかです：

* **「Predefined agent」（事前定義エージェント）：** あなたがすでに[作成](https://platform.claude.com/docs/ja/managed-agents/agent-setup)し、`multiagent` (csharp, go: `Multiagent`)ブロックに列挙したエージェントです。モデル、システムプロンプト、ツール、MCPサーバー、スキルといった独自の設定を使用します。
* **「Inline agent」（インラインエージェント）：** 保存されていないエージェントです。セッションが実行するエージェント、またはワークフローが、作業を割り当てる際に定義します。そのエージェントのモデル、ツール、MCPサーバー、スキルを使用します。

どちらの種類も `subagents` と `workflows` の両方で機能します：

| エージェントの種類 | `subagents` の場合                                                          | `workflows` の場合                                                                         |
| --------- | ------------------------------------------------------------------------ | --------------------------------------------------------------------------------------- |
| 事前定義      | エージェントは、`subagents.predefined_agents` に列挙したエージェントに委任できます。                | ワークフローは、`workflows.predefined_agents` に列挙したエージェントを使用できます。                               |
| インライン     | エージェントは委任時にインラインエージェントを定義できます。`subagents.inline_agents` でこれをオンまたはオフにします。 | ワークフローはインラインエージェントを定義でき、それぞれにシステムプロンプトを作成します。`workflows.inline_agents` でこれをオンまたはオフにします。 |

`subagents.predefined_agents` と `workflows.predefined_agents` は別々の2つのリストです。一方のリストにあるエージェントが、もう一方に追加されることはありません。どちらのリストもデフォルトでは空です。いずれのリストのエントリも、次のいずれかの形式を取ります：

* `{"type": "agent", "id": agent.id}` は、以前に作成した `agent` をIDで参照します。`version` が指定されていない場合、参照は、それを列挙するエージェントが作成された時点、または更新でリストが送信された時点でのエージェントの最新バージョンに固定されます。
* `{"type": "agent", "id": agent.id, "version": agent.version}` は、特定のエージェントバージョンを固定します。
* 文字列としての `agent.id` 単体は、`{"type": "agent", "id": agent.id}` の省略形です。
* `{"type": "self"}` はエージェント自身を列挙し、そのコピーが作業を行えるようにします。セッションが[エージェント設定のオーバーライド](https://platform.claude.com/docs/ja/managed-agents/sessions#override-agent-configuration-for-a-session)付きで作成された場合、それらのオーバーライドはこれらのコピーにも適用されます。IDで参照されるエントリは影響を受けません。

これらのエントリ、およびそれらが指定するエージェントに関するルールは、両方のリストに適用されます。[サブエージェントを列挙する](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#list-the-subagents)を参照してください。

インラインエージェントは、どちらの設定でもデフォルトでオンです。列挙したエージェントのみを許可するには、`subagents`、`workflows`、またはその両方で `inline_agents` を `{"type": "disabled"}` に設定します。インラインエージェントをオフにした設定では、その `predefined_agents` リストに少なくとも1つのエージェントが必要です。リストが空の場合、リクエストは400エラーで失敗します。更新時には、サーバーは更新後の状態の設定をチェックします。

次のエージェントは、列挙したエージェントのみを許可します。1つのエージェントと自身のコピーに委任でき、ワークフローは別のエージェントのバージョン2を使用できます：

```json
{
  "multiagent": {
    "type": "multiagent_20261001",
    "subagents": {
      "type": "enabled",
      "inline_agents": { "type": "disabled" },
      "predefined_agents": ["agent_01J8XkN5uT3vHpLqRfWdY2", { "type": "self" }]
    },
    "workflows": {
      "type": "enabled",
      "inline_agents": { "type": "disabled" },
      "predefined_agents": [
        { "type": "agent", "id": "agent_01Lm4cV8yQ2tNs7XbKdR5h", "version": 2 }
      ]
    }
  }
}
```

## サブエージェントに委任する

### 何を委任するか

マルチエージェントの連携は、さまざまな領域にまたがる作業を必要とする複雑なタスクや、範囲が明確に定められた複数のタスクが全体の目標に貢献するタスクに最適です。

うまく機能するパターン：

* **並列化：** 独立したサブタスク（複数のソースの検索、別々のファイルの分析）を同時に展開し、エージェントに結果を統合させます。
* **専門化：** 1つのエージェントにすべての機能を持たせるのではなく、セキュリティエージェントやドキュメントエージェントなど、ドメインに特化したシステムプロンプトとツールを持つエージェントにルーティングします。
* **エスカレーション：** 複雑なサブタスクの一部について、より高性能なエージェントやモデルに相談します。モデルに相談するには、[セッションにアドバイザーを与えます](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#give-the-session-an-advisor)。

### 仕組み

すべてのエージェントは同じサンドボックス、ファイルシステム、[ボールトの認証情報](https://platform.claude.com/docs/ja/managed-agents/vaults)を共有しますが、各エージェントは独自の「**session thread**」（**セッションスレッド**）で実行されます。これは、独自の会話履歴を持つ、コンテキストが分離されたイベントストリームです。セッションが実行するエージェントは、セッションレベルの[イベントストリーム](https://platform.claude.com/docs/ja/managed-agents/events-and-streaming)である「**primary thread**」（**プライマリスレッド**）でアクティビティを報告します。追加のスレッドは、エージェントが作業を委任する際に実行時に生成されます。ワークフロー実行もスレッドを作成します。

サブエージェントのスレッドは永続的です。エージェントは以前に呼び出したサブエージェントにフォローアップを送信でき、そのサブエージェントは以前のターンのすべてを保持しています。

サブエージェントがどの設定を使用するかは、それが[事前定義エージェントかインラインエージェントか](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#predefined-and-inline-agents)によって異なります。セッションレベルの[エージェント設定のオーバーライド](https://platform.claude.com/docs/ja/managed-agents/sessions#override-agent-configuration-for-a-session)は、セッションが実行するエージェントとその `self` コピーに適用されます。各エージェントは独自の会話履歴を保持します。

### サブエージェントを列挙する

[エージェントを定義する](https://platform.claude.com/docs/ja/managed-agents/agent-setup)際に、`multiagent` (csharp, go: `Multiagent`)ブロック内の`subagents` (csharp, go: `Subagents`)の`predefined_agents` (java, php: `predefinedAgents`; csharp, go: `PredefinedAgents`)リストを設定して、委任先のエージェントを列挙します：

<CodeGroup defaultLanguage="CLI">
  ```bash cURL
  curl -fsS https://api.anthropic.com/v1/agents \
    -H "x-api-key: $ANTHROPIC_API_KEY" \
    -H "anthropic-version: 2023-06-01" \
    -H "anthropic-beta: managed-agents-2026-04-01" \
    -H "content-type: application/json" \
    -d '{
      "name": "Engineering Lead",
      "model": "claude-opus-5-5",
      "system": "You coordinate engineering work. Delegate code review to the reviewer agent and test writing to the test agent.",
      "tools": [
        {
          "type": "agent_toolset_20260401"
        }
      ],
      "multiagent": {
        "type": "multiagent_20261001",
        "subagents": {
          "type": "enabled",
          "predefined_agents": [
            {"type": "agent", "id": "'"$REVIEWER_AGENT_ID"'"},
            {"type": "agent", "id": "'"$TEST_WRITER_AGENT_ID"'"}
          ]
        }
      }
    }'
  ```

  <CodeGroupItem>
    ```bash CLI
    ant apply engineering-lead.md reviewer.md test-writer.md
    ```

    <File filename="engineering-lead.md">
      ```markdown
      ---
      name: Engineering Lead
      model: claude-opus-5-5
      tools:
        - type: agent_toolset_20260401
      multiagent:
        type: multiagent_20261001
        subagents:
          type: enabled
          predefined_agents: # ant apply replaces each path with {type: agent, id, version}
            - ./reviewer.md
            - ./test-writer.md
      ---

      You coordinate engineering work. Delegate code review to the reviewer agent
      and test writing to the test agent.
      ```
    </File>

    <File filename="reviewer.md">
      ```markdown
      ---
      name: reviewer
      model: claude-haiku-5-5
      ---

      You are a code reviewer.
      ```
    </File>

    <File filename="test-writer.md">
      ```markdown
      ---
      name: test-writer
      model: claude-haiku-5-5
      ---

      You write unit tests.
      ```
    </File>
  </CodeGroupItem>

  ```python Python
  lead_agent = client.beta.agents.create(
      name="Engineering Lead",
      model="claude-opus-5-5",
      system="You coordinate engineering work. Delegate code review to the reviewer agent and test writing to the test agent.",
      tools=[
          {"type": "agent_toolset_20260401"},
      ],
      multiagent={
          "type": "multiagent_20261001",
          "subagents": {
              "type": "enabled",
              "predefined_agents": [
                  {"type": "agent", "id": reviewer_agent.id},
                  {"type": "agent", "id": test_writer_agent.id},
              ],
          },
      },
  )
  ```

  ```typescript TypeScript
  const leadAgent = await client.beta.agents.create({
    name: "Engineering Lead",
    model: "claude-opus-5-5",
    system:
      "You coordinate engineering work. Delegate code review to the reviewer agent and test writing to the test agent.",
    tools: [{ type: "agent_toolset_20260401" }],
    multiagent: {
      type: "multiagent_20261001",
      subagents: {
        type: "enabled",
        predefined_agents: [
          { type: "agent", id: reviewerAgent.id },
          { type: "agent", id: testWriterAgent.id }
        ]
      }
    }
  });
  ```

  ```csharp C#
  var leadAgent = await client.Beta.Agents.Create(new()
  {
      Name = "Engineering Lead",
      Model = BetaManagedAgentsModel.ClaudeOpus5_5,
      System = "You coordinate engineering work. Delegate code review to the reviewer agent and test writing to the test agent.",
      Tools =
      [
          new BetaManagedAgentsAgentToolset20260401Params
          {
              Type = BetaManagedAgentsAgentToolset20260401ParamsType.AgentToolset20260401,
          },
      ],
      Multiagent = new BetaManagedAgentsMultiagent20261001Params
      {
          Subagents = new BetaManagedAgentsMultiagentSubagentsEnabledParams
          {
              PredefinedAgents = [reviewerAgent.ID, testWriterAgent.ID],
          },
      },
  });
  ```

  ```go Go
  leadAgent, err := client.Beta.Agents.New(ctx, anthropic.BetaAgentNewParams{
  	Name:   "Engineering Lead",
  	Model:  anthropic.BetaManagedAgentsModelConfigParams{ID: anthropic.BetaManagedAgentsModelClaudeOpus5_5},
  	System: anthropic.String("You coordinate engineering work. Delegate code review to the reviewer agent and test writing to the test agent."),
  	Tools: []anthropic.BetaAgentNewParamsToolUnion{{
  		OfAgentToolset20260401: &anthropic.BetaManagedAgentsAgentToolset20260401Params{
  			Type: anthropic.BetaManagedAgentsAgentToolset20260401ParamsTypeAgentToolset20260401,
  		},
  	}},
  	Multiagent: anthropic.BetaManagedAgentsMultiagentParamsUnion{
  		OfMultiagent20261001: &anthropic.BetaManagedAgentsMultiagent20261001Params{
  			Subagents: anthropic.BetaManagedAgentsMultiagentSubagentsParamsUnion{
  				OfEnabled: &anthropic.BetaManagedAgentsMultiagentSubagentsEnabledParams{
  					PredefinedAgents: []anthropic.BetaManagedAgentsMultiagentPredefinedAgentParamsUnion{
  						{OfString: anthropic.String(reviewerAgent.ID)},
  						{OfString: anthropic.String(testWriterAgent.ID)},
  					},
  				},
  			},
  		},
  	},
  })
  if err != nil {
  	panic(err)
  }
  ```

  ```java Java
  var leadAgent = client.beta().agents().create(
      AgentCreateParams.builder()
          .name("Engineering Lead")
          .model(BetaManagedAgentsModel.CLAUDE_OPUS_5_5)
          .system("You coordinate engineering work. Delegate code review to the reviewer agent and test writing to the test agent.")
          .addTool(
              BetaManagedAgentsAgentToolset20260401Params.builder()
                  .type(BetaManagedAgentsAgentToolset20260401Params.Type.AGENT_TOOLSET_20260401)
                  .build()
          )
          .multiagent(BetaManagedAgentsMultiagent20261001Params.builder()
              .subagents(BetaManagedAgentsMultiagentSubagentsEnabledParams.builder()
                  .addPredefinedAgent(BetaManagedAgentsAgentParams.builder()
                      .type(BetaManagedAgentsAgentParams.Type.AGENT)
                      .id(reviewerAgent.id())
                      .build())
                  .addPredefinedAgent(BetaManagedAgentsAgentParams.builder()
                      .type(BetaManagedAgentsAgentParams.Type.AGENT)
                      .id(testWriterAgent.id())
                      .build())
                  .build())
              .build())
          .build()
  );
  ```

  ```php PHP
  $leadAgent = $client->beta->agents->create(
      name: 'Engineering Lead',
      model: 'claude-opus-5-5',
      system: 'You coordinate engineering work. Delegate code review to the reviewer agent and test writing to the test agent.',
      tools: [
          ['type' => 'agent_toolset_20260401'],
      ],
      multiagent: [
          'type' => 'multiagent_20261001',
          'subagents' => [
              'type' => 'enabled',
              'predefined_agents' => [
                  ['type' => 'agent', 'id' => $reviewerAgent->id],
                  ['type' => 'agent', 'id' => $testWriterAgent->id],
              ],
          ],
      ],
  );
  ```

  ```ruby Ruby
  lead_agent = client.beta.agents.create(
    name: "Engineering Lead",
    model: "claude-opus-5-5",
    system: "You coordinate engineering work. Delegate code review to the reviewer agent and test writing to the test agent.",
    tools: [
      {type: "agent_toolset_20260401"}
    ],
    multiagent: {
      type: "multiagent_20261001",
      subagents: {
        type: "enabled",
        predefined_agents: [
          {type: "agent", id: reviewer_agent.id},
          {type: "agent", id: test_writer_agent.id}
        ]
      }
    }
  )
  ```
</CodeGroup>

インラインエージェントをオフにしない限り、エージェントはインラインエージェントにも委任できます。その設定、および`subagents` (csharp, go: `Subagents`)の`predefined_agents` (java, php: `predefinedAgents`; csharp, go: `PredefinedAgents`)リストのエントリがとる形式については、[事前定義エージェントとインラインエージェント](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#predefined-and-inline-agents)を参照してください。

`"advisor": {"type": "enabled", "model": "<model id>"}`は、セッションのプライマリスレッドに、ターンの途中で相談できるアドバイザーを付与します。アドバイザーは`multiagent` (csharp, go: `Multiagent`)ブロック内の設定であり、このリストのエントリではありません。[セッションにアドバイザーを与える](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#give-the-session-an-advisor)を参照してください。

このタイプでは動的ワークフローもデフォルトで有効になっているため、このエージェントは多数のエージェントをバックグラウンドで実行する大規模な作業を計画できます。これをオフにする場合、またはワークフローが使用できるエージェントを列挙する場合は、[動的ワークフローを有効にする](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#turn-on-dynamic-workflows)を参照してください。

次のルールは、`subagents` (csharp, go: `Subagents`)の`predefined_agents` (java, php: `predefinedAgents`; csharp, go: `PredefinedAgents`)リストに列挙したエージェント、および`workflows` (csharp, go: `Workflows`)の`predefined_agents` (java, php: `predefinedAgents`; csharp, go: `PredefinedAgents`)リストに列挙したエージェントにも適用されます：

* **固定：** `subagents` (csharp, go: `Subagents`)の`predefined_agents` (java, php: `predefinedAgents`; csharp, go: `PredefinedAgents`)リストを含むエージェントの設定は、エージェントの作成時または更新時にスナップショットされます。参照されるエージェントはその時点で解決されたバージョンに固定されたままとなり、その後の定義の更新は反映されません。リストを送信しない更新では、すでに固定されているバージョンが維持されます。参照されるエージェントの新しいバージョンに委任するには、`subagents` (csharp, go: `Subagents`)の`predefined_agents` (java, php: `predefinedAgents`; csharp, go: `PredefinedAgents`)リストがそのバージョンを参照するように[エージェントを更新](https://platform.claude.com/docs/ja/managed-agents/agent-setup#update-an-agent)してください。
* **1階層：** エージェントは1階層のエージェントにのみ委任できます。`multiagent` (csharp, go: `Multiagent`)が設定されている別のエージェントを参照すると、作成または更新リクエストは400バリデーションエラーで失敗します。
* **最大20エージェント：** `subagents` (csharp, go: `Subagents`)の`predefined_agents` (java, php: `predefinedAgents`; csharp, go: `PredefinedAgents`)リストには、最大20個の一意のエージェントを列挙できます。この制限はリストごとです。`workflows` (csharp, go: `Workflows`)の`predefined_agents` (java, php: `predefinedAgents`; csharp, go: `PredefinedAgents`)リストにも最大20個を列挙できます。エージェントは、セッションの[スレッド制限](https://platform.claude.com/docs/ja/managed-agents/session-threads)の範囲内で、各サブエージェントの複数のコピーを呼び出せます。
* **推論地域：** エージェントと、`subagents` (csharp, go: `Subagents`)または`workflows` (csharp, go: `Workflows`)の`predefined_agents` (java, php: `predefinedAgents`; csharp, go: `PredefinedAgents`)リストに列挙したすべてのエージェントは、同じ[推論地域](https://platform.claude.com/docs/ja/manage-claude/data-residency)（[エージェント定義](https://platform.claude.com/docs/ja/managed-agents/agent-setup)の`model` (csharp, go: `Model`)内の`inference_geo` (java, php: `inferenceGeo`; csharp, go: `InferenceGeo`)）を固定するか、いずれも固定しないかのどちらかである必要があります。いずれかのリストで不一致があると、400バリデーションエラーで拒否されます。このチェックは、エージェントの保存時と、[セッション作成時のオーバーライド](https://platform.claude.com/docs/ja/managed-agents/sessions#override-agent-configuration-for-a-session)がいずれかの固定を変更した時の両方で実行されます。

### セッションを作成する

エージェントを参照するセッションを作成します。エージェントは必要に応じて、`subagents` (csharp, go: `Subagents`)の`predefined_agents` (java, php: `predefinedAgents`; csharp, go: `PredefinedAgents`)リストに列挙したエージェントに委任します。オフにしない限り、[インラインエージェント](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#predefined-and-inline-agents)にも委任できます。

<CodeGroup>
  ```bash cURL
  curl -fsSL https://api.anthropic.com/v1/sessions \
    -H "x-api-key: $ANTHROPIC_API_KEY" \
    -H "anthropic-version: 2023-06-01" \
    -H "anthropic-beta: managed-agents-2026-04-01" \
    -H "content-type: application/json" \
    -d '{
      "agent": "'"$LEAD_AGENT_ID"'",
      "environment_id": "'"$ENVIRONMENT_ID"'"
    }'
  ```

  ```bash CLI
  ant beta:sessions create \
    --agent "$LEAD_AGENT_ID" \
    --environment-id "$ENVIRONMENT_ID"
  ```

  ```python Python
  session = client.beta.sessions.create(
      agent=lead_agent.id,
      environment_id=environment.id,
  )
  ```

  ```typescript TypeScript
  const session = await client.beta.sessions.create({
    agent: leadAgent.id,
    environment_id: environment.id
  });
  ```

  ```csharp C#
  var session = await client.Beta.Sessions.Create(new()
  {
      Agent = leadAgent.ID,
      EnvironmentID = environment.ID,
  });
  ```

  ```go Go
  session, err := client.Beta.Sessions.New(ctx, anthropic.BetaSessionNewParams{
  	Agent: anthropic.BetaSessionNewParamsAgentUnion{
  		OfString: anthropic.String(leadAgent.ID),
  	},
  	EnvironmentID: environment.ID,
  })
  if err != nil {
  	panic(err)
  }
  ```

  ```java Java
  var session = client.beta().sessions().create(SessionCreateParams.builder()
      .agent(leadAgent.id())
      .environmentId(environment.id())
      .build());
  ```

  ```php PHP
  $session = $client->beta->sessions->create(
      agent: $leadAgent->id,
      environmentID: $environment->id,
  );
  ```

  ```ruby Ruby
  session = client.beta.sessions.create(
    agent: lead_agent.id,
    environment_id: environment.id
  )
  ```
</CodeGroup>

### エージェントをMCPサーバーに接続する

MCPサーバーはエージェントスコープです。各エージェント定義は独自のサーバーとツールを宣言します。インラインエージェントにはエージェント定義がないため、セッションが実行するエージェントのMCPサーバーとツールを使用します。ボールトの認証情報はセッションスコープです。セッション作成時に渡された`vault_ids` (java: `vaultIds`; php: `vaultIDs`; csharp: `VaultIds`; go: `VaultIDs`)はすべてのスレッドに適用されます。統合においては次の2つの点に注意してください：

* MCPサーバーを認証するには、すべてのエージェントで使用されるすべてのMCPサーバーのボールト認証情報を含めてください。
* エージェントのアクセスを制限するには、そのエージェント定義で必要なサーバーのみを宣言してください。インラインエージェントはこの方法では制限できません。列挙したエージェントのみを許可するには、`subagents` (csharp, go: `Subagents`)と`workflows` (csharp, go: `Workflows`)の両方で`inline_agents` (java, php: `inlineAgents`; csharp, go: `InlineAgents`)を無効にし、それぞれに少なくとも1つのエージェントを列挙してください。[事前定義エージェントとインラインエージェント](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#predefined-and-inline-agents)を参照してください。

セッション作成時の[エージェント設定のオーバーライド](https://platform.claude.com/docs/ja/managed-agents/sessions#override-agent-configuration-for-a-session)では、セッションが実行するエージェントとその `self` コピーのMCPサーバーを置き換えることができます。

`limited`の[環境](https://platform.claude.com/docs/ja/managed-agents/environments#networking)では、エージェント、または`subagents` (csharp, go: `Subagents`)もしくは`workflows` (csharp, go: `Workflows`)の`predefined_agents` (java, php: `predefinedAgents`; csharp, go: `PredefinedAgents`)リストに列挙したエージェントが、ホストが`allowed_hosts` (java, php: `allowedHosts`; csharp, go: `AllowedHosts`)に含まれていないMCPサーバーを宣言している場合、セッションの作成は400エラーで失敗します。環境のネットワーク設定で`allow_mcp_servers` (java: `allowMcpServers`; php: `allowMCPServers`; csharp: `AllowMcpServers`; go: `AllowMCPServers`)を`true`に設定すると、このチェックはオフになります。

GitHub MCPサーバーを宣言するリサーチャーと、リサーチャーに委任するエージェントを作成します：

<CodeGroup defaultLanguage="CLI">
  ```bash cURL
  # Create the researcher
  curl --fail-with-body -sS https://api.anthropic.com/v1/agents \
    -H "x-api-key: $ANTHROPIC_API_KEY" \
    -H "anthropic-version: 2023-06-01" \
    -H "anthropic-beta: managed-agents-2026-04-01" \
    -H "content-type: application/json" \
    -d '{
      "name": "researcher",
      "model": "claude-haiku-5-5",
      "mcp_servers": [{"type": "url", "name": "github", "url": "https://api.githubcopilot.com/mcp/"}],
      "tools": [{"type": "mcp_toolset", "mcp_server_name": "github"}]
    }'

  # Create the agent that delegates to it: research_agent_id is the id from the first response
  curl --fail-with-body -sS https://api.anthropic.com/v1/agents \
    -H "x-api-key: $ANTHROPIC_API_KEY" \
    -H "anthropic-version: 2023-06-01" \
    -H "anthropic-beta: managed-agents-2026-04-01" \
    -H "content-type: application/json" \
    -d '{
      "name": "lead",
      "model": "claude-opus-5-5",
      "tools": [{"type": "agent_toolset_20260401"}],
      "multiagent": {
        "type": "multiagent_20261001",
        "subagents": {
          "type": "enabled",
          "predefined_agents": [{"type": "agent", "id": "'"$research_agent_id"'"}]
        }
      }
    }'
  ```

  <CodeGroupItem>
    ```bash CLI
    ant apply lead.md researcher.md
    ```

    <File filename="lead.md">
      ```markdown
      ---
      name: lead
      model: claude-opus-5-5
      tools:
        - type: agent_toolset_20260401
      multiagent:
        type: multiagent_20261001
        subagents:
          type: enabled
          predefined_agents: # ant apply replaces each path with {type: agent, id, version}
            - ./researcher.md
      ---
      ```
    </File>

    <File filename="researcher.md">
      ```markdown
      ---
      name: researcher
      model: claude-haiku-5-5
      mcp_servers:
        - type: url
          name: github
          url: https://api.githubcopilot.com/mcp/
      tools:
        - type: mcp_toolset
          mcp_server_name: github
      ---
      ```
    </File>
  </CodeGroupItem>

  ```python Python
  research_agent = client.beta.agents.create(
      name="researcher",
      model="claude-haiku-5-5",
      mcp_servers=[
          {"type": "url", "name": "github", "url": "https://api.githubcopilot.com/mcp/"},
      ],
      tools=[{"type": "mcp_toolset", "mcp_server_name": "github"}],
  )

  lead_agent = client.beta.agents.create(
      name="lead",
      model="claude-opus-5-5",
      tools=[{"type": "agent_toolset_20260401"}],
      multiagent={
          "type": "multiagent_20261001",
          "subagents": {
              "type": "enabled",
              "predefined_agents": [{"type": "agent", "id": research_agent.id}],
          },
      },
  )
  ```

  ```typescript TypeScript
  const researchAgent = await client.beta.agents.create({
    name: "researcher",
    model: "claude-haiku-5-5",
    mcp_servers: [{ type: "url", name: "github", url: "https://api.githubcopilot.com/mcp/" }],
    tools: [{ type: "mcp_toolset", mcp_server_name: "github" }]
  });

  const leadAgent = await client.beta.agents.create({
    name: "lead",
    model: "claude-opus-5-5",
    tools: [{ type: "agent_toolset_20260401" }],
    multiagent: {
      type: "multiagent_20261001",
      subagents: {
        type: "enabled",
        predefined_agents: [{ type: "agent", id: researchAgent.id }]
      }
    }
  });
  ```

  ```csharp C#
  var researchAgent = await client.Beta.Agents.Create(new()
  {
      Name = "researcher",
      Model = BetaManagedAgentsModel.ClaudeHaiku5_5,
      McpServers =
      [
          new()
          {
              Type = BetaManagedAgentsUrlMcpServerParamsType.Url,
              Name = "github",
              Url = "https://api.githubcopilot.com/mcp/",
          },
      ],
      Tools =
      [
          new BetaManagedAgentsMcpToolsetParams
          {
              Type = BetaManagedAgentsMcpToolsetParamsType.McpToolset,
              McpServerName = "github",
          },
      ],
  });

  var leadAgent = await client.Beta.Agents.Create(new()
  {
      Name = "lead",
      Model = BetaManagedAgentsModel.ClaudeOpus5_5,
      Tools =
      [
          new BetaManagedAgentsAgentToolset20260401Params
          {
              Type = BetaManagedAgentsAgentToolset20260401ParamsType.AgentToolset20260401,
          },
      ],
      Multiagent = new BetaManagedAgentsMultiagent20261001Params
      {
          Subagents = new BetaManagedAgentsMultiagentSubagentsEnabledParams
          {
              PredefinedAgents =
              [
                  new BetaManagedAgentsAgentParams
                  {
                      Type = BetaManagedAgentsAgentParamsType.Agent,
                      ID = researchAgent.ID,
                  },
              ],
          },
      },
  });
  ```

  ```go Go
  researcher, err := client.Beta.Agents.New(ctx, anthropic.BetaAgentNewParams{
  	Name:  "researcher",
  	Model: anthropic.BetaManagedAgentsModelConfigParams{ID: anthropic.BetaManagedAgentsModelClaudeHaiku5_5},
  	MCPServers: []anthropic.BetaManagedAgentsURLMCPServerParams{{
  		Type: anthropic.BetaManagedAgentsURLMCPServerParamsTypeURL,
  		Name: "github",
  		URL:  "https://api.githubcopilot.com/mcp/",
  	}},
  	Tools: []anthropic.BetaAgentNewParamsToolUnion{{
  		OfMCPToolset: &anthropic.BetaManagedAgentsMCPToolsetParams{
  			Type:          anthropic.BetaManagedAgentsMCPToolsetParamsTypeMCPToolset,
  			MCPServerName: "github",
  		},
  	}},
  })
  if err != nil {
  	panic(err)
  }

  leadAgent, err := client.Beta.Agents.New(ctx, anthropic.BetaAgentNewParams{
  	Name:  "lead",
  	Model: anthropic.BetaManagedAgentsModelConfigParams{ID: anthropic.BetaManagedAgentsModelClaudeOpus5_5},
  	Tools: []anthropic.BetaAgentNewParamsToolUnion{{
  		OfAgentToolset20260401: &anthropic.BetaManagedAgentsAgentToolset20260401Params{
  			Type: anthropic.BetaManagedAgentsAgentToolset20260401ParamsTypeAgentToolset20260401,
  		},
  	}},
  	Multiagent: anthropic.BetaManagedAgentsMultiagentParamsUnion{
  		OfMultiagent20261001: &anthropic.BetaManagedAgentsMultiagent20261001Params{
  			Subagents: anthropic.BetaManagedAgentsMultiagentSubagentsParamsUnion{
  				OfEnabled: &anthropic.BetaManagedAgentsMultiagentSubagentsEnabledParams{
  					PredefinedAgents: []anthropic.BetaManagedAgentsMultiagentPredefinedAgentParamsUnion{{
  						OfBetaManagedAgentsAgents: &anthropic.BetaManagedAgentsAgentParams{
  							Type: anthropic.BetaManagedAgentsAgentParamsTypeAgent,
  							ID:   researcher.ID,
  						},
  					}},
  				},
  			},
  		},
  	},
  })
  if err != nil {
  	panic(err)
  }
  ```

  ```java Java
  var researcher = client.beta().agents().create(
      AgentCreateParams.builder()
          .name("researcher")
          .model(BetaManagedAgentsModel.CLAUDE_HAIKU_5_5)
          .addMcpServer(BetaManagedAgentsUrlMcpServerParams.builder()
              .name("github")
              .type(BetaManagedAgentsUrlMcpServerParams.Type.URL)
              .url("https://api.githubcopilot.com/mcp/")
              .build())
          .addTool(BetaManagedAgentsMcpToolsetParams.builder()
              .type(BetaManagedAgentsMcpToolsetParams.Type.MCP_TOOLSET)
              .mcpServerName("github")
              .build())
          .build()
  );

  var leadAgent = client.beta().agents().create(
      AgentCreateParams.builder()
          .name("lead")
          .model(BetaManagedAgentsModel.CLAUDE_OPUS_5_5)
          .addTool(BetaManagedAgentsAgentToolset20260401Params.builder()
              .type(BetaManagedAgentsAgentToolset20260401Params.Type.AGENT_TOOLSET_20260401)
              .build())
          .multiagent(BetaManagedAgentsMultiagent20261001Params.builder()
              .subagents(BetaManagedAgentsMultiagentSubagentsEnabledParams.builder()
                  .addPredefinedAgent(BetaManagedAgentsAgentParams.builder()
                      .type(BetaManagedAgentsAgentParams.Type.AGENT)
                      .id(researcher.id())
                      .build())
                  .build())
              .build())
          .build()
  );
  ```

  ```php PHP
  $researchAgent = $client->beta->agents->create(
      name: 'researcher',
      model: 'claude-haiku-5-5',
      mcpServers: [
          ['type' => 'url', 'name' => 'github', 'url' => 'https://api.githubcopilot.com/mcp/'],
      ],
      tools: [
          ['type' => 'mcp_toolset', 'mcp_server_name' => 'github'],
      ],
  );

  $leadAgent = $client->beta->agents->create(
      name: 'lead',
      model: 'claude-opus-5-5',
      tools: [
          ['type' => 'agent_toolset_20260401'],
      ],
      multiagent: [
          'type' => 'multiagent_20261001',
          'subagents' => [
              'type' => 'enabled',
              'predefined_agents' => [
                  ['type' => 'agent', 'id' => $researchAgent->id],
              ],
          ],
      ],
  );
  ```

  ```ruby Ruby
  research_agent = client.beta.agents.create(
    name: "researcher",
    model: "claude-haiku-5-5",
    mcp_servers: [
      {type: "url", name: "github", url: "https://api.githubcopilot.com/mcp/"}
    ],
    tools: [
      {type: "mcp_toolset", mcp_server_name: "github"}
    ]
  )

  lead_agent = client.beta.agents.create(
    name: "lead",
    model: "claude-opus-5-5",
    tools: [
      {type: "agent_toolset_20260401"}
    ],
    multiagent: {
      type: "multiagent_20261001",
      subagents: {
        type: "enabled",
        predefined_agents: [
          {type: "agent", id: research_agent.id}
        ]
      }
    }
  )
  ```
</CodeGroup>

次に、GitHubの認証情報を保持するボールトを指定してセッションを作成します：

<CodeGroup>
  ```bash cURL
  curl --fail-with-body -sS https://api.anthropic.com/v1/sessions \
    -H "x-api-key: $ANTHROPIC_API_KEY" \
    -H "anthropic-version: 2023-06-01" \
    -H "anthropic-beta: managed-agents-2026-04-01" \
    -H "content-type: application/json" \
    -d '{
      "agent": "'"$lead_agent_id"'",
      "environment_id": "'"$environment_id"'",
      "vault_ids": ["'"$vault_id"'"]
    }'
  ```

  ```bash CLI
  ant beta:sessions create \
    --agent "$lead_agent_id" \
    --environment-id "$environment_id" \
    --vault-id "$vault_id"
  ```

  ```python Python
  session = client.beta.sessions.create(
      agent=lead_agent.id,
      environment_id=environment.id,
      vault_ids=[vault.id],
  )
  print(session.id)
  ```

  ```typescript TypeScript
  const session = await client.beta.sessions.create({
    agent: leadAgent.id,
    environment_id: environment.id,
    vault_ids: [vault.id]
  });
  console.log(session.id);
  ```

  ```csharp C#
  var session = await client.Beta.Sessions.Create(new()
  {
      Agent = leadAgent.ID,
      EnvironmentID = environment.ID,
      VaultIds = [vault.ID],
  });
  Console.WriteLine(session.ID);
  ```

  ```go Go
  session, err := client.Beta.Sessions.New(ctx, anthropic.BetaSessionNewParams{
  	Agent: anthropic.BetaSessionNewParamsAgentUnion{
  		OfString: anthropic.String(leadAgent.ID),
  	},
  	EnvironmentID: environment.ID,
  	VaultIDs:      []string{vault.ID},
  })
  if err != nil {
  	panic(err)
  }
  fmt.Println(session.ID)
  ```

  ```java Java
  var session = client.beta().sessions().create(SessionCreateParams.builder()
      .agent(leadAgent.id())
      .environmentId(environment.id())
      .vaultIds(List.of(vault.id()))
      .build());
  IO.println(session.id());
  ```

  ```php PHP
  $session = $client->beta->sessions->create(
      agent: $leadAgent->id,
      environmentID: $environment->id,
      vaultIDs: [$vault->id],
  );
  echo "{$session->id}\n";
  ```

  ```ruby Ruby
  session = client.beta.sessions.create(
    agent: lead_agent.id,
    environment_id: environment.id,
    vault_ids: [vault.id]
  )
  puts session.id
  ```
</CodeGroup>

この例では、GitHub MCPサーバーを宣言しているのはリサーチャーのみであるため、セッションが実行するエージェントはアクセスできません。セッションの`vault_ids` (java: `vaultIds`; php: `vaultIDs`; csharp: `VaultIds`; go: `VaultIDs`)が、リサーチャーのスレッドにGitHubの認証情報を提供します。

<Tip>
  サーバーを宣言した後にエージェントのMCP呼び出しの認証が失敗する場合は、認証情報の`mcp_server_url` (java: `mcpServerUrl`; php: `mcpServerURL`; csharp: `McpServerUrl`; go: `MCPServerURL`)が、エージェントの`mcp_servers[].url` (java, php: `mcpServers[].url`; csharp: `McpServers[].Url`; go: `MCPServers[].URL`)と同じサーバーを参照していることを確認してください。両方のURLは照合前に正規化される（スキームとホストは小文字化され、デフォルトポートと末尾のスラッシュは削除される）ため、ホストの大文字小文字、デフォルトポート、末尾のスラッシュの違いは一致を妨げません。ただし、パス、サブドメイン、またはデフォルト以外のポートが異なる場合は一致しません。
</Tip>

### スレッド

各エージェントのセッションスレッドには独自のイベントストリームがあります。スレッドの一覧表示、中断、アーカイブ、イベントの読み取り、およびスレッド間でのツール権限の処理については、[セッションスレッド](https://platform.claude.com/docs/ja/managed-agents/session-threads)を参照してください。

## 動的ワークフロー

動的ワークフローを使用すると、エージェントは数百のドキュメントのレビューや多数のソースのクロスチェックなど、多数の部分からなる作業に取り組むことができます。エージェントは「**workflow**」（ワークフロー）を作成します。これは、多数のエージェントをフェーズごとに実行し、それらが返す内容を統合するプログラムです。サーバーはそれを「**workflow run**」（ワークフロー実行）としてバックグラウンドで実行し、その間エージェントは作業を続けるか、ターンを終了します。動的ワークフローは、エージェントの`multiagent` (csharp, go: `Multiagent`)ブロック内の`workflows` (csharp, go: `Workflows`)設定でオンまたはオフにします。実行内のエージェントは同時に作業できるため、1つのエージェントが各部分を順番に処理する場合よりも、長時間のタスクを早く完了できます。

* **実行の開始方法：** `user.message` で作業内容を説明します。それをもとに、エージェントが実行を開始するかどうか、いつ開始するかを判断するため、追加のAPI呼び出しは不要です。代わりに、`user.message` またはエージェントのシステムプロンプトで実行をいつ使用すべきかを説明することで、エージェントの判断に影響を与えます。（権限ポリシーは、実行の開始ではなく、実行内のエージェントが呼び出すツールに適用されます。）
* **使用するエージェント：** ワークフローが定義する[インラインエージェント](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#predefined-and-inline-agents)、`workflows` (csharp, go: `Workflows`)の`predefined_agents` (java, php: `predefinedAgents`; csharp, go: `PredefinedAgents`)リストに列挙した事前定義エージェント、またはその両方です。何も列挙しない場合、ワークフローがすべてのエージェントを定義します。インラインエージェントは、セッションが実行するエージェントのモデルを使用します。実行内の一部のエージェントに別のモデルを使用させるには、それらをエージェントとして作成し、`workflows` (csharp, go: `Workflows`)の`predefined_agents` (java, php: `predefinedAgents`; csharp, go: `PredefinedAgents`)リストに列挙してください。
* **追跡方法：** 実行イベントはセッションのイベントストリームに届き、実行内の各エージェントは、一覧表示、読み取り、ストリーミングが可能な[セッションスレッド](https://platform.claude.com/docs/ja/managed-agents/session-threads)で作業します。イベント、中断、[制限](https://platform.claude.com/docs/ja/managed-agents/workflow-runs#limits)、および[実行のスレッドに表示される内容](https://platform.claude.com/docs/ja/managed-agents/workflow-runs#a-runs-threads)については、[ワークフロー実行](https://platform.claude.com/docs/ja/managed-agents/workflow-runs)を参照してください。

### 動的ワークフローを有効にする

[エージェントを定義する](https://platform.claude.com/docs/ja/managed-agents/agent-setup)際に、`multiagent.type` を `"multiagent_20261001"` に設定し、`workflows` を有効にします。このタイプでは、動的ワークフローと委任（`subagents`）の両方がデフォルトで有効になっています。動的ワークフローのみを使用する場合は、`"subagents": {"type": "disabled"}` を追加します。

既存のエージェントの `multiagent.type` を変更する前に、[エージェントをこのタイプに移行する方法](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#move-from-the-coordinator-type)を参照してください。

<CodeGroup defaultLanguage="CLI">
  ```bash cURL
  curl -fsS https://api.anthropic.com/v1/agents \
    -H "x-api-key: $ANTHROPIC_API_KEY" \
    -H "anthropic-version: 2023-06-01" \
    -H "anthropic-beta: managed-agents-2026-04-01" \
    -H "content-type: application/json" \
    -d '{
      "name": "Contract Reviewer",
      "model": "claude-opus-5-5",
      "system": "You review contracts. When you are asked to review more than a few contracts, start a workflow run that reads them in parallel and combines the findings. Review one or two contracts yourself, without a run.",
      "tools": [{"type": "agent_toolset_20260401"}],
      "multiagent": {"type": "multiagent_20261001", "workflows": {"type": "enabled"}}
    }'
  ```

  <CodeGroupItem>
    ```bash CLI
    ant apply contract-reviewer.md
    ```

    <File filename="contract-reviewer.md">
      ```markdown
      ---
      name: Contract Reviewer
      model: claude-opus-5-5
      tools:
        - type: agent_toolset_20260401
      multiagent:
        type: multiagent_20261001
        workflows:
          type: enabled
      ---

      You review contracts. When you're asked to review more than a few contracts, start a workflow run that reads them in parallel and combines the findings. Review one or two contracts yourself, without a run.
      ```
    </File>
  </CodeGroupItem>

  ```python Python
  agent = client.beta.agents.create(
      name="Contract Reviewer",
      model="claude-opus-5-5",
      system="You review contracts. When you're asked to review more than a few contracts, start a workflow run that reads them in parallel and combines the findings. Review one or two contracts yourself, without a run.",
      tools=[{"type": "agent_toolset_20260401"}],
      multiagent={"type": "multiagent_20261001", "workflows": {"type": "enabled"}},
  )
  ```

  ```typescript TypeScript
  const agent = await client.beta.agents.create({
    name: "Contract Reviewer",
    model: "claude-opus-5-5",
    system:
      "You review contracts. When you're asked to review more than a few contracts, start a workflow run that reads them in parallel and combines the findings. Review one or two contracts yourself, without a run.",
    tools: [{ type: "agent_toolset_20260401" }],
    multiagent: { type: "multiagent_20261001", workflows: { type: "enabled" } }
  });
  ```

  ```csharp C#
  var agent = await client.Beta.Agents.Create(new()
  {
      Name = "Contract Reviewer",
      Model = BetaManagedAgentsModel.ClaudeOpus5_5,
      System = "You review contracts. When you're asked to review more than a few contracts, start a workflow run that reads them in parallel and combines the findings. Review one or two contracts yourself, without a run.",
      Tools =
      [
          new BetaManagedAgentsAgentToolset20260401Params
          {
              Type = BetaManagedAgentsAgentToolset20260401ParamsType.AgentToolset20260401,
          },
      ],
      // 設定クラスが type を自動的に設定します。
      Multiagent = new BetaManagedAgentsMultiagent20261001Params
      {
          Workflows = new BetaManagedAgentsMultiagentWorkflowsEnabledParams(),
      },
  });
  ```

  ```go Go
  agent, err := client.Beta.Agents.New(ctx, anthropic.BetaAgentNewParams{
  	Name:   "Contract Reviewer",
  	Model:  anthropic.BetaManagedAgentsModelConfigParams{ID: anthropic.BetaManagedAgentsModelClaudeOpus5_5},
  	System: anthropic.String("You review contracts. When you're asked to review more than a few contracts, start a workflow run that reads them in parallel and combines the findings. Review one or two contracts yourself, without a run."),
  	Tools: []anthropic.BetaAgentNewParamsToolUnion{{
  		OfAgentToolset20260401: &anthropic.BetaManagedAgentsAgentToolset20260401Params{
  			Type: anthropic.BetaManagedAgentsAgentToolset20260401ParamsTypeAgentToolset20260401,
  		},
  	}},
  	Multiagent: anthropic.BetaManagedAgentsMultiagentParamsUnion{
  		OfMultiagent20261001: &anthropic.BetaManagedAgentsMultiagent20261001Params{
  			Workflows: anthropic.BetaManagedAgentsMultiagentWorkflowsParamsUnion{
  				OfEnabled: &anthropic.BetaManagedAgentsMultiagentWorkflowsEnabledParams{},
  			},
  		},
  	},
  })
  if err != nil {
  	panic(err)
  }
  ```

  ```java Java
  var agent = client.beta().agents().create(
      AgentCreateParams.builder()
          .name("Contract Reviewer")
          .model(BetaManagedAgentsModel.CLAUDE_OPUS_5_5)
          .system("You review contracts. When you're asked to review more than a few contracts, start a workflow run that reads them in parallel and combines the findings. Review one or two contracts yourself, without a run.")
          .addTool(
              BetaManagedAgentsAgentToolset20260401Params.builder()
                  .type(BetaManagedAgentsAgentToolset20260401Params.Type.AGENT_TOOLSET_20260401)
                  .build()
          )
          // 設定クラスが type を自動的に設定します。
          .multiagent(BetaManagedAgentsMultiagent20261001Params.builder()
              .workflows(BetaManagedAgentsMultiagentWorkflowsEnabledParams.builder().build())
              .build())
          .build()
  );
  ```

  ```php PHP
  $agent = $client->beta->agents->create(
      name: 'Contract Reviewer',
      model: 'claude-opus-5-5',
      system: "You review contracts. When you're asked to review more than a few contracts, start a workflow run that reads them in parallel and combines the findings. Review one or two contracts yourself, without a run.",
      tools: [
          ['type' => 'agent_toolset_20260401'],
      ],
      multiagent: ['type' => 'multiagent_20261001', 'workflows' => ['type' => 'enabled']],
  );
  ```

  ```ruby Ruby
  agent = client.beta.agents.create(
    name: "Contract Reviewer",
    model: "claude-opus-5-5",
    system_: "You review contracts. When you're asked to review more than a few contracts, start a workflow run that reads them in parallel and combines the findings. Review one or two contracts yourself, without a run.",
    tools: [
      {type: "agent_toolset_20260401"}
    ],
    multiagent: {type: "multiagent_20261001", workflows: {type: "enabled"}}
  )
  ```
</CodeGroup>

すでに作成済みのエージェントをワークフローで使用できるようにするには、それらを `workflows.predefined_agents` に列挙します。`subagents` と `advisor` の設定も同じ `multiagent` ブロックに記述します。サブエージェントを列挙するには、[サブエージェントに委任する](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#delegate-to-subagents)を参照してください。アドバイザーを設定するには、[セッションにアドバイザーを与える](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#give-the-session-an-advisor)を参照してください。次のエージェントは、作成済みのエージェント1つをワークフローで使用できるようにし、2つのサブエージェントを列挙し、アドバイザーを持っています：

```json
{
  "multiagent": {
    "type": "multiagent_20261001",
    "workflows": {
      "type": "enabled",
      "predefined_agents": [{ "type": "agent", "id": "agent_01Lm4cV8yQ2tNs7XbKdR5h" }]
    },
    "subagents": {
      "type": "enabled",
      "predefined_agents": [
        { "type": "agent", "id": "agent_01J8XkN5uT3vHpLqRfWdY2" },
        { "type": "agent", "id": "agent_01HqR2k7vXbZ9mNpL3wYcT" }
      ]
    },
    "advisor": { "type": "enabled", "model": "claude-opus-5-5" }
  }
}
```

各設定はそれぞれ個別に有効または無効にできます：

| 設定          | 有効になる機能                                      | エージェントの記述先                          | デフォルト |
| ----------- | -------------------------------------------- | ----------------------------------- | ----- |
| `workflows` | 動的ワークフロー                                     | `workflows.predefined_agents`（最大20） | 有効    |
| `subagents` | サブエージェントへの委任：列挙したエージェントと、エージェント自身が定義するエージェント | `subagents.predefined_agents`（最大20） | 有効    |
| `advisor`   | アドバイザーモデル                                    | なし。`model` を設定します。                  | 無効    |

各リストに何を記述するか、および列挙したエージェントのみを許可する方法については、[事前定義エージェントとインラインエージェント](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#predefined-and-inline-agents)を参照してください。

次の点に留意してください：

* **更新：** `multiagent_20261001` タイプを維持する更新では、送信した内容のみが変更されます：

  * 省略した設定やフィールドは、保存されている値を保持します。
  * `null` として送信した設定やフィールドはデフォルト値になり、その内部のすべても、保存されていた内容にかかわらずデフォルト値になります。
  * 送信した `predefined_agents` (java, php: `predefinedAgents`; csharp, go: `PredefinedAgents`) リストは、保存されているリストを置き換えます。
  * 異なる `type` で送信した設定は保存されている設定を置き換え、その中で省略したフィールドはデフォルト値になります。
  * 送信するすべてのオブジェクトには `type` が必要で、有効な `advisor` には `model` が必要です。

* **無効化：** `workflows` を `{"type": "disabled"}` に設定します。更新で再び有効にするまで無効のままです。デフォルトが有効であるため、`null` を送信すると有効になります。`subagents` についても同様です。

* **既存のセッション：** セッションは作成時に設定をコピーするため、後でエージェントを変更しても、すでに存在するセッションは変更されません。

* **列挙できるエージェント：** `multiagent` (csharp, go: `Multiagent`) が設定されているエージェントは、別のエージェントのサブエージェントとして、または別のエージェントの `workflows` (csharp, go: `Workflows`) の `predefined_agents` (java, php: `predefinedAgents`; csharp, go: `PredefinedAgents`) リストに列挙することはできません。エージェントは `{"type": "self"}` を使用して、どちらのリストにも自分自身を列挙できます。これは読み取り時に自身の `id` と `version` として返されます。

* **ツール名：** `ant__` プレフィックスは予約されています。エージェントに名前が `ant__` で始まるカスタムツールがすでにある場合、その名前を含まない `tools` (csharp, go: `Tools`) を送信するまで、更新は400エラーで失敗します。エージェント、またはいずれかのリスト内のエージェントがそのようなツールを持っている場合、新しいセッションも400エラーで拒否されます。動的ワークフローを有効にするのと同じ更新で、そのツールの名前を変更するか削除してください。[カスタムツール](https://platform.claude.com/docs/ja/managed-agents/tools#custom-tools)を参照してください。

* **予算：** 実行を含むセッションの支出に上限を設けるには、セッションの作成時に[セッション予算](https://platform.claude.com/docs/ja/managed-agents/budgets)を設定します。既存のセッションに予算を追加することはできません。セッションが予算に達すると実行は一時停止し、予算によって一時停止した実行は、予算を引き上げるか削除すると再開します。ただし、中断によっても一時停止している場合は除きます。[コストと予算](https://platform.claude.com/docs/ja/managed-agents/workflow-runs#cost-and-budgets)を参照してください。

### 実行を使用するタイミングをエージェントに伝える

動的ワークフローを有効にすると、エージェントはワークフロー実行を開始できるようになります。実行を開始するタイミングはエージェントが判断します。その判断を導くには、次のような指示をエージェントのシステムプロンプトに追加します。[動的ワークフローを有効にする](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#turn-on-dynamic-workflows)の契約書レビューエージェントは、次のシステムプロンプトを使用しています：

```text wrap
You review contracts. When you're asked to review more than a few contracts, start a workflow run that reads them in parallel and combines the findings. Review one or two contracts yourself, without a run.
```

これを応用するには、エージェントのドメインにおいてワークフロー実行が必要なタスクと、エージェント自身が行うべき小さなタスクを明示します。次の例のように、実行での作業の進め方を指示することもできます：

* **作業の分割方法：**「実行では、契約書ごとに1つのエージェントを使用してください。次に、2つ目のエージェントに、最初のエージェントが何かを見つけた契約書だけでなくすべての契約書をレビューさせ、最初のエージェントが見落としたものを探させてください。レビューに合格しなかったものはやり直し、再度レビューします。」
* **エージェントが失敗した場合の対処：**「1つのエージェントの失敗によって実行全体を失敗させてはいけません。エージェントが契約書を読み取れなかった場合は、その契約書を対象外として列挙してください。実行が終了したら、どの契約書が対象外だったかを教えてください。」
* **時間制限：**「実行に1時間の時間制限を設けてください。」
* **まず計画する：**「実行を開始する前に、そのフェーズと各フェーズで実行するエージェントの数を説明してください。その後、私の承認を待ってください。」実行の開始前に承認ステップはないため、これを強制する仕組みはありません。

実行内のすべてのエージェントがトークンを使用するため、実行は必要なタスクに限定してください。

その後、他のエージェントと同様に、そのエージェントで[セッションを作成](https://platform.claude.com/docs/ja/managed-agents/sessions)し、`user.message` で作業内容を説明します。そのメッセージでワークフロー実行を依頼することもできます。

実行のイベント、実行が開いている状態でのセッションの中断、実行が開いている間に変わること、および予算と制限については、[ワークフロー実行](https://platform.claude.com/docs/ja/managed-agents/workflow-runs)を参照してください。

## セッションにアドバイザーを与える

エージェントの `multiagent` (csharp, go: `Multiagent`) ブロックで `advisor` 設定を有効にすると、セッションのプライマリスレッドに**アドバイザー**が付きます。アドバイザーとは、アプローチの計画、行き詰まりの打開、完了前の作業レビューなど、戦略的なガイダンスを得るためにターンの途中で相談できるモデルです。この設定はデフォルトで無効です。有効にするには、`advisor` を `{"type": "enabled", "model": "..."}` に設定します。これには `type` と `model` のちょうど2つのフィールドがあります：

<CodeGroup defaultLanguage="CLI">
  ```bash cURL
  curl -fsS https://api.anthropic.com/v1/agents \
    -H "x-api-key: $ANTHROPIC_API_KEY" \
    -H "anthropic-version: 2023-06-01" \
    -H "anthropic-beta: managed-agents-2026-04-01" \
    -H "content-type: application/json" \
    -d '{
      "name": "Backend engineer",
      "model": "claude-sonnet-5",
      "system": "You implement backend features end to end. Consult the advisor before major backend design decisions.",
      "multiagent": {
        "type": "multiagent_20261001",
        "advisor": {"type": "enabled", "model": "claude-opus-5-5"}
      }
    }'
  ```

  <CodeGroupItem>
    ```bash CLI
    ant apply backend-engineer.md
    ```

    <File filename="backend-engineer.md">
      ```markdown
      ---
      name: Backend engineer
      model: claude-sonnet-5
      multiagent:
        type: multiagent_20261001
        advisor:
          type: enabled
          model: claude-opus-5-5
      ---

      You implement backend features end to end. Consult the advisor before major backend design decisions.
      ```
    </File>
  </CodeGroupItem>

  ```python Python
  agent = client.beta.agents.create(
      name="Backend engineer",
      model="claude-sonnet-5",
      system="You implement backend features end to end. Consult the advisor before major backend design decisions.",
      multiagent={
          "type": "multiagent_20261001",
          "advisor": {"type": "enabled", "model": "claude-opus-5-5"},
      },
  )
  print(agent.id)
  ```

  ```typescript TypeScript
  const agent = await client.beta.agents.create({
    name: "Backend engineer",
    model: "claude-sonnet-5",
    system:
      "You implement backend features end to end. Consult the advisor before major backend design decisions.",
    multiagent: {
      type: "multiagent_20261001",
      advisor: { type: "enabled", model: "claude-opus-5-5" }
    }
  });
  console.log(agent.id);
  ```

  ```csharp C#
  var agent = await client.Beta.Agents.Create(new()
  {
      Name = "Backend engineer",
      Model = BetaManagedAgentsModel.ClaudeSonnet5,
      System = "You implement backend features end to end. Consult the advisor before major backend design decisions.",
      Multiagent = new BetaManagedAgentsMultiagent20261001Params
      {
          Advisor = new BetaManagedAgentsMultiagentAdvisorEnabledParams { Model = "claude-opus-5-5" },
      },
  });
  Console.WriteLine(agent.ID);
  ```

  ```go Go
  agent, err := client.Beta.Agents.New(ctx, anthropic.BetaAgentNewParams{
  	Name:   "Backend engineer",
  	Model:  anthropic.BetaManagedAgentsModelConfigParams{ID: anthropic.BetaManagedAgentsModelClaudeSonnet5},
  	System: anthropic.String("You implement backend features end to end. Consult the advisor before major backend design decisions."),
  	Multiagent: anthropic.BetaManagedAgentsMultiagentParamsUnion{
  		OfMultiagent20261001: &anthropic.BetaManagedAgentsMultiagent20261001Params{
  			Advisor: anthropic.BetaManagedAgentsMultiagentAdvisorParamsUnion{
  				OfEnabled: &anthropic.BetaManagedAgentsMultiagentAdvisorEnabledParams{
  					Model: "claude-opus-5-5",
  				},
  			},
  		},
  	},
  })
  if err != nil {
  	panic(err)
  }
  fmt.Println(agent.ID)
  ```

  ```java Java
  var agent = client.beta().agents().create(
      AgentCreateParams.builder()
          .name("Backend engineer")
          .model(BetaManagedAgentsModel.CLAUDE_SONNET_5)
          .system("You implement backend features end to end. Consult the advisor before major backend design decisions.")
          .multiagent(BetaManagedAgentsMultiagent20261001Params.builder()
              .advisor(BetaManagedAgentsMultiagentAdvisorEnabledParams.builder()
                  .model("claude-opus-5-5")
                  .build())
              .build())
          .build()
  );
  IO.println(agent.id());
  ```

  ```php PHP
  $agent = $client->beta->agents->create(
      name: 'Backend engineer',
      model: 'claude-sonnet-5',
      system: 'You implement backend features end to end. Consult the advisor before major backend design decisions.',
      multiagent: [
          'type' => 'multiagent_20261001',
          'advisor' => ['type' => 'enabled', 'model' => 'claude-opus-5-5'],
      ],
  );
  echo $agent->id, PHP_EOL;
  ```

  ```ruby Ruby
  agent = client.beta.agents.create(
    name: "Backend engineer",
    model: "claude-sonnet-5",
    system_: "You implement backend features end to end. Consult the advisor before major backend design decisions.",
    multiagent: {
      type: "multiagent_20261001",
      advisor: {type: "enabled", model: "claude-opus-5-5"}
    }
  )
  puts agent.id
  ```
</CodeGroup>

この例では `advisor` (csharp, go: `Advisor`) のみを設定しています。他の2つの設定である `subagents` (csharp, go: `Subagents`) と `workflows` (csharp, go: `Workflows`) はデフォルトのままなので両方とも有効であり、エージェントはインラインエージェントへの委任やワークフロー実行の開始も行えます。アドバイザーに相談しつつすべての作業を自分で行うエージェントにするには、両方を `{"type": "disabled"}` に設定します。

アドバイザーを `subagents` (csharp, go: `Subagents`) または `workflows` (csharp, go: `Workflows`) の `predefined_agents` (java, php: `predefinedAgents`; csharp, go: `PredefinedAgents`) リストに列挙することはできません。有効な `advisor` (csharp, go: `Advisor`) は `anthropic.advisor` という名前を予約します。有効になっている間は、どちらのリストにも文字どおり `anthropic.advisor` という名前のエージェントを含めることはできず、そのリクエストは400バリデーションエラーで拒否されます。

アドバイザーモデルは最低限の能力基準を満たす必要があり、エージェント自身のモデルはアドバイザーより高い能力を持っていてはいけません。同等の能力を持つモデル同士は組み合わせることができます。無効な組み合わせは、エージェントの保存時に400バリデーションエラーで拒否され、セッションの作成時にも再度拒否されます。組み合わせは各相談の開始時にもチェックされます。もはや有効でない場合、その相談は失敗しますが、セッションは継続します。有効な組み合わせは、アドバイザーツールの[モデル互換性](https://platform.claude.com/docs/ja/agents-and-tools/tool-use/advisor-tool#model-compatibility)の表に従います。

アドバイザーは[Messages APIのサーバーツール](https://platform.claude.com/docs/ja/agents-and-tools/tool-use/advisor-tool)としても利用できます。Managed Agentsでは設定と配信の方法が異なります。`advisor` (csharp, go: `Advisor`) 設定には `max_uses`、`max_tokens`、`caching` フィールドがなく、アドバイスは `advisor_tool_result` ブロックではなくスレッドイベントを通じて届きます。

### 相談の仕組み

各相談は、プラットフォームが生成する `anthropic.advisor` という名前のスレッドとして実行され、相談が完了するとそのスレッドは自ら終了します。アドバイスは `agent.thread_message_received` イベントとしてプライマリスレッドに配信されます。相談では、予約名 `anthropic.advisor` で識別される標準のスレッドイベントが発行されます（スレッドのライフサイクルイベントではこれを `agent_name` (java, php: `agentName`; csharp, go: `AgentName`) として、アドバイスの配信では `from_agent_name` (java, php: `fromAgentName`; csharp, go: `FromAgentName`) として保持します）。通常は次の順序で発行されます：

1. `session.thread_created`
2. `session.thread_status_running`
3. `agent.thread_message_received`（アドバイス）
4. `session.thread_status_idle`（`stop_reason: end_turn`）
5. `session.thread_status_terminated`

相談の入力はエージェントが送信するのではなくプラットフォームによって構成されるため、相談に対して `agent.tool_use` イベントは発行されず、セッションのイベントストリームに `agent.thread_message_sent` イベントも現れません。アドバイザースレッド自身のイベントを一覧表示すると、アドバイスはそこにも `agent.thread_message_sent` イベントとして現れます。アドバイスの配信（イベント3）がアドバイザースレッドのアイドルイベントや終了イベントより前に届くことは保証されていないため、それらをアドバイスがすでに配信されたことのシグナルとして扱わないでください。

クライアントがアドバイスを読めるかどうかは、アドバイザーモデルのポリシーによります。これはMessages APIのアドバイザーツールにおける[結果のバリアント](https://platform.claude.com/docs/ja/agents-and-tools/tool-use/advisor-tool#result-variants)の区別を反映しています。そちらでプレーンテキストの結果を返すアドバイザーモデルは、ここでも読み取り可能なテキストを配信します。秘匿化された結果を返すモデルは、すべてのクライアント側で `[{"type": "redacted"}]` プレースホルダーを配信しますが、エージェントはサーバー側で完全なアドバイスを読み取ります。前述の例では、利用可能な最新のOpusモデルをアドバイザーとして使用しています。Claude Opus 5.5は秘匿化された結果を返すため、クライアントにはプレースホルダーのみが表示されます。イベントストリームでアドバイスを読むには、Claude Opus 4.8など、プレーンテキストを返すアドバイザーを使用してください。モデルのポリシーはAPIの変更なしに変わる可能性があるため、`text` ブロックと `redacted` ブロックの両方を処理してください。一部のエージェントモデルは、秘匿化された結果を返すアドバイザーとのみ組み合わせることができます。アドバイザーツールの[互換性の表](https://platform.claude.com/docs/ja/agents-and-tools/tool-use/advisor-tool#model-compatibility)を参照してください。アドバイザーの思考が表示されることはありません。クライアントが自ら `redacted` ブロックを送信することはできず、それを含むイベントは400バリデーションエラーで拒否されます。

失敗または中断された相談によってエージェントのターンが失敗することはありません。エージェントは、相談が失敗したという汎用的な通知の後に処理を続行します。相談中にセッションレベルの `user.interrupt` を送信すると、アドバイスが配信されないままアドバイザースレッドが終了します。アドバイザースレッドの `session_thread_id` (java: `sessionThreadId`; php: `sessionThreadID`; csharp, go: `SessionThreadID`) を指定した `user.interrupt` は、その相談のみを中止します。

### アドバイザースレッド

アドバイザーはサブエージェントではありません。エージェントの `list_agents` ツールには表示されず、サブエージェントにフォローアップメッセージを送信する `send_to_agent` でも到達できません。アドバイザーに相談できるのはセッションのプライマリスレッドのみで、サブエージェントは相談できません。

アドバイザースレッドは、25個の子スレッドの制限の対象外です。アドバイザースレッドはセッションの[スレッド一覧](https://platform.claude.com/docs/ja/managed-agents/session-threads)に表示されます。その `agent` はアドバイザー形式の `{"type": "advisor", "model": ...}` で、設定したモデルが入り、`parent_thread_id` はプライマリスレッドです。

アドバイザー側のプロンプトキャッシングは自動で行われ、設定は不要です。相談はアドバイザーモデルの料金で課金され、そのトークンはアドバイザースレッドの使用量とセッションの使用量合計に表示されます。また、アドバイザーモデルの定価で[セッション予算](https://platform.claude.com/docs/ja/managed-agents/budgets)にも計上されます。各相談ではそれまでのプライマリスレッドの会話がアドバイザーに送信されるため、長いセッションの後半での相談ほど多くの入力トークンを使用します。

### アドバイザーを削除する

アドバイザーを削除するには、`advisor` を `{"type": "disabled"}` に設定して[エージェントを更新](https://platform.claude.com/docs/ja/managed-agents/agent-setup#update-an-agent)します。すでに `multiagent_20261001` タイプを持つエージェントでは、更新で省略した設定は保存されている値を保持するため、`subagents` や `workflows` を再度送信する必要はありません。同じ理由で、`advisor` を省略した更新ではアドバイザーが保持されます。既存のエージェントの `multiagent.type` を変更する前に、[エージェントをこのタイプに移行する方法](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#move-from-the-coordinator-type)を参照してください。

## `coordinator` タイプからの移行

`multiagent_20261001` と同様に、`coordinator` タイプでは、エージェントは列挙したサブエージェントに委任したり、アドバイザーモデルに相談したりできます。`coordinator` タイプでは、エージェントはワークフロー実行を開始したり、サブエージェントを自ら定義したりすることはできません。APIは両方のタイプを受け付けます。

エージェントを `multiagent_20261001` に移行するには、そのタイプの `multiagent` ブロックで[エージェントを更新](https://platform.claude.com/docs/ja/managed-agents/agent-setup#update-an-agent)します：

1. `type` を `"multiagent_20261001"` に設定します。
2. エージェントが呼び出せるエージェントを `subagents.predefined_agents` に列挙します。エントリは現在の形式のままです。
3. エージェントにアドバイザーがある場合は、アドバイザーのモデルを指定して `advisor` を `{"type": "enabled", "model": "..."}` に設定します。
4. ブロック全体を1回の更新で送信します。

たとえば、次のブロックはエージェントに2つのサブエージェントとアドバイザーを付与します：

```json
{
  "multiagent": {
    "type": "multiagent_20261001",
    "subagents": {
      "type": "enabled",
      "predefined_agents": [
        { "type": "agent", "id": "agent_01J8XkN5uT3vHpLqRfWdY2" },
        { "type": "agent", "id": "agent_01HqR2k7vXbZ9mNpL3wYcT" }
      ]
    },
    "advisor": { "type": "enabled", "model": "claude-opus-5-5" }
  }
}
```

このブロックでは `workflows` と `subagents.inline_agents` を省略しているため、両方ともデフォルト値になり有効になります。移行したエージェントは、ワークフロー実行の開始やサブエージェントの自己定義も行えます。いずれかを無効のままにするには、同じ更新でそれを `{"type": "disabled"}` に設定します。[動的ワークフローを有効にする](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#turn-on-dynamic-workflows)および[事前定義エージェントとインラインエージェント](https://platform.claude.com/docs/ja/managed-agents/multiagent-orchestration#predefined-and-inline-agents)を参照してください。

エージェントにアドバイザーがあってサブエージェントがない場合は、委任を無効のままにするために `subagents` を `{"type": "disabled"}` に設定します。`subagents.inline_agents` を無効にし、エージェントを1つも列挙しないリクエストは400エラーで失敗します。

更新は `multiagent` ブロック全体を置き換えるため、例のようにエージェントのリストとアドバイザーを再度送信してください。省略したものはデフォルト値になります：

* **`subagents.predefined_agents`：** リストが空になるため、エージェントは列挙していたサブエージェントを失います。
* **`advisor`：** アドバイザーが無効になります。

エージェントが `multiagent_20261001` タイプになった後は、以降の更新で省略した設定は保存されている値を保持します。

更新によって、すでに存在するセッションは変更されません。新しいブロックを使用するには、更新後にセッションを作成してください。
