AI ツール呼び出しにおけるヒューマン・イン・ザ・ループ(Human-in-the-loop)
AI エージェントに対して、特定のツールを実行する前に必ず人間による承認を求めるように設定できます。あるツールがヒューマン・イン・ザ・ループ(HITL)を必要としている場合、ワークフローは一時停止し、関係者が以下のいずれかの操作を行うのを待ちます。
- 承認(Approve):AI が指定した入力パラメータでツールが実行されます。
- 拒否(Deny):操作はキャンセルされ、実行されません。
この機能により、AI ワークフロー内のツール呼び出しに対して選択的に監督をかけることができ、メッセージ送信やレコードの変更、データ削除などリスクの高いツールに対して追加の人手による確認を実施しやすくなります。
ヒューマン・イン・ザ・ループ(HITL)を使うべきタイミング
ヒューマン・イン・ザ・ループ(HITL)は、以下のような状況で特に有用です。
- 不可逆な操作(元に戻せない操作):データの削除、外部への通信送信、購入処理など。
- コンプライアンス要件がある場合:規制対象業界では、特定の自動化操作に対して人間による承認が求められることがあります。
- 高価値な意思決定が関わる場合:ビジネスに大きな影響を与える操作には、人間による監督が有効です。
- AI ワークフローへの信頼構築:最初は HITL を有効にしておき、信頼が高まってきた段階で徐々に監督を減らしていくことができます。
HITL は、AI Agent ノードに接続されているすべてのツールに適用することも、特定の個別ツールのみに適用することも可能です。これにより、一般的な出力制御よりもきめ細かい制御が可能になります。
動作の仕組み
- AI エージェントが、ヒューマン・レビューが有効になっているツールを使用する必要があると判断します。
- ワークフローが一時停止し、事前に設定したチャネル(Slack、Telegram、n8n チャットインターフェースなど)を通じて承認リクエストが送信されます。
- 承認者は、AI が使用しようとしているツールとそのパラメータが記載されたリクエストを受け取ります。
- 承認者がリクエストを承認または拒否します。
- 承認された場合、AI が指定した入力パラメータでツールが実行されます。拒否された場合、操作はキャンセルされ、AI には拒否された旨が通知されます。
異なる承認チャネル
承認ステップは、主なインタラクションとは異なるチャネルで行うことができます。たとえば、ユーザーが n8n チャットインターフェースを通じて AI エージェントとやり取りしている一方で、承認リクエストは Slack の特定のメンバーにルーティングされるといった使い方が可能です。
ツールにヒューマン・レビューを設定する方法
ステップ 1:ツールパネルを開く
ワークフロー内で、AI Agent ノードの Tools(ツール) コネクタをクリックして、ツールパネルを開きます。
ステップ 2:ヒューマン・レビューのステップを追加する
- ツールパネル内の Human review(ヒューマン・レビュー) セクションを見つけます。
- 利用可能なオプションから、希望する承認チャネルを選択します。
- 適切なクレデンシャルと設定を使って、承認チャネルを構成してください。
ステップ 3:ツールをレビュー・ステップに接続する
- 承認が必要なツールを、ヒューマン・レビュー・ステップのツールコネクタに接続します。
- 各ツールを通常通りに設定してください。
利用可能な承認チャネル
以下のサービスをヒューマン・レビューのチャネルとして利用できます:
| チャネル | 説明 |
|---|---|
| Chat | n8n 内蔵のチャットインターフェース |
| Slack | Slack のチャンネルまたは ダイレクトメッセージに承認リクエストを送信 |
| Discord | Discord のチャンネルに承認リクエストを送信 |
| Telegram | Telegram で承認リクエストを送信 |
| Microsoft Teams | Teams のチャンネルまたは チャットに承認リクエストを送信 |
| Gmail | メールで承認リクエストを送信 |
| WhatsApp Business Cloud | WhatsApp で承認リクエストを送信 |
| Google Chat | Google Chat に承認リクエストを送信 |
| Microsoft Outlook | Outlook メールで承認リクエストを送信 |
ヒューマン・レビュー・ツールでの式の使用
$tool 変数
ヒューマン・レビュー・ステップを設定する際、承認者向けに AI が実行しようとしている操作の文脈を含んだメッセージを作成するために $tool 変数を利用できます。この変数には以下の 2 つのプロパティがあります。
| プロパティ | 説明 |
|---|---|
$tool.name | AI エージェントが呼び出そうとしているツールの名前(n8n のキャンバス上に表示されるノード名)。 |
$tool.parameters | AI エージェントがツール呼び出し時に使用しようとしているパラメータ(ツールの入力スキーマ内で $fromAI() 式を使って設定されたすべてのフィールドを含む)。 |
メッセージ設定例:
AI は {{ $tool.name }} を使用したいと考えています。パラメータは以下の通りです:
{{ $tool.parameters }}
これにより、承認者はリクエストを承認または拒否する前に、AI が何を実行しようとしているのかを明確に把握できます。
ヒューマン・レビュー・ツールでの $fromAI() の使用
$fromAI() 関数は、ヒューマン・レビュー・ステップに接続されたツールで使用できます。つまり、AI が動的にツールのパラメータを指定でき、その AI が決定した値こそが、承認者が確認・承認する内容となります。
システムプロンプト(System Prompt)のベストプラクティス
AI エージェントが、ツール呼び出しが拒否された場合に適切に理解・対応できるようにするため、システムプロンプトにヒューマン・レビューの設定に関する情報を含めておくことを推奨します。
システムプロンプト設定の重要性
ツール設定およびヒューマン・レビュー・ステップに関する情報をシステムプロンプトに必ず含めてください。これにより、AI はどのツールが承認を必要とするか、およびツール呼び出しが拒否された場合にどのように対応すべきかを理解できます。
以下の内容を含めることを推奨します:
- どのツールが人間による承認を必要とするか
- 承認が拒否された場合に何が起こるか
- AI が拒否に対してどのように反応すべきか(例:ユーザーに通知、代替案の提案、または追加の明確化を依頼)
チェーン実行とサブエージェント
ある AI エージェントを別の AI エージェントのツールとして使用する場合でも、サブエージェント内のヒューマン・レビュー・ステップは正常に動作します。
関連リソース
- AI Agent ノード
- Tools Agent
- AI における「ツール」とは?
- AI が
$fromAI()を使ってツールのパラメータを指定する方法