2026-08-27 発行(読了 6 分)
実プロダクトのアーキテクチャ・使用例から AI 開発の現在地を週 3 回・1 号 1 テーマで深掘り
Anthropic は自社のリサーチ機能を並列サブエージェントで作り、性能が大きく上がったと公表した。一方コーディングエージェントを作る Cognition は同じ時期に「マルチエージェントを作るな」という真逆に見える主張をブログに掲げた。両者を並べると矛盾ではなく、分割していい境界線がどこにあるかについて同じ基準を別の場所に適用しているだけだと分かる。今号ではその基準と、それを実装に落とし込む2つのやり方を見る。
Anthropic の公式ガイドは、マルチエージェント化が効くケースを「コンテキスト保護」「並列化」「専門化」の3つに整理する。コンテキスト保護とは、あるタスクの探索ノイズが次のタスクの推論を汚染するのを防ぐこと。並列化とは、独立した調査経路を同時に走らせて網羅性を上げること。専門化とは、ツールが15〜20個を超えると単一エージェントでは選択ミスが増えるため、担当を分けること。逆に同ガイドは「テレフォンゲーム問題」を名指しし、計画→実装→テストのようなワークフローの工程で分割すると、前工程の判断が引き継がれず品質が落ちると警告する。
この基準の下で最も安定するのが検証専用サブエージェントだ。検証は他の作業の結果を受け取って合否を返すだけで、他エージェントの途中経過を知る必要がない——つまりコンテキストが構造的に独立している。逆に「早すぎる合格判定」を防ぐため、テストスイート全体の実行のような明示的な完了条件を与える必要があるとも指摘されている。
コーディングエージェント Devin を作る Cognition は「共有すべきは個別メッセージではなく、エージェントの全トレース」「アクションは暗黙の決定を伴い、決定が食い違えば結果も食い違う」という2原則を掲げる。実例として、2体のサブエージェントに同じ Flappy Bird 実装を並列に任せたところ、一方が『スーパーマリオ風』のグラフィックを、もう一方が非互換の鳥アセットを作ってしまった、という具体的な失敗を報告している。どちらも指示は誤読していないが、互いの暗黙の設計判断が見えなかったために結果が矛盾した。
この失敗はコーディング特有だ。前の判断(変数名、データ構造、UIのトーン)が後続のコードの前提になり続けるため、コンテキストを割った瞬間に暗黙の合意が失われる。そのため Cognition は並列コーディングを避け、単一スレッド設計をデフォルトにし、長時間タスクでは会話履歴を圧縮するレイヤーを挟むことで文脈を保つ方針を取る。
LangChain の Deep Agents は、task() というビルトイン関数でサブエージェントをコードから動的に生成する仕組みを導入した。エージェント自身が軽量なインタプリタ上で実行されるコードを書き、ループ・分岐・Promise.all のような制御フローをターンごとのモデル判断ではなく確定的なコード実行として走らせる。公式には「分類して実行」「ファンアウトして統合」「敵対的検証」「生成してフィルタ」「トーナメント」「ドライになるまでループ」の6パターンが定義されている。
これは「マルチエージェントを使うべきか」という問いを、「この6パターンのどれに当てはまるか」という問いに置き換えるインフラだ。特に敵対的検証パターンは、Anthropic が指摘する『検証専用サブエージェントが最も安定する』という知見と一致しており、異なる企業が独立に同じ設計に収束していることを裏付ける。