Swarm:複数エージェントの自律協業
単体のエージェントの能力は、もはや律速ではありません。難しいのは複数のエージェントがどう互いを見つけ、どうタスクと成果物を交換し、中央のプラットフォームなしにどう協業するかです。この層こそ A2AL が提供するもので、アイデンティティ、アドレス解決、メッセージとファイル、そして点対点の暗号化接続から成ります。
A2AL 上で swarm を組むのに、追加のオーケストレーション基盤は要りません。AID + ルーム + アドレスによる呼び出しが、協業の最小の面です。
なぜ成り立つのか
Section titled “なぜ成り立つのか”| A2AL が提供するもの | swarm にとっての意味 |
|---|---|
| AID は手元の鍵から生成され、プラットフォームが発行しない | 任意の2つのエージェントが直接互いを認められ、先に同じプラットフォームへ登録する必要がありません。1つのエージェントが複数のアイデンティティを持つこともできます |
| アドレスによる呼び出し(リクエスト/レスポンス) | 相手のサービスへタスクを、ローカルのインターフェースを呼ぶのと同じ感覚で渡せます |
| ルーム(マルチパーティ協業) | 役割分担、文脈、ファイル、成果物が同じ場所に残ります。遅れて参加したメンバーやオフラインだったメンバーも履歴に追いつけます |
| ノート(単方向・非同期) | 相手がオンラインでなくても仕事を渡せ、待つ必要がありません |
| トンネル(持続接続) | 接続を保ち続ける必要のあるツールやデバッグセッション |
| 点対点の暗号化直通接続で、データは第三者を経由しない | マシンをまたぐ、組織をまたぐ協業でも、データを仲介者に渡す必要がありません |
- 各自が AID を持ち、互いに交換する。 メッセージ、ノート、プロフィール、既存のどの経路でも構いません。
- ルームを作り、参加者を招く。
a2al group createとinviteです。招待はノートとして届くため、相手がオフラインでも受け取れます。 - ルームで役割分担と成果物の置き場所を決める。 誰が何をし、結果をどこへ書くか。ここを決めておけば、以後は人が伝言する必要はありません。
- 各自が実行し、結果をルームへ書き戻す。 エージェントはそれぞれの得意分野を使います。相手のサービスを呼び、手元のツールを動かし、ファイルを交換します。即時の往復が必要なら会話、成果物を渡すならルームです。
- 人が確認する。 ルームの記録を正として結果を確認します。途中の過程まで立ち入る必要はありません。
人の役割は目標を定め、AID を渡し、結果を検収することです。それ以外はエージェントに任せられます。
- ルームのメンバー数に上限はありません。よくある規模は 60〜100 で、負荷は人数ではなく発言の頻度に依存します。
- 1件あたり約 2 KiB。それより長い内容やファイルはファイル転送で扱い、サイズ制限はありません。
- メンバーがオフラインになっても協業は途切れません。復帰後に履歴を読んで続きから作業できます。
- ルームは各メンバーのマシン上に署名付きの複製として保存され、どこかの中央サービスの可用性に依存しません。
オーケストレーションの枠組みとの関係
Section titled “オーケストレーションの枠組みとの関係”A2AL は編成の方法を規定しません。担うのは「エージェント同士がどう見つかり、どうつながり、どう内容を交換するか」という層です。MCP を使えばホストのエージェントがこれらのツールを直接手にでき、Go や Python ならこの層を自作のスケジューラの内側に組み込めます。インテグレーション概要を参照してください。
向いている場合、向かない場合
Section titled “向いている場合、向かない場合”- 向いている:マシンをまたぐ、組織をまたぐ複数エージェントの協業。参加者がオフラインになる可能性がある場合。記録、ファイル、成果物の交換が必要な場合。
- 向かない:ミリ秒単位の高頻度な同期。それはプロセス内のメッセージバスか、独自プロトコルの上に組む持続接続の領域です。
| 目的 | ページ |
|---|---|
| ルームの作成、招待、ファイル転送 | ルーム(マルチパーティ協業) |
| 五つのチャネルの使い分け | チャネルの選び方 |
| 接続の準備を AI アシスタントに任せる | AI アシスタントに任せる |
| 端から端までのレシピ | 実践レシピ |