Skip to content

第5章:タスクOS ― MCPで"実行"を思考から追放する

— LLMは「判断する存在」であり、「実行する存在」ではない。

エージェントが破綻するパターンの8割はこうだ:

AIが自分で考え、自分で実行し、自分で修正しようとする

つまり "思考" と "実行" を分離していない。

これを構造から禁止するのが、タスクOS(Layer4)の役割である。


5.1 なぜ"実行"をAIにやらせてはいけないのか?

理由は3つある。

① AIは「実行の前提条件」を評価できないから

LLMは世界の状態を観測できない。

  • APIレスポンス
  • ファイルの存在
  • 入力の欠損
  • 状態遷移の未完了

こうした"現実の状態"を推測で補完しようとして暴走する。


② AIは「自分の誤解」に気づけないから

LLMの最大の弱点:

自分の誤解を誤解だと判断する"メタ認知"がない

だから一度間違うと:

誤解 → 間違った次のステップ → 誤解の補正 → さらに悪化 → ループ

Predict → Error → Self-fix のループが暴走。


③ 実行は例外処理だらけで、AIが扱えないから

実行は "予期しない入力"が常に発生する世界

  • APIが落ちた
  • 引数が足りない
  • レイテンシが異常
  • ファイルが壊れている
  • 一つ前のタスクが未完了
  • ネットワーク障害発生

例外処理はパターン化できない。

これをLLMに任せるのは 構造的に不可能


5.2 タスクは「LLMではなくOSが扱う」もの

エージェントOSの中心思想は:

AIは考えるだけ。実行はOSがやる。

これは"AIを弱くする思想"ではない。

実行を外に押し出すことで:

  • AIの文脈が純度を保つ
  • 判断の再現性が高まる
  • 破綻確率が激減する
  • 例外処理をコードで書ける
  • デバッグしやすくなる

つまり AIが強くなるために、実行を奪う


5.3 MCP / Tools / タスクAPI の正しい設計思想

タスクOSは以下の構成で成立する:

LLM(判断専用)
   ↓ "どのタスクを使うべきか" を選ぶ
TaskRouter(OS)
   ↓ 実行
Task Worker / MCP / API(実行専用)

この3層に分離すると、エージェントは一気に安定する。


5.4 タスクテンプレートの構造(標準化)

タスクは「関数」ではない。 状態機械(State Machine)の1ステップ である。

テンプレートの正しい構造はこれ:

json
{
  "task_name": "search_flights",
  "description": "航空便の空きを検索する",
  "input_schema": {
    "departure": "string",
    "arrival": "string",
    "date": "YYYY-MM-DD"
  },
  "output_schema": {
    "status": "success | error",
    "flights": "Flight[]?",
    "error_reason": "string?"
  }
}

ポイント:

  • 入力・出力が固定
  • 成功 / 失敗を必ず返す
  • 例外処理はワーカー側
  • LLMは「選ぶだけ」で良い

5.5 LLMをタスクに"触らせない"ことが安定の源

AIがやることは TaskRouterへの指示

例:

- 現在地Aから目的地Bへの最短ルート検索が必要
 → use(search_route)

- ホテル候補を絞る必要がある
 → use(fetch_hotels)

- 予算を超過した
 → use(update_budget)

そして重要なのは:

タスクの内部ロジックはLLMに見せない。伝えるのはタスクの存在と目的だけ。

これにより文脈が混ざらない。


5.6 タスクOSが防ぐ「よくある破綻パターン」

破綻1:AIが独自の手順を発明する

例:「まずAをやって、そのあとBして……」

タスクOS: → 禁止 → LLMは"どのタスクを呼ぶか"だけ判断


破綻2:エラーが返ってきたら"勝手に修正"しようとする

タスクOS: → 修正は全てワーカー → LLMには "エラーの意味" だけ伝える


破綻3:中間生成物が混ざり文脈崩壊

タスクOS: → 状態管理はOS → LLMは"状態を読むだけ"


破綻4:ループしてコスト爆増

タスクOS: → OSがループ回数や再試行を管理 → LLMは1ターンの判断しかしない


5.7 タスクは「人間の筋力をLLMに渡す」行為である

タスクとは、以下のような "人間の筋力" をAIに提供することだ。

  • DB操作
  • ファイル生成
  • 検索
  • APIコール
  • 予約・決済
  • 監視・通知

AIは判断だけ。 筋力(実行)はマシン。

この分離こそが エージェントの安全性・再現性・信頼性の源泉


5.8 タスクOSの実装手順(実務用)

① タスク一覧を棚卸しする

目的達成に必要な機能を全部出す。

② タスクにIDを振り、input/outputを固定する

LLM用に整形。

③ 例外処理をすべてワーカーに移す

AIに例外処理をさせない。

④ 状態管理はOS(メタレイヤ)に出す

LLMはただ読むだけ。

⑤ LLMには「タスクを選ぶ権限だけ」を渡す

この構造が AIを最も強くする"人間的OS"


5.9 この章のまとめ

  • 実行は危険。AIにやらせてはいけない
  • タスクはワーカー、LLMは判断専用
  • MCPは "思考と実行の分離" を実現する道具
  • タスクは状態機械の1ステップ
  • LLMは「どのタスクを使うか」だけ判断
  • 実行を奪うほど、エージェントは強くなる

次章:レポートOS ― 推論を「未来」から「過去」へ移す

第6章では、非創発タスクをレポート化し、推論コストとレイテンシをゼロにする構造を解説する。


Last Updated: 2025-12-07

Code: MIT / Content: CC BY-SA 4.0