19. AIエージェントとスクリプトの役割分担による信頼性向上戦略
AIの「推論」とコードの「実行」の根本的な違い
LLM(AIエージェント)は「推論」と「生成」に優れていますが、その出力は確率的であり、実行の保証ができません。一方、Pythonスクリプトやシェルスクリプトは「実行」に特化しており、その動作は決定論的(Deterministic)です。この二つの性質の違いを理解し、役割を明確に分けることが、信頼性の高いシステム構築の鍵となります。
役割分担の原則:AIは「判断」、コードは「実行」
基本原則として、AIエージェントには「判断」「計画」「情報抽出」といった、曖昧さや創造性が求められるタスクを任せ、コード(スクリプト)には「外部とのI/O」「状態の永続化」「厳密な計算」といった、確実性が求められるタスクを割り当てるべきです。
タスクごとの最適な担当レイヤーの決定
以下の表は、具体的なタスクをどのレイヤーに割り振るべきかの指針です。
| タスク | 最適な担当レイヤー | 理由 |
|---|---|---|
| データ構造の決定 | コード (Script) | JSON Schemaなど、厳密な型定義と構造化された出力が求められるため |
| 次のアクションの計画 | AIエージェント (LLM) | 複数の選択肢から最適な順序を推論する必要があるため |
| 外部APIの呼び出し | コード (Script) | 認証情報やリトライロジックなど、実行環境の制御が必要なため |
| 情報からの要約・解釈 | AIエージェント (LLM) | 文脈理解と要約という、言語モデルの得意領域であるため |
インターフェースの厳密な定義(契約の遵守)
AIとスクリプトが連携するポイント(インターフェース)は、最も厳しく管理すべき「契約」です。AIが出力するJSONスキーマの定義、スクリプトが期待する入力パラメータの型、これらを明確にドキュメント化し、バージョン管理することが不可欠です。この契約が破られた時点で、システムは「実行時エラー」として処理を中断すべきです。
まとめ:AIは「思考のエンジン」、コードは「実行の骨格」
AIエージェントを「思考エンジン」として使い、その思考結果をコード(スクリプト)が「実行の骨格」として受け取り、実行保証を行うという役割分担を徹底することが、現代の自動化システムにおける最も信頼性の高い設計指針となります。

