𝗔𝗜 𝗔𝗴𝗲𝗻𝘁𝘀 𝗛𝗮𝘃𝗲 𝗔 𝗥𝗲𝗹𝗶𝗮𝗯𝗶𝗹𝗶𝘁𝘆 𝗣𝗿𝗼𝗯𝗹𝗲𝗺
AIエージェントは、応答するソフトウェアから、行動するソフトウェアへと進化しています。APIを呼び出し、送金を行い、データベースを更新します。
しかし、知能と信頼性の間には巨大な隔たりがあります。
私たちは、より優れたモデルやより優れたプロンプティングに注力しています。しかし、インフラストラクチャを無視しています。このミスマッチが、現実世界での失敗を引き起こしています。
エージェントが返金処理を行う場面を想像してください。エージェントが決済APIを呼び出し、APIは成功しました。しかし、エージェントがその成功を記録する前にサーバーがクラッシュします。システムはタスクをリトライします。エージェントは再びAPIを呼び出します。その結果、顧客には二重に返金されてしまいます。
バグが書かれたわけではありません。モデルは正しく推論しました。APIも正常に動作しました。失敗が起きたのは、インフラストラクチャが不完全だったからです。
ほとんどのエージェントはデモでは問題なく動作します。デモは単一のプロセスで実行され、一度に一つのタスクを実行します。クラッシュや並行性(concurrency)に直面することはありません。しかし、本番環境は異なります。
エージェントを本番環境に移行すると、次の3つの問題が発生します:
• Process Imortality: エージェントはプロセスが死なないことを前提としています。実際には、ホストは停止し、デプロイも行われます。プロセスが終了すると、メモリ上の状態は消失します。 • Pure Tool Calls: 開発者はツール呼び出しを単純な読み取り操作のように扱います。しかし、エージェントは副作用(side effects)を伴う操作を行います。送金やメール送信は、簡単に元に戻すことはできません。 • Exactly-once Execution: 信頼性を確保するにはリトライが不可欠です。しかし、永続的なログなしにメモリ内のループをリトライすると、重複したアクションが発生します。
これはプロンプティングの問題ではありません。分散システムの課題です。これを解決するには、durable execution(永続的な実行)が必要です。
信頼できるエージェントには、以下の5つの柱が必要です:
- Event Sourcing: すべてのアクションの不変のログを保存します。メモリ上の状態ではなく、ログが「信頼できる唯一の情報源(source of truth)」となります。
- Replayable Execution: クラッシュ後にログを使用して状態を再構築します。ステップを最初からやり直すのではなく、完了したステップを再生(replay)します。
- Durable Queues: ワークをメモリから永続的なストレージへと移動させます。
- Idempotency Keys: アクションを2回実行しても、1回実行したときと同じ効果が得られるようにします。これにより、二重支払いを防ぎます。
- Compensation Patterns: 多段階のワークフローが途中で失敗した場合に、ステップを元に戻すためのアクションを定義します。
より優れたモデルは、より優れた意思決定を生み出します。しかし、より優れたモデルであってもクラッシュを直すことはできません。信頼性は「意思決定」の属性ではなく、「実行」の属性なのです。
人間の監視なしに動作を任せられるエージェントは、単に最も賢いだけではありません。それらは、信頼できるインフラストラクチャ上で動作するものなのです。
知能は何をすべきかを決定する。インフラストラクチャは、それが実際に正しく実行されることを保証する。
出典: https://dev.to/code_with_mwai/ai-agents-have-a-reliability-problem-nobody-is-talking-about-j40
オプションの学習コミュニティ: https://t.me/GyaanSetuAi