インテリジェントルーティング: AI エージェントがどう会話するか
ルーティングはマルチエージェントシステムの見えない基盤です。MadoHub がエージェント間通信を、明示的で、検査可能で、設定可能なものにする方法を紹介します。
どのマルチエージェントシステムでも、エージェント自体に注目が集まりがちです。しかし、どこに何を送るかを決める routing 層こそが、そのシステムが機能するか、あるいは意味不明なノイズに崩れるかを決めます。
ルーティングとは何か
ルーティングとは、エージェントの出力を正しい宛先へ、正しい形式で、正しいタイミングで届けることです。単純に聞こえますが、この 3 つの次元それぞれが実際の複雑さを持っています。
- 正しい宛先: 出力は 1 つのエージェントに送るのか、複数に送るのか。内容に依存するのか。
- 正しい形式: そのまま渡すのか、要約するのか、変換するのか。
- 正しいタイミング: 下流エージェントはすぐ始めるのか、複数入力を待つのか、更新をポーリングするのか。
トリガー: ルートが発火するタイミング
MadoHub のすべての接続には trigger が付いています——出力が下流に届けられるタイミングを決める条件です。4 種類あります。
- on-complete: 上流エージェントが現在のタスクを終えたときに発火
- on-idle: 上流エージェントが明確な完了シグナルなしに静かになったときに発火
- on-keyword: タイルの出力を監視し、指定したキーワードが現れたときに発火
- always: 状態に関係なく継続的に配信する。稼働中のプロセスを覗き見たいときに便利
知っておく価値のある点が一つあります。on-complete と on-idle は実は速度が異なる 2 つの仕組みではありません。内部的にはまったく同じように扱われ、どちらも同じアイドルタイマーを開始し、シグナル後およそ 8 秒の静寂を待ってから配信します。どちらも即座には発火しません。
Transform ノード
ときには、あるエージェントの生出力が、次のエージェントにとって適切な入力ではないことがあります。code generator は説明コメント付きのファイル全体を生成するかもしれませんが、test writer に必要なのは関数シグネチャだけかもしれません。
Transform ノードは接続上にあり、通過中のデータを作り直します。各接続は次の 5 種類の transform タイプのいずれか 1 つを持ちます。
- raw: 出力の直近 10 行をそのまま
- summary: AI が生成した出力の要約
- full-output: 出力の直近 30 行。より多くのコンテキストが必要なときに
- prompt-wrap:
{output}、{round}、{maxRounds}、{source}のような変数を使えるテンプレートに出力を包む - ai-routing: 下流エージェント専用に作られた、AI 生成のコンテキスト認識プロンプト(API key が必要)
暴走するループを防ぐ
2 つのエージェントを互いに接続すれば、それはループになります。レビューして修正するワークフローはループによって成り立っていますが、無制限のループはコンテキストウィンドウや予算を数分で使い果たす原因にもなります。
MadoHub はすべてのルートにループ保護を備えています。最大ラウンド数(デフォルト 5、1〜20 で設定可能)、配信間のクールダウン(デフォルト 3 秒、最大 30 秒まで設定可能)、そして任意の stop keyword——大文字小文字を区別しない部分文字列を指定すると、それがエージェントの出力に現れた瞬間にループが終了します。
もう一種類のセーフティネットとして Peer-Veto があります。これは投票システムではなく、配信ゲートです。エージェント同士に合意を求めるものではありません。対象のタイルが存在しないか、そのプロセスがすでに終了している場合に配信をブロックするだけで、ルートが受け取れないタイルへ黙って投稿することを防ぎます。
routing 層を観察する
多くの agent orchestration システムの最大の問題は、不透明さです。何かおかしくなっても、原因がエージェントなのか、プロンプトなのか、routing なのか分かりません。
MadoHub は、すべての routing 判断をログに残します。どの接続でもクリックすれば、送られた内容、送信時刻、どの trigger が発火したか、どの transform が適用されたかの完全な履歴を見られます。これにより、マルチエージェントワークフローのデバッグは、ネットワークトレースを読むのと同じくらい明快になります。
Routing は基盤です。派手ではありません。しかし、これを正しく作るかどうかが、デモで終わるか、信頼できるシステムになるかの分かれ目です。