> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cowagent.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# agent_delegate - 委譲

> セッション内の別の Agent にタスクを渡し、その返答を待つ

`agent_delegate` は、ある Agent がセッション内の別の Agent にタスクを渡して処理させる機能です。委譲先は常駐の正式なメンバーで、自分のワークスペース・メモリ・Skill・セッションを持ち、自分の環境で回答します。結果は呼び出し元に返り、ユーザーに直接送られることはありません。

これは [Agent チーム](/ja/multi-agent/team)協調の基盤となる機能です。チームの編成方法や、グループチャットでリード Agent がどのように委譲を判断するかは、チームのドキュメントを参照してください。

<Note>
  `agent_delegate` はチームセッション、つまりセッション内に有効な Agent が 2 つ以上ある場合にのみ現れます。単一 Agent のデプロイでは表示されません。
</Note>

## サブ Agent との違い

|          | [サブ Agent](/ja/multi-agent/subagent) | 委譲                     |
| -------- | ------------------------------------ | ---------------------- |
| ライフサイクル  | 1 つのタスクのために作成し、使い終わったら破棄             | 常駐 Agent、事前に設定         |
| ワークスペース  | 呼び出し元と共有                             | 独立                     |
| メモリ      | 自分のものを持たない                           | 独立                     |
| アイデンティティ | 匿名                                   | Agent 一覧に表示、チャネルに紐づけ可能 |

自分の作業を並行化したい場合はサブ Agent を使います。タスクが本来別の Agent、つまりそのコードベース・ナレッジベース・顧客関係を持つ Agent に帰属する場合にのみ、委譲を使います。

## 同期実行

委譲はタスクを引き渡し、相手の回答を待ってから返答を返します。呼び出しは相手が完了するか時間予算が尽きるまでブロックするため、ポーリングすべき状態も、追跡すべきハンドルもありません。

```
agent_delegate(agent_id="research", task="...")
  -> { status: "done", content: "..." }
```

内部的には、この実行は委譲元の run を親として委譲先のワークスペースに記録されるため、委譲チェーンは両端からたどれます。

## 委譲できる対象

委譲できるのは、現在のセッションのメンバーです。委譲は常にそのセッション内に限定され、たとえ許可リストが許していても、セッション外の Agent にタスクを渡すことはありません。指定先がセッションのメンバーでない場合、ツールは呼び出しを拒否し、実際に委譲可能な対象を一覧で示します。

## パラメータ

| パラメータ      | 説明                               |
| ---------- | -------------------------------- |
| `agent_id` | セッションメンバーの ID                    |
| `task`     | 相手が本セッションを見なくても行動できる、自己完結したタスク説明 |

## 境界

委譲は完全な Agent どうしのあいだで行われるため、境界が設けられています：

| 境界    | 説明                               |
| ----- | -------------------------------- |
| メンバー  | 対象は現在のセッションのメンバーでなければならない        |
| 許可リスト | 誰が誰に委譲できるか。未設定なら任意の Agent 間で委譲可能 |
| ループ   | すでにチェーンに含まれる Agent には再度委譲できない    |
| 深さ    | 1 つのチェーンで許容される最大ホップ数             |
| 長さ    | 単一タスクのテキストの上限                    |
| 時間予算  | 1 回の委譲実行が動作できる最長時間。超過すると中止       |

## 設定

```json theme={null}
{
  "agent_delegation": {
    "enabled": true,
    "allowed_targets": {
      "assistant": ["research", "support"],
      "research": []
    },
    "max_depth": 3,
    "timeout_seconds": 600,
    "max_message_chars": 8000
  }
}
```

| フィールド               | デフォルト  | 意味                                                                                                     |
| ------------------- | ------ | ------------------------------------------------------------------------------------------------------ |
| `enabled`           | `true` | `false`、またはブロック全体を `false` にすると、このツールをまったく提供しない                                                        |
| `allowed_targets`   | 未設定    | 委譲元の Agent ID から、その Agent がアクセスできる ID へのマッピング。`"*"` は任意を表す。未設定ならすべての組み合わせを許可。対象はさらに現在のセッションのメンバーに限定される |
| `max_depth`         | `3`    | チェーンの委譲ホップ数（1-8）                                                                                       |
| `timeout_seconds`   | `600`  | 単一の委譲実行の時間予算（0.01-600）                                                                                 |
| `max_message_chars` | `8000` | 単一の委譲タスクの長さの上限                                                                                         |

上記の `"research"` のように空配列に設定した Agent は、委譲を受けられますが、さらに外部へ委譲することはできません。
