Skip to content

第7章:安定性OS ― エージェントが壊れない構造

— エージェントは"壊れるのが普通"ではない。壊れる理由はすべて構造にある。

AIエージェントが壊れるとき、原因はモデルの能力不足ではない。

99%は 設計思想の欠陥 である。

  • 文脈が汚染される
  • 時間軸が混ざる
  • 実行と判断が同じ場所にある
  • "創発"に自律と実行を背負わせる
  • 推論プロセスがループを生む
  • 同じ質問でも回答が揺れる

これらはすべて 構造欠陥 だ。

逆に言えば、構造さえ整えれば、エージェントは 簡単に安定 する。


7.1 エージェントが壊れる典型的な経路

あなたが何度も観測してきた"事故"は、すべてこの一本線に収束する:

文脈の混乱

判断の混乱

タスク選択の混乱

実行の混乱

エラーを誤解

誤解をもとに再計画

ループ/暴走/破綻

つまり:

"壊れる"のではない。"壊れる構造で作った"だけである。


7.2 安定性OSの3本柱

エージェントの安定性は、次の3つだけで決まる。

① 文脈の分離(Context Isolation)

エージェントは役割(ロール)が混ざった瞬間に迷い始める。

  • いまは設計者?
  • いまは実装者?
  • いまは調査員?
  • いまは実行者?

これらが混ざると、AIは人間では絶対に起こらない誤解を起こし始める。

文脈汚染が起きる理由

LLMは「最後に読んだ文」で世界を決めるので、

  • 役割
  • 判断基準
  • 目的
  • タスクの可否

が混ざると 一瞬で「別の人格」になる。

対策:Role Memoryによる"人格の固定"

  • 役割を一つだけアクティブにする
  • 別の役割を使うときは明示的に切り替える
  • 役割ごとに"判断基準"を固定

② 実行の外部化(Execution Offloading)

AI内部で実行させると破綻する。

  • ファイルの生成
  • コード実行
  • API呼び出し
  • DB更新
  • プロセス制御
  • スケジューラ操作

これらをAIが"自分でやる"と、誤解 → 実行 → 事故 が必ず起きる。

なぜか?

LLMは「世界の状態」を理解できないから。

  • ファイルが本当に存在するか?
  • APIが成功したか?
  • DBに反映されたか?

記号と自然言語しか扱えないので、現実世界の状態は"想像"になる。

→ 事故の温床

対策:Task Interface を外に置く

実行はすべて:

  • MCP
  • サブエージェント(ワーカー)
  • 外部API
  • Cloud Functions
  • AgentEngineのタスクリクエスト
  • LangGraphのNode Execution

など、外部エンジンに担当させる。

AIがやることは "どのタスクを呼ぶか"だけ。


③ 時間の固定化(Temporal Stabilization)

第6章で述べた「レポート化」は、この"時間の安定化"の中心になる。

エージェントが壊れる最大原因は:

毎回ゼロから考え直すこと。

  • コストが揺れる
  • レイテンシが揺れる
  • 回答が揺れる
  • 推論量が積み上がり、文脈が吹っ飛ぶ

対策:推論を過去に押し込める

  • 分析はバッチ
  • 状態はメモリ
  • 設計判断はRole Memory
  • フォーマットはReports
  • ルールはCore Memory

「未来」を安定させる唯一の方法は、過去にすべてを押し込めることだ。


7.3 3層を揃えるとAIは壊れなくなる

3層を並べてみると、すべての事故は説明がつく。

事故の種類原因対策
ループ文脈汚染+実行が内部Role Memory+外部化
暴走役割混在文脈の固定
間違い続ける推論が毎回ゼロレポート化
状態を誤解する内部実行タスク外部化
実行できない判断と実行の混在Task Interfaceの分離
再現性なし推論が揺れる時間軸の固定
バグ修正できない状態不可視外部実行ログ化

この表を見ると分かる通り:

エージェント事故は100%構造で防げる。


7.4 安定性OSの実装ガイド(具体編)

実務でやるべきことをまとめる。

1. Role Memory を定義する

エージェントごとに

yaml
role:
  - architect
    rules: [...]
  - analyst
    rules: [...]

のように定義する。

2. タスクは必ず外部化する

LLMには「API仕様」を渡すだけ。

task:
  generate_video(...)
  send_email(...)
  run_sql(...)

実行はすべてMCPなどの外部。

3. 状態は"自然言語"で扱わない

  • ファイルの存在
  • ステータス
  • DB値

は自然言語ではなく 構造化データ で返す。

json
{
  "status": "success",
  "path": "/tmp/video.mp4"
}

4. 推論を過去に移す(レポート化)

  • 分析
  • 線形計算
  • 分類
  • 重要語抽出

はすべてバッチで先にやる。

5. LLMは「読む→判断→タスク選択」だけを行う

これだけで、安定は9割決まる。


7.5 この章のまとめ

  • エージェントが壊れる原因は"構造"にある
  • 文脈・実行・時間の混在がすべての事故の源
  • 文脈は Role Memory で固定する
  • 実行は外部に出す(AIは考えるだけ)
  • 推論は未来ではなく過去に押し込め
  • 3層を揃えれば、エージェントは壊れない

次章:エージェントOSの統合

Role / Memory / Task / Reportsを一つの「OS」として設計する


Last Updated: 2025-12-07

Code: MIT / Content: CC BY-SA 4.0