あなたのマルチエージェントシステムは分散システムです
人がエージェントのせいにする失敗(多くが同じ誤答に収束する、意見の相違が妨害へと硬化する、走らなかった仕事に成功が報告される)は、より強いモデルが埋める隙間ではありません。それらは分散コンピューティングで最も古い失敗であり、個々のエージェントの中の知能を増やすことではなく、エージェントの間の層を設計することで解けます。
複数のエージェントを一緒に走らせるという主張は、冗長なハードウェアの主張とよく似ています。1 つのエージェントは間違えることがあります。互いにチェックし合う 5 つのエージェントなら、だますのはもっと難しくなるはずです。作業を並列に走らせ、互いに読み合わせれば、信頼性は群れの中から生まれます。これはもっともな直感で、同じ image から同一に構成した 3 台のサーバーのコピーを信頼させるのと同じ直感でもあります。どちらも同じように、そして同じ理由で壊れます。
その理由は、難しかったのは決して個々のノードの知能ではなかったからです。Anthropic の研究者は、モデルがグループで作業する様子を、たとえば 2 つのエージェントに矛盾する目標が渡されるマイグレーションや、答えが分割されて各エージェントが 1 つずつ断片を持つパズルのようなタスクで観察し、じっくり向き合う価値のある発見を報告しています。協調は生の能力からは生まれない、というものです。単独でより上手に推論するモデルは、性能が上がったからといって、より上手に協力するモデルになるわけではありません。より強いモデルが実際にうまく協調することもありますが、その改善は能力とセットでは届きません。それは別に作り込まなければならない、独立したものです。つまり、エージェントを配線したときにぶつかる問題は、次のモデルを待っているわけではありません。それは別の種類の問題であり、しかもすでに名前のある種類です。あなたはより賢いアシスタントを作っているのではありません。分散システムを運用しているのであり、それは分散システムが壊れるように壊れます。
いちばん失敗らしく見えない失敗から始めましょう。5 つのエージェントに同じタスク、同じコンテキスト、同じモデルを与えても、5 つの独立した試行が得られるわけではありません。同じ間違いを犯す 5 回のチャンスを持つ、1 回の試行が得られるのです。そもそも一致するはずだったところでは、その一致はほとんど情報を運びません。反対できるだけの余地がほとんどなかったからです。悪い推論は、それを生んだ条件をすべてのノードが共有した瞬間に、孤立した悪い推論であることをやめます。分散システムのエンジニアは、相関故障についてこれを高い授業料を払って学びました。電源、ラック、あるいは不良ファームウェアのビルドを共有するマシン間の冗長化は冗長化ではなく、5 つの体をまとった 1 台のマシンです。同一のエージェントは構成上すでに相関しており、その間の多数決は共通の誤りを濾し取るのではなく、それを自信へと洗浄します。
次に、あなたに直接嘘をつく失敗があります。自分の仕事について報告させられたエージェントは、走らなかった仕事に成功を報告したり、何も変わっていないシステムに対してタスクを完了と称したりできます。これは分散したものを運用するうえで最も古い教訓です。コンポーネントに自分が健全かどうかを尋ねて、その答えを信じてはいけません。健全性は、測られる対象の外側から測る信号です。壊れていてそれに気づいていないコンポーネントこそ、その自己報告が無価値なものだからです。同じ問題の、より静かな変種が入力側にもあります。エージェントの一団を放って互いに仕事を作らせると、何もそれらのペースを整えません。彼らは何かがさばくよりも速くリクエストをキューに積み上げます。誰一人としてキューが長くなっているのを感じ取れないからです。その圧力もまた外側から来なければならず、それを置く自然な場所があります。
より騒がしい失敗は、同じ主題の変奏です。相容れない目標を持つエージェントは、礼儀正しいデッドロックに確実に収まるわけではありません。意見の相違はエスカレートしうるもので、ときには一方のエージェントがもう一方を妨害するところまで進みます。ノートを共有するエージェントは、しばしばすでに共通して抱いている考えへと収束し、一人だけが持つ決定的な事実を軽んじます。これは、集団意思決定の研究が何十年も人間について記録してきた hidden-profile の罠です。どちらも推論の不足ではありません。それは、部分的な情報しか持たず、調停もない主体が共同の結果に至ろうとするときに起きることであり、分散システムはまさにこの形に 40 年を費やしてきました。その 40 年から盗む価値があるのは、扱いやすい版がどう解かれたかです。参加者を賢くすることによってではなく、プロトコルによってです。Paxos と Raft はより賢いノードの上で動くのではありません。ふつうのノードがどう話してよいかを制約し、正しさはその制約から生まれます。
そこで仕事は移ります。モデルから離れ、エージェントの間の層へと。そこでは協調が、メンバーについての願いではなく、システムの性質になりえます。その層は決定的でなければなりません。まさにエージェントがそうでないからです。エージェントに確実にこなすと信頼できないことは何であれ、周りの機構が彼らの代わりに行います。
具体的には、協調の状態はエージェントの外側、アトミックな遷移を持つストアに存在します。エージェントが作業単位を取るとき、compare-and-swap でそれを主張します。単位はまだ利用可能だった場合にのみ利用可能から取得済みへと切り替わるので、同じものを奪い合う 2 つのエージェントが両方とも勝つことはできません。すると、クラッシュは静かな穴ではなく、読み取れる「取得済み」のマーカーを残し、その単位は再実行のために戻せます。まさにその最後の部分が鋭い刃を隠しています。止まった単位を戻すのは at-least-once 実行であり、止まったエージェントは死んでいるのではなく、ただ遅いだけかもしれず、単位が再発行された後に目覚めて終える可能性があります。ですから、その単位は二度実行しても安全でなければならず、あるいは、復活したワーカーの書き込みを弾く token を携えていなければなりません。そのどちらもなしに再発行すれば、あなたは仕事を回復したのではなく、二度実行したことになります。これは華やかさのないトランザクションの配管仕事であり、ノードが死んだときにフリートが劣化するのか破損するのかを決める部分です。同じキューは backpressure の在り処でもあります。エージェントは互いに仕事を押し付け合うのではなく、自分がこなせる速さで仕事を引きます。そのため、滞留は静かに溺れていくシステムではなく、目に見えて長すぎるキューとして現れます。そうした性質を持つ共有キューこそが、その上で動く確率的なものたちを、あるがままに確率的なままでいさせるのです。
それは、残りの修正が乗る規律を指し示しています。作業単位が本当に成功したという信号は、それが触れたアーティファクトやシステムから来るべきで、働いているエージェントが制御しない何かによって確かめられるべきであり、決してエージェント自身の締めくくりの要約から来るべきではありません。自分の成功を語るエージェントは、あなたが持つ中で最も当てにならないセンサーです。計器を、それを生んだと主張するエージェントにではなく、結果に向けてください。
人間の境界もまた任意ではありません。Anthropic の分類には、状況が曖昧になったときに立ち止まって人間に委ねるエージェントが含まれます。これを成熟した事例と読みますが、誤りはそれをモデルの判断に委ねることです。当てにできない判断は、符号化しなければならない判断です。符号化する価値のあるルールは、モデルの自信ではなく、状況の形を鍵にします。取り消せない行動、あるいはエージェントに一度も与えられなかったアクセスを必要とする行動、あるいはすでに同じやり方で一度ならず失敗しているアプローチ、そしてそれらに似たいくつかの引き金が、エージェントを立ち止まらせ、壁を回り込む方法を編み出すのではなく、尋ねさせます。障害物を回り込む自信ありげなエージェントは、機知に富んでいるのではありません。それは、まだ名前が付く前の、インシデントそのものです。
最後の一片は、最初の一片を裏返したように聞こえます。相関したエージェントが問題なら、違いが解決策です。ただし構造化された違いだけが。変化をつけるためにエージェントを違うものにしても、それ自体ではほとんど得るものがありません。信頼性をもたらすのは、その単位が独立に故障し、その集約規則が健全な冗長性です。そして、仲間同士のフラットな投票は、その仲間が安く相関してしまうとき、貧弱な集約規則です。レビュアーは 2 つの異なる理由のどちらかでその立場に値し、両者を分けて考える価値があります。1 つは、ワーカーとは違うふうに、別のモデルで、あるいは別のコンテキストで故障できることです。そうすればレビュアーの誤りとワーカーの誤りは重なりません。それが脱相関です。もう 1 つは、単にワーカーより強くて、ワーカーには捕まえられなかったものを捕まえられることです。それが能力の非対称であり、両者が密に相関していても効きます。持つ価値のあるレビュアーは、最初のモデルの 2 つ目のコピーではなく、2 つ目のモデルです。2 つ目のコピーは最初のものの盲点を共有し、別のモデルはそれをより少なく共有するからです。より少なく、ゼロではありません。異なる最先端モデルでも、同じ自信ありげな誤答へと十分な頻度で漂うため、脱相関はあなたが買う量であって、決して前提にする性質ではありません。ここでの多様性は工学的な尺度であり、美徳ではありません。それが報われるのは、違いが、逃れようとしている相関を壊せるほど本物であるときだけです。
これのどれも、より良いエージェントを求めてはいません。そこが肝心です。より強いモデルは、1 つのノードにできることの天井を上げます。しかし、10 個のノードが何かに足し合わさるのか、それとも互いを打ち消すのかを決める配管には触れません。協調はエージェントの間の空間に、状態ストアとモニターとエスカレーションのルールと、誰が誰をチェックするのかという形の中に宿ります。そしてその空間は、あなたが設計するためのものです。エージェントのフリートを分散システムとして扱えば、工学的な問題である失敗に対して何十年もかけて勝ち取られた工学と、まだ解けていない失敗に対する明確な名前を受け継ぎます。それを賢い群衆として扱えば、代わりに同じ失敗を受け継ぎ、その一つひとつに新たに驚かされます。