LLMベースのAIエージェントを実際に作ってみると、
ある時点からいつも似たような壁にぶつかるようになります。
- 明らかにモデルは賢くなっているのに
- 実行は相変わらず不安定で
- なぜそう動いたのかは説明できず
- 同じ入力でも結果が変わります
そこで普通は、こう結論づけます。
「まだモデルが足りないんだ。もっと大きなモデルを使ってみよう。」
しかし実際に何度も試行錯誤して感じたのは、
問題の核心はモデルの知能ではなく、
エージェントが動作する「世界(World)」が設計されていないことでした。
問題の本質: 世界がモデルの頭の中にしかない
多くのエージェントアーキテクチャでは、
状態、ルール、行動可能性のようなものが
すべて暗黙的にモデルの推論の中に入っています。
つまり、
- 何が可能なのか
- なぜある行動が失敗したのか
- 状態がいつ変わったのか
これらすべてをモデルが「記憶して推論してくれる」ことに期待しています。
この構造では、
どれだけモデルが良くなっても、
デバッグ、再現性、説明可能性を確保するのは困難です。
視点の転換: World-Centric Architecture
そこでこの記事では視点を反転させ、
モデル中心(Intelligence-Centric) ではなく
世界中心(World-Centric) でエージェントを設計する方法を提案します。
核心となるアイデアはシンプルです。
- 世界はモデルの外に明示的に存在していなければならず
- 状態はSnapshotとして固定され
- 状態変更はPatch/Applyというただ一つの経路でのみ起こり
- 「この行動は可能か?」は構造的に計算されるべきです
そして最も重要な原則は、この一文です。
> 知能は実行せず、提案だけを行うべきだ
モデルは「何をしてみたいか」を提案することはできますが、
実際に状態を変える権限は持ちません。
なぜこれが重要なのか?
この構造では、興味深いことが起こります。
- 不可能な行動はそもそも実行段階に到達できず
- 失敗は「モデルが愚かだから」ではなく構造的な理由で説明され
- たとえ行動選択がランダムでもシステムは壊れません
なぜなら、
整合性(correctness)はモデルの推論ではなく、
世界のルールと状態モデルが保証するからです。
これは研究用デモよりも、
「運用可能なシステム」に近いアプローチだと思います。
この記事は何ではないか
- 新しいエージェントフレームワークのチュートリアル ❌
- モデル性能の比較記事 ❌
- プロンプトエンジニアリングの話 ❌
その代わり、
> 「私たちはなぜAIエージェントをこんなにも不安定に作っているのか?」
という問いを投げかけたかったのです。
このアプローチが、
既存のステートマシン、ワークフローエンジン、DSL、あるいはPLの観点から
どう見えるのかも気になります。
「結局これは何に還元されるのか?」
という観点からの意見や批判も歓迎します.
まだコメントはありません。