あなたはマルチエージェントシステムをデプロイします。10人のエージェント、1人のオーケストレータ、すべてが機能します。応答時間は許容範囲で、失敗は回復可能で、デモは印象的です。100人のエージェントまでスケールします。レイテンシがじわじわと増えていきます。1,000人のエージェントまでスケールします。オーケストレータが壁になります。
コードに誤りはありません。問題はアーキテクチャです。
これが協調の天井です――そしてそれは構造的なものです。なぜそれが存在するのか、そしてアウトカム・ルーティングがそれをどう溶かすのかを理解することが、スケールするAIシステムを作ることと、「スケールしているように見える」ものを作ることの違いです。後者は、スケールしなくなるまでそれが続くだけです。
数学
中央集権的にオーケストレートされるマルチエージェントシステムでは、すべてのエージェントがハブへの接続を維持します。ハブはステータスを受け取り、指示をディスパッチし、結果を集約します。エージェントがN人になると、ハブはN個の同時接続を処理します。
ハブでのレイテンシは線形に増大します。N=10では良性、N=100ではつらく、N=1,000では致命的です。
しかしレイテンシは最初の問題にすぎません。より重大なのは合成(シンセシス)の帯域です。エージェントがタスクを完了し、その結果を他のエージェントに知らせる必要があるたびに、その情報はハブを通過して移動しなければなりません。ハブは調整(コーディネーション)作業と合成作業、そして状態管理を同時に行っています。
協調タスク実行におけるAutoGenのベンチマークでは、標準的な8コアのインスタンスで、約200人の同時エージェント時点でオーケストレータのCPU利用率が80%を超えます。その時点で、あなたはAIシステムをスケールしているのではありません。ボトルネックをスケールしているのです。
より深い問題はこうです。中央のオーケストレータには、エージェントが互いから学ぶ仕組みがありません。エージェント47が難しい検索(リトリーバル)の問題を解きます。6秒後、エージェント891が同一の問題を抱えます。ハブにはそのアウトカムをルーティングする方法がありません。エージェント891は最初からやり直します。1,000人のエージェントでは、この冗長性は単なる例外ではありません――デフォルトの挙動です。
アウトカム・ルーティングが変えるもの
Christopher Thomas Trevethanによって発見され、39の仮特許で保護されているQuadratic Intelligence Swarm(QIS)は、別のアーキテクチャ上の基本要素――アウトカム・パケット――を導入します。
エージェントが意思決定の1サイクルを完了したとき、それは結果を中央のハブに押し込みません。意思決定の文脈、確信(confidence)のシグナル、そして学習した調整を、コンパクトなアウトカム・パケットに蒸留します――およそ512バイトです。そのパケットはハブではなく、意味的に類似した問題シグネチャを持つ他のエージェントへルーティングされます。
受信側のエージェントは、そのアウトカムをローカルに吸収します。中央集権的に集約はしません。それを自分自身の文脈と統合し、意思決定のサイクルを続行します。パス上にハブが存在しないままループが閉じます。
重要なのはこのアーキテクチャです。ルーティングプロトコルでも、パケット形式でも、単独のコンポーネントでもありません。ブレイクスルーは完全なループです。すなわち、エージェントがアウトカムを出し、アウトカムが意味的に近いピアへルーティングされ、ピアがローカルに合成し、ループが続く――このサイクルによって、単一の地点に溜め込むことなく、集団としての知能が蓄積できます。
N(N-1)/2 合成パス
中央のオーケストレーションは、アウトカムをハブ経由でルーティングします。有効な合成パスはNに比例してスケールします。
直接のピア合成は、スケールの仕方が異なります。N人のエージェント間に存在し得る合成パスの数はN(N-1)/2です。
- 10人のエージェント:ピア合成パスは45 vs ハブパスは10
- 100人のエージェント:4,950 vs 100
- 1,000人のエージェント:499,500 vs 1,000
- 10,000人のエージェント:49,995,000 vs 10,000
1,000人のエージェントでは、ピア合成がハブ経由の合成より499倍多く学習チャネルを開きます。これは限界的な改善ではありません――別のレジームです。システムは、スケールするにつれて賢くなる速度が落ちるのではなく、速くなっていきます。
ルーティングのオーバーヘッドは、DHTベースのルーティングでは最大でもO(log N)でスケールし、意味的類似性インデックスが事前計算されていればO(1)を達成できます。QISはプロトコルに依存しません。アウトカム・パケットは、インフラがすでに提供している任意のトランスポート上でルーティングされます――Redisのpub/sub、Postgresのベクターインデックス、Kafkaのトピック、または任意のメッセージキューです。
任意のマルチエージェントスタックにアウトカム・ルーティングを追加する
QISはLangGraph、AutoGen、CrewAIを置き換えません。これらのフレームワークが欠けている層を追加します。つまり、共通のタスクを調整するだけでなく、ネットワーク全体にわたってエージェントが互いから学習するための層です。
以下は、どんな既存のマルチエージェント・アプリにもそのまま差し込める最小限のAgentOutcomeRouterクラスです:
import hashlib
from dataclasses import dataclass, field
from typing import Optional
@dataclass
class OutcomePacket:
agent_id: str
problem_signature: str # タスク文脈の意味ハッシュ
decision_summary: str # コンパクトなアウトカム記述子(<512バイト)
confidence: float # 0.0-1.0
adjustments: dict = field(default_factory=dict)
class AgentOutcomeRouter:
def __init__(self):
self._index: dict[str, list[OutcomePacket]] = {}
def _sig(self, context: str) -> str:
return hashlib.sha256(context.encode()).hexdigest()[:16]def emit(self, agent_id: str, context: str, summary: str,
confidence: float, adjustments: Optional[dict] = None) -> OutcomePacket:
sig = self._sig(context)
packet = OutcomePacket(agent_id, sig, summary, confidence, adjustments or {})
self._index.setdefault(sig, []).append(packet)
return packet
def synthesize(self, context: str, top_k: int = 5) -> dict:
sig = self._sig(context)
peers = sorted(
self._index.get(sig, []),
key=lambda p: p.confidence, reverse=True
)[:top_k]
if not peers:
return {}
avg_conf = sum(p.confidence for p in peers) / len(peers)
merged = {}
for p in peers:
merged.update(p.adjustments)
return {"peer_confidence": avg_conf, "synthesis": merged}
共有する AgentOutcomeRouter インスタンスを、既存のエージェントのループにそのまま投入してください。各意思決定サイクルの後に router.emit() を呼びます。新しい意思決定の直前には router.synthesize() を呼びます。これにより、エージェントはオーケストレーション層に触れることなく互いから学習するようになります。
このプロセス内(in-process)の実装では、ルーティングのバックエンドに辞書(dict)を使用します。プロダクション環境では、いかなるトランスポートでもルーティングできます。アウトカムパケットのフォーマットはトランスポート非依存です。
Central Orchestrator vs QIS Outcome Routing
| 次元 | 中央オーケストレータ | QIS アウトカムルーティング |
|---|---|---|
| トポロジ | スター(ハブ・アンド・スポーク) | 分散メッシュ |
| 遅延の増加 | 線形 O(N) | 最大 O(log N)、多くの場合 O(1) |
| 単一障害点 | ハブ—システム全体 | 学習パスにハブなし |
| N=1,000 における合成パス | 1,000 | 499,500 |
| 計算スケーリング | ハブCPUがボトルネック化 | 負荷がエージェントに分散 |
| フレームワーク互換性 | ネイティブ | 追加のレイヤー(置き換えなし) |
| タスク間の学習 | なし | セマンティックなピア・ルーティングによりネイティブ |
欠けていたレイヤー
LangGraph はステートフルなエージェントグラフを提供します。AutoGen は会話可能なエージェントを提供します。CrewAI は役割ベースのタスククルーを提供します。これらはいずれも調整(コーディネーション)を解決します。しかし、スケールが増すにつれてネットワーク全体での集合学習(collective learning)を解決するものはありません。
効率的な取得(retrieval)パスを発見する LangGraph ワークフロー内のエージェントには、その発見を同様の問題を解いている他のエージェントへ伝播させる仕組みがありません。共有メモリストア、カスタムコールバック、中央集約型の知識ベースなど、専用の解決策を組み立てることはできます。しかし、それらの解決策は再びハブを導入します。ボトルネックを解消したのではなく、場所を移しただけです。
QIS のアウトカムルーティングは、このループをアーキテクチャレベルで閉じます。エージェントはコンパクトなアウトカムを発します。アウトカムはセマンティックなピアへルーティングされます。ピアはローカルで合成(synthesize)します。ループは続きます。クリティカルパスにハブはありません。合成パスは N ではなく N(N-1)/2 のオーダーで成長します。
QIS における3つの選挙(elections)—最良の専門家が類似性を定義するための創発的な力、集計された数学によって何が機能するかをアウトカムが選ぶ仕組み、そしてユーザー移行によってネットワークが競争すること—これらは別々に構築するための個別メカニズムではなく、アーキテクチャの性質です。ブレークスルーはループが完全に閉じていることです。アーキテクチャから単一のコンポーネントを抽出しても、その性質は継承されません。
10 エージェントでは、中央オーケストレーションとアウトカムルーティングの違いはわずかです。1,000 エージェントでは、学習するシステムと調整するだけのシステムの違いになります。10,000 エージェントでは、それが機能するシステムと機能しないシステムの違いです。
協調の天井は本物です。それは構造的なものです。そして、構造的な解決策があります。
二次知能スウォーム(Quadratic Intelligence Swarm, QIS)は、2025年6月16日にクリストファー・トーマス・トレヴェザンによって発見されました。39件の暫定特許を出願。完全な技術仕様:QISプロトコル仕様。最小実装:60行のPythonによるQIS。




