概要
- 信頼性の高いエージェント には 決定論的な制御フロー が必要
- プロンプトチェーン は複雑なタスクでは限界
- ソフトウェア的な構成 で予測可能性と検証性を確保
- LLMは部品 として扱い、全体のシステムではない
- エラー検出と検証 の仕組みが不可欠
複雑なタスクにおける信頼性と制御フロー
- 複雑なタスク を扱うエージェントには 決定論的な制御フロー の実装が必要
- プロンプトチェーン (MANDATORYやDO NOT SKIPなど)では 信頼性の限界 に直面
- プログラミング言語で命令が「提案」にすぎず、関数が「Success」と返しつつ 幻覚応答 する世界の想像
- 推論の困難化 と 信頼性の崩壊、タスクが複雑になるほど顕著
ソフトウェアのスケーラビリティとプロンプトの限界
- ソフトウェア は 再帰的な合成 (ライブラリ・モジュール・関数から構築)によって拡張
- コード は予測可能な振る舞いを持ち、 局所的な推論 が可能
- プロンプトチェーン はこの性質がなく、狭い用途では有用だが
- 非決定論的
- 仕様が曖昧
- 検証が困難
信頼性向上のためのアプローチ
- 信頼性向上 には 論理をプロンプトからランタイムへ 移す必要
- 決定論的な足場 (明示的な状態遷移・バリデーションチェックポイント)の設計
- LLMはシステムの一部品 として利用し、全体の制御はコードで管理
エラー検出と検証の重要性
- 決定論的なオーケストレーション だけでは不十分
- サイレントエラー が発生しやすい環境で、積極的な エラー検出 が不可欠
- プログラムによる検証 がなければ、選択肢は3つのみ
- ベビーシッター:人間が逐次監督し、エラーを事前に発見
- 監査人:実行後にエンドツーエンドで徹底的な検証
- 祈り:出力をそのまま受け入れる「祈る」運用
結論
- 本質的な信頼性 は 決定論的なソフトウェア設計 と プログラム的検証 によってのみ実現
- LLMの活用 は「部品」としての位置づけが最適解