AI Agents
DrupalをAIエージェントによるタスク実行可能にし、AIワークフローを通じた自動サイト設定とコンテンツ管理を実現します。
ai_agents
インストール
composer require 'drupal/ai_agents:^1.2'
概要
AI Agentsモジュールは、Drupalサイト内でAI駆動の自動化を作成・管理するための包括的なフレームワークを提供します。AIエージェントがコンテンツタイプの作成、フィールド管理、タクソノミー処理、その他のサイト設定操作を自然言語でのやり取りを通じて実行できるようにします。
このモジュールはプラグインベースのアーキテクチャを採用しており、各AIエージェントが特定のドメインタスクに特化しています。エージェントはツールコールをループ処理し、アクションを検証し、構造化された出力でユーザーのクエリに応答できます。複雑なマルチステップタスクのために複数の専門エージェントを調整するオーケストレーションエージェントもサポートしています。
主な機能には、AIエージェント用のコンフィグエンティティ管理、サイト操作用のファンクションコーリングツール、エージェント実行監視用のイベントシステム、エラー回復用のロールバックサポート、CKEditorおよびAI Assistantモジュールとの統合が含まれます。
Features
- 設定可能な動作、ツール、プロンプトを備えたプラグインベースのAIエージェントアーキテクチャ
- ツール割り当てを含むAIエージェント設定を定義・保存するためのコンフィグエンティティシステム
- コンテンツタイプ管理用の組み込みエージェント(ノードタイプの作成、編集、クエリ)
- エンティティフィールド、フィールドストレージ、表示設定の作成・変更用フィールドエージェント
- 階層構造を含むボキャブラリとタームの管理用タクソノミーエージェント
- エンティティ操作、スキーマアクセス、サイト設定用のファンクションコーリングツール(30以上)
- 無限ループを防ぐための設定可能な最大ループ数によるループエージェント実行
- エージェント機能の詳細な制御のためのツール使用制限とプロパティ制限
- カスタマイズ可能なスキーマによる構造化JSON出力サポート
- エージェント実行、ツールコール、レスポンスを監視するイベントシステム
- エラー時に設定変更を元に戻すロールバック機能
- カスタムai_agentトークンタイプによるトークン置換システム
- 大きなツールレスポンスを管理するためのアーティファクトストレージシステム
- 特定のパーミッションでエージェントを操作するためのロールベースのマスカレード
- AI支援コンテンツ編集のためのCKEditor統合
- 会話型インターフェースを通じてエージェントをトリガーするAI Assistant API統合
- エージェント初期化時に実行される設定可能なデフォルト情報ツール
- エージェントタスクでのファイルと画像入力のサポート
Use Cases
コンテンツタイプの自動作成
サイトビルダーは自然言語でコンテンツタイプの要件を記述できます(例:「タイトル、日付、場所、説明フィールドを持つイベントコンテンツタイプを作成」)。コンテンツタイプエージェントが適切な設定でノードタイプを作成し、フィールドエージェントが必要なフィールドを適切な設定で追加できます。
自然言語によるフィールド管理
開発者は「記事コンテンツタイプに画像用のメディア参照フィールドを追加し、フォーム表示で本文フィールドの後に配置する」などのフィールド変更をリクエストできます。フィールドエージェントがフィールドストレージ作成、フィールドコンフィグ、表示設定を自動的に処理します。
タクソノミー構造の生成
コンテンツ管理者は「商品カテゴリというボキャブラリを作成し、適切な階層を持つ20個の一般的なeコマースカテゴリを追加」と言ってタクソノミーを構築できます。タクソノミーエージェントがボキャブラリを作成し、親子関係を持つ関連タームを生成します。
AI支援コンテンツ編集
CKEditorを使用するコンテンツ編集者は、設定済みのAIエージェントを呼び出してエディター内で直接コンテンツを生成または変換できます。例えば、選択したテキストの要約、プロンプトに基づくコンテンツ生成、既存コンテンツの再フォーマットなどです。
チャットボット駆動のサイト設定
AI Assistant API統合により、管理者は会話型インターフェースを通じてDrupalサイトを設定できます。チャットボットがリクエストを適切なエージェントにルーティングし、技術者でないユーザーでも安全に設定変更を行えます。
カスタムエージェント開発
開発者はAiAgentInterfaceを実装するか、AiAgentBaseを拡張してカスタムAIエージェントを作成できます。カスタムエージェントはワークフロー管理、コンテンツ移行計画、外部サービスとの統合などのドメイン固有のタスクを処理できます。
オーケストレートされたマルチステップタスク
複雑なサイトセットアップタスクは、複数の専門エージェントを調整するオーケストレーションエージェントによって処理できます。例えば、コンテンツタイプ、フィールド、タクソノミー、ビューエージェントを順次呼び出すことでeコマースサイトをセットアップできます。
Tips
- 開発中はAI Agents Explorerモジュールを使用してエージェントの動作をデバッグし、実行の詳細をステップバイステップで確認できます。
- エージェントが適切なファンクションコーリングサポートを必要とするため、AI設定でchat_with_complex_jsonのデフォルトプロバイダーを設定してください。
- 複雑なタスクに十分な反復を許可しながら、暴走エージェント実行を防ぐために適切なmax_loops値を設定してください。
- tool_usage_limitsを使用して、セキュリティと一貫性のために値を強制したりプロパティオプションを制限したりしてエージェントの動作を制約します。
- スキーマ準拠が保証されたエージェント結果へのプログラムアクセスが必要な場合はstructured_outputを有効にしてください。
- エージェントが一般的に必要とするコンテキストを事前読み込みするためにdefault_information_tools設定を使用し、不要なツールコールを減らします。
- イベントシステムを活用してエージェント実行を監視し、アクティビティをログし、カスタム検証を実装します。
- 本番デプロイメントでは、エージェントのパーミッションを慎重にレビューし、agent_settingsを通じたロールベースのアクセス制限を検討してください。
- prompts/ディレクトリのカスタムプロンプトは、コードを変更せずに設定でオーバーライドできます。
- rollback()メソッドは、エージェントアクションが失敗した場合に設定変更を元に戻す自動回復を提供します。
Technical Details
Admin Pages 3
/admin/config/ai/agents
説明付きで利用可能なすべてのAIエージェントを一覧表示します。個別のエージェント設定を編集するリンクを提供します。コード定義プラグインとコンフィグエンティティエージェントの両方を表示します。
/admin/config/ai/agents/add
プロンプト、ツール、動作設定の完全なカスタマイズで新しいAIエージェント設定エンティティを作成するフォーム。
/admin/config/ai/agents/explore
エージェントを直接実行し、実行進捗を表示するための開発/デバッグインターフェース。AI Agents Explorerサブモジュールが必要です。
権限 1
Hooks 2
hook_ai_function_call_info_alter
ファンクションコールプラグイン定義を変更します。AI Agentsがエージェントを呼び出し可能なツールとして公開するエージェントラッパー関数を登録するために使用されます。
hook_ai_agents_info_alter
プラグインマネージャーによって検出されたAIエージェントプラグイン定義を変更します。
Troubleshooting 6
/admin/config/ai/settingsに移動し、「chat_with_complex_json」オペレーションタイプのデフォルトプロバイダーを設定してください。
エージェントのmax_loops設定を確認してください。値を減らすか、エージェントのシステムプロンプトを確認してループ制限内で完了できることを確認してください。
現在のユーザーが操作に必要なDrupalパーミッション(例:「administer content types」、「administer taxonomy」)を持っていることを確認してください。エージェントが昇格されたパーミッションを必要とする場合はmasquerade_rolesの使用を検討してください。
エージェントのツール設定を確認して、必要なツールが有効になっていることを確認してください。tool_usage_limitsにツールの使用を妨げる制限がないか確認してください。
structured_output_schemaが有効なJSONスキーマ形式であることを確認してください。スキーマがシステムプロンプトに基づいてAIが生成可能なものと一致していることを確認してください。
ロールバックはエージェント実行中に追跡されたコンフィグエンティティにのみ機能します。カスタムエージェントのカスタム操作は独自のロールバックロジックを実装する必要があります。
Security Notes 8
- AIエージェントはDrupalサイトに重大な設定変更を行う可能性があります。「administer ai_agent」パーミッションは信頼できる管理者にのみ付与してください。
- tool_usage_limitsを使用して、エージェントが機密性の高い操作に使用できる値を制限してください。
- masquerade_roles機能により、エージェントは通常のユーザーパーミッションチェックをバイパスできます。慎重に使用し、定期的に監査してください。
- エージェントプロンプトはAIプロバイダーに表示されます。システムプロンプトにAPIキーなどの機密情報を含めないでください。
- APIキーなどの機密値を含むプロパティに対してtool_usage_limitsのhide_propertyオプションを有効にしてください。
- 本番環境にデプロイする前に、開発環境でエージェントの動作をレビューしてテストしてください。
- secured_system_promptフィールド(settings.phpでshow_secured_ai_agent_system_promptが設定されている場合にのみ表示)には、UI編集者から隠された指示を含めることができます。
- AI Agents Explorerは詳細な実行情報を公開するため、本番サイトでは有効にしないでください。