何かが根本的に壊れていると確信した瞬間の話をさせてほしい。
去年の12月、自分はAI SEOのパイプラインを作っていた。context/ ディレクトリには大規模な「LLM Wiki」を用意していて、構造化されたアーキテクチャ設計書や、エージェントが grep できる関数インデックスなど、必要なものは一通り揃っていた。公平に評価するなら、コンテキスト汚染が始まるまでは、実際_いい_システムだったんだ。だが、エージェントがまさにその同じセッションで更新したばかりの古い情報を呼び戻し始めた。クリーンなコンテキストで生成された新しいエージェントも、即座に同じ時代遅れのナンセンスを吐き出し始める。本来存在しないはずの矛盾をすり合わせようとして、エージェントはすでに読んだファイルを何度も読み直し、コンテキストウィンドウは通常の2倍の速さで埋まっていく。その間、自分はずっとイライラしながらエージェントに悪態をつき、返ってくるのはあのお決まりの「おっしゃる通りです!」(クソったれ、このフレーズほど嫌いな言葉はない)。
エージェントは必ずしも嘘をついていたわけではないし、一般的な意味で「間違っていた」わけでもない。私たちが作った通りにきっちり動いていただけだ。つまり、関連するコンテキストを検索してそれを使う。問題は、その「関連するコンテキスト」の中にエージェント自身がでっち上げたゴミが含まれていたこと、そしてシステム内のどこにも、観察された事実、推論された推測、完全な捏造を区別する仕組みが存在しなかったことだ。
これは日常茶飯事に起きている。私が見てきたあらゆるエージェントシステムが似たような挙動をしており、その理由を掘り下げれば掘り下げるほど、私たち全員が極めて不完全な根本的前提の上にシステムを構築していることに気づかされた。その前提とは、メモリとは検索の問題だということだ。適切なチャンクを見つけ、コンテキストウィンドウに詰め込み、あとはモデルに考えさせる。RAG、ベクトルストア、セマンティック検索……エコシステム全体が「どうやって関連情報を見つけるか?」という一つの問いを中心に回っている。だが、誰も真剣に問うていないより困難な問いは、その情報が真実なのかどうかだ。そしてそれがエージェントをダメにしている。
これが業界で「コンテキスト腐敗」と呼ばれているものだ。
そして実のところ、標準的な解決策はどれも絆創膏のようなその場しのぎに過ぎない。機能しなくなるその瞬間までは、なんとなく動いているだけだ。もちろんRAGを使うことはできるが、コサイン類似度が見つけ出すのは最も近いチャンクであって、正しいチャンクとは限らない。そして最も近いチャンクがたまたま6週間前のハルシネーションだった場合、自信満々に間違った答えを出すプロセスを自動化しただけということになる。
セッションが永続化される Mem0 や Zep のようなベクトルメモリ製品を使う手もある。素晴らしい。だがそこでのメモリは、期限切れも修正もなく永遠に蓄積されるフラットなメモに過ぎず、そこには……ニュアンスがない。エージェントが月曜日に「OAuthを使用する」と言い、火曜日に「APIキーを使用する」と言った場合、どちらの記述も永遠にメモリに残り、どちらも疑われることなく、クエリの埋め込みベクトルにたまたまどちらが近いかに応じて自信満々に検索される。たとえ時間的コンテキストのためにタイムスタンプを付けたとしても、どちらが最新かを推論するために余計なトークンを消費することになる。これらのアプローチはどれも、どのような証拠から何が結論づけられ、それが現在も有効かどうかを追跡していない。それに加えて、想起自体の品質やフィルタリングの問題もある。これがギャップであり、誰もが見落としている点だ。そして私はようやくその理由を理解できたと思う。
検索から受け継いだメンタルモデルは、エージェントには通用しない。検索はステートレスだ(私の頭が急にボケていなければLLMも同様だ):クエリを投げる -> 結果を得る -> 終了。インデックスは、ユーザーがその結果をどう使ったか、あるいは目的に対して正確だったかなど気にしない。しかしエージェントは……(ある種)ステートフルだ。時間の経過とともに推論を行い、一連の観察と推論を通じて信念(beliefs)を構築していく。その出所を追跡せず、単にすべてをベクトルストアに投げ込んでメモリと呼んでいるだけなら、今まさに目の前にあるもの——自信満々に検索するが何も理解していないシステム——が出来上がるだけだ。
研究者コミュニティもこれに気づき始めている。今年出たGoogle DeepMindの論文では「認識論的ドリフト」について言及されており、キャリブレーションされていないAIシステムが信頼性の低い情報を自信満々に提供することで、時間の経過とともに人間の判断力を実際に低下させることが論じられている。また、マルチターンの推論における「信念の逸脱」に関する研究では、エージェントの内部状態が一貫性から大きく逸脱したタイミングを検出するだけで、パフォーマンスが30ポイントも向上することが示されている。ただ保存して検索するという非公式なアプローチでは明らかにスケールしないため、複数のグループが独立して「信念の修正」のフォーマルなモデルへと収束しつつあるのだ。
面白いことに、生物学は何年も前にこの問題を解決している。海馬が特定のエピソードの高速かつスパースな符号化を行い、大脳新皮質が汎化された知識の緩やかな固定化を行う。そしてシステム全体が夜間のプロセスを実行して、「起きたこと」から「知っていること」へと昇格させるものを決定する。睡眠中の鋭波リップルや、忘却のための明示的なメカニズムがそれだ。
脳はすべてを記憶しようとするのではなく、重要なことを記憶しようとし、その違いを見分けるために特別に設計されたアーキテクチャを持っている。今の私たちにはそのアーキテクチャがない。誰もそれを作っていない。60億ドル規模のエージェントメモリ市場は、100%検索品質にフォーカスしており、信念の一貫性にはほぼ0%しか目を向けていない。
!! オタクの知識大放出アラート :3 !!
とはいえ、正しい方向への動きもいくつか出てきている。HippoRAGは、知識グラフとPageRankを用いて海馬のインデックス理論を明示的にモデル化し、生物学の知見を真剣に取り入れることでマルチホップQAにおいて20%の改善を達成している。ロボティクス分野では、新規性のある観察のみを保存するサプライズ制御のエピソード記憶に関する研究があり、これはまさに脳が行う顕著性フィルタリングそのものだ。
Zepは、エピソード層とセマンティック層を持つ時系列知識グラフを構築した。Hindsightはさらに進んで、4つの異なるメモリネットワークと競合解決ポリシーを備えているが、矛盾は保存前に解決されるのではなくタイムスタンプ付きで保持されたままであり、エージェントがなぜその発言をしたのかを正確に追跡する具体的な手法は存在しない。
これらはすべて必要なアーキテクチャに向けた一歩ではあるが、根本的には依然として検索システムだ。検索をよりスマートにしてはいるものの、信念の状態を追跡せず、書き込み時の矛盾を処理せず、監査可能な出所の連鎖を維持していない。難しいのは、見つかったものが今でも真実かどうか、そして自分が信じている他のすべてのこととどう関係しているかを知ることだ。だからこそ、私たちがそれを作っている。
だがちょっと待ってほしい、私が言っている「信念(belief)」とは一体何のことだろうか?
そう、それは必ずしも記憶(memory)そのものではない。記憶とは「彼女に既読スルーされた」ということだ。しかし信念とは、「彼女は怒っている。なぜなら既読スルーされたし、彼女は普段そんなことしないから。返信が来るまではほぼ確実にそうだ」ということだ。違いがわかるだろうか? つまり、過去の経験や関連する記憶のコンテキスト(洒落じゃないよ)の中に記憶を位置づけ、それを解釈することなのだ。
ここで問題になるのは、エージェントはこれを自然にはうまくこなせないということだ。エージェントが何を信じているかは、モデル自体の外部に存在しなければならない。永続的で、監査可能で、修正可能な信念をニューラルネットワークの重みに保存することはできない。汎化と記憶の間で共有されるパラメータあたりの容量はせいぜい約3.6ビット程度しかなく、容量が足りないのだ。また、重ね合わせによってニューロンは事実ではなく混合物をエンコードするため、解釈可能性も存在しない。
「このモデルはXについて何を信じているのか?」という問いには、構造上文字通り答えることができない。「なぜエージェントはこれを信じているのか?」と問いかけ、生成された作話ではなく、監査可能な実際の証拠チェーンという形で本物の答えを得る必要があるなら、その証拠チェーンはどこかに存在しなければならない。それは明示的で、クエリ可能で、信念が変わるものである以上、修正をサポートしていなければならないのだ。
私たちはこれを外在化された認識論と呼んでいるが、これは要するに、メモリシステム自体が「自分が何を知っているかを知る」必要があるということを気取って言ったものだ。「Engrammic」という名前は、脳内の記憶の仮説上の物理的痕跡であるエングラム(engram)に由来している。私が何度も立ち返る決定的な違いは、現在の大半のエージェントメモリがフラットであるのに対し——つまり、どの埋め込みベクトルの近くにあるか以上の構造を持たず、データベースにただ置かれたテキストに過ぎないのに対し——私たちが作っているものには……「形」があるということだ。出所と意味が、その保存方法自体に焼き込まれている。メモリはフラットだが、読者諸君、意味とは……意味とは✨ engrammic ✨なのだ。
なぜそれを信じているのかの理由を追跡し、競合が発生した際にはそれを検知し、後になってメモリの半分がもう半分と矛盾していることに気づくのではなく、保存される前に整理する必要がある。
具体的に言えば、「彼女は怒っている」がすでに存在する状態で、エージェントが「彼女から返信があった、仲直りした」と保存しようとした場合、システムは単にもう1行追記するだけでは済ませない。競合としてフラグを立て、整理することを強制する。古い信念は何に置き換わったかの明示的なリンクとともに更新されるか、新しい観察が却下されるか、あるいは人間の入力を待つために両方が保留状態に置かれる。だが、不可避的に再浮上してすべてを混乱させるような矛盾した事実が、知らないうちに蓄積されることだけは起きない。
これは、すべての信念に痕跡があることを意味する。「モデルがこれを生成した」ではなく、「これは時間A, B, Cに記録された観察X, Y, Zに由来し、その信頼度は時間とともに減衰した」となる。企業から「なぜ貴社のエージェントは顧客にこのようなことを言ったのか?」と尋ねられたとき、肩をすくめるのではなく、グラフを辿って答えることができる。そしてそれは、忘却が実際に設計すべき本物の機能であることを意味する。古い観察は減衰し、陳腐化したコンテキストはフェードアウトし、システムは保持するに値する重要性があるかを能動的に判断する。ここでの目標は、何か「完璧な」想起ではなく、関連性に対する優れた判断力だ。
これはベクトルストアを作るよりもはるかに難しいが、エージェントを実際のタスク、実際のユーザー、雑多なデータで1週間以上稼働させたときに、実際に機能する唯一の解決策でもある。
AIの次の10年は、能力ではなく信頼がテーマになると私は考えている。モデルが有能であり得ることは証明されたが、信頼できることはまだ証明されていない。そして私が見てきたあらゆる導入事例は、メモリ層がそのように設計されていないがゆえに、最終的には信頼性の面で破綻している。
マルチエージェントシステムはこれをさらに悪化させる。5つのエージェントが共有ステートに書き込むと、キャッシュコヒーレンス問題の「信念」版が発生する。agents 1 and 2 が矛盾する観察結果を書き込んだ場合、agent 3 は何を信じればいいのか? 誰も分からないし、アーキテクチャも内部的な調停をサポートしていない。
ワールドモデルもこれに拍車をかけている。LeCunのJEPAの研究が明示的に外部メモリを指定しているのには理由があり、ロボティクスのVLA論文もすべて外部検索を実装しているが、そのどれも認識論的構造を持っていない。信念の状態もなく、出所もなく、矛盾の処理もない。どこまで行っても検索でしかないのだ。
この問題は一企業で抱えるには大きすぎるため、私たちは研究をオープンに公開している。技術論文は engrammic.ai/research で公開されており、コアアーキテクチャはオープンソースだ。私たちだけで作るよりも、これが正しく構築されることのほうが重要だ。だからもし、エージェントメモリ、信念の修正、マルチエージェントの協調、あるいはこの問題領域に関連する何かに取り組んでいるなら。ぜひ。話を聞かせて。ほしい。
私たちは研究サイドでの協力者を積極的に求めている。取り組むべき領域は膨大なのに、真剣に考えている人はまだ足りない。気軽に連絡してほしいし、論文を覗いたり、リポジトリでIssueを立ててくれたりしてもいい。これは重要な課題だし、一緒に解き明かしていくほうがずっと楽しい。
私にこれを解決する資格があるかって? 正直、たぶんない。それでも挑戦するかって? もちろんだとも。誰かが作らなければならないのなら、それが自分だっていいはずだ。検索をスケールさせ続け、一貫性が自然と創発することを期待する現在の軌道は、ろくな結末を生まない。行き着く先は、流暢で、自信満々で、デバッグも監査もできず、なぜシステムが誰かに嘘を教えたのかを尋ねてくる規制当局にも説明できないような間違え方をするエージェントだ。アライメントの問題もあるが、それは別のブログ記事にとっておくことにしよう。要約すると、人間に沿った知性は、人間と同じ思考の「形」——つまり認識論的な形——を持つシステムから創発し得るということだ。
結びの言葉として、こう伝えたい。知性を信頼できるようになる前に、それは疑うことを学ばなければならない。私たちが構築しているもの、それこそが……疑念だ。
Header image via cosmos.so.