8. AIエージェントとスクリプトの役割分担による堅牢なシステム構築
ロジックの「ブラックボックス化」によるリスク増大
LLMの出力をそのまま次のステップの入力として利用する設計は、最も手軽ですが、最も危険なパターンの一つです。LLMの出力は、文脈やプロンプトの微調整によって、構造が崩れたり、意図しないデータ型になったりするリスクを常に内包しています。
役割分担の原則:推論はAIに、実行はコードに
この原則を「責務の分離(Separation of Concerns)」と呼びます。OpenClawのワークフロー設計において、この分離を徹底することが、システムを堅牢にするための絶対条件です。
具体的には、以下の役割分担を徹底します。
| 役割 | 担当技術 | 得意なこと |
|---|---|---|
| 推論・判断 (Reasoning) | LLM (プロンプト) | 「次に何が起こるべきか」「このデータは何を意味するか」という解釈 |
| 実行・制御 (Execution) | スクリプト (Python/Shell) | API呼び出し、ファイルI/O、計算、状態の永続化など、副作用を伴う操作 |
| 調整・調整 (Orchestration) | OpenClawのワークフローエンジン | 実行順序の管理、エラーハンドリング、状態の引き継ぎ |
具体的な実装パターンとガードレール
この分離を技術的に実現するための具体的な指針は以下の通りです。
- LLM出力の強制構造化:LLMに「必ずJSON形式で出力せよ」と指示するだけでなく、OpenClawの機能や外部のJSON Schemaバリデーターを用いて、出力がスキーマに合致するかを強制的にチェックするステップを挟むことが必須です。
- スクリプトによる入力検証:LLMから受け取った「次のアクション指示」を、実行するスクリプトの引数として渡す前に、必ず型チェックと値の範囲チェックを行う(例:日付文字列がYYYY-MM-DD形式か)。
- ツール呼び出しの限定:LLMに「ツールを呼び出す」という指示を出す場合、呼び出し可能なツール(`toolsAllow`)を厳密に限定し、実行権限を最小限に留めることが、セキュリティ上最も重要です。
「思考」と「行動」の分離の徹底
運用上の最大の注意点は、LLMの出力結果を「真実(Truth)」として扱わないことです。LLMの出力はあくまで「提案」または「推論結果」であり、それをそのままシステムに適用するのではなく、必ずスクリプトレイヤーで「この提案は、この条件を満たした場合のみ採用する」というガードレールを設ける必要があります。
まとめ:信頼性を担保する「実行の壁」の構築
OpenClawの設計は、AIの「知性」を最大限に活用しつつ、その「実行」の部分は堅牢なコード(スクリプト)に委ねることで、システム全体の信頼性を担保します。この「実行の壁」を設けることが、実用的なAIエージェント構築の鍵となります。

