AI活用

n8nでAIエージェントを作る方法|ツール接続・メモリ・承認まで実装

n8nのAI Agentノードへモデル、外部ツール、メモリ、人間承認を接続し、誤実行やループを防ぎながら最小フローを作る手順を解説します。

この記事の目次
  1. 結論:判断だけをAgentに任せ、副作用は承認後に実行する
  2. n8nのAIエージェントで作る完成形
  3. 通常のワークフローで十分なケース
  4. AI Agentノードを設定する
  5. モデルとsystem messageを指定する
  6. 入力と終了条件を決める
  7. 外部ツールを1つ接続する
  8. 引数を実行前に検証する
  9. メモリと人間の承認を追加する
  10. 保存する会話と保存しない情報を分ける
  11. 送信・更新の直前で承認を求める
  12. 最小ワークフロー設計JSON
  13. 誤実行・ループ・失敗をテストする
  14. よくある質問
  15. AI AgentにToolは必須ですか?
  16. メモリは必ず必要ですか?
  17. 承認を入れれば安全ですか?
  18. まとめ

n8nのAI Agentノードを使うと、入力内容に応じてAIが接続済みツールを選び、情報取得や外部処理を実行できます。ただし、送信・更新・削除まで無条件に任せるのではなく、ツールの引数検証、人間承認、回数上限、失敗時の停止を同時に設計することが重要です。

この記事では、問い合わせを分類し、承認後にタスク作成ツールを呼ぶ最小AIエージェントを例に、モデル・Tool・Memory・Human in the Loopの接続方法を解説します。

情報確認日:2026年7月18日(日本時間)

結論:判断だけをAgentに任せ、副作用は承認後に実行する

  1. Triggerから利用者の依頼を受け取る
  2. AI Agentが目的と必要なToolを判断する
  3. Toolの引数をschemaで検証する
  4. タスク作成の直前に人間が内容を確認する
  5. 承認時だけ実行し、結果と判断をlogへ残す
Chat Trigger
  ↓
AI Agent ─ Chat Model
  ├─ Memory(必要な会話だけ)
  └─ create_task Tool
          ↓
      Human Review
       ├─ approve → 外部サービスへ作成
       └─ reject  → 実行せず終了
スポンサーリンク

n8nのAIエージェントで作る完成形

現行のn8n公式ドキュメントでは、AI AgentノードはTools Agentとして動作し、少なくとも1つのTool sub-nodeを接続します。今回の完成条件は次のとおりです。

  • 自然言語からタスク名・期限・担当候補を整理する
  • 必須情報がなければ質問して止まる
  • AIはToolを選べるが、送信は承認前に行わない
  • 却下時は外部状態を変更しない
  • 1回の入力でTool呼び出しを最大1回に制限する

通常のワークフローで十分なケース

入力と処理が常に同じなら、AI Agentを使わずIF・Switch・通常nodeを組み合わせる方が再現性と費用を管理しやすくなります。Agentが向くのは、入力ごとに必要なToolや順序を判断する必要がある場合です。

AI Agentノードを設定する

モデルとsystem messageを指定する

AI Agentへ対応するChat Modelを接続し、役割と停止条件を明確にします。モデル名や認証方法はproviderとn8n versionにより異なるため、利用画面の対応nodeを確認してください。

役割:
利用者の依頼からタスク作成案を整理する。

ルール:
- 入力にない担当者や期限を作らない
- title、due_date、assignee、reasonを整理する
- due_dateが不明なら質問する
- create_taskは1回だけ候補にする
- 実行前に人間レビューが必要であることを伝える
- Toolエラー時は再送を繰り返さず停止する

入力と終了条件を決める

項目 設計例
入力 依頼本文、利用者ID、session ID
成功 承認済みタスクIDを返す
情報不足 不足項目を1回質問する
拒否 外部処理なしで終了する
失敗 error codeを記録し、人へ通知する

外部ツールを1つ接続する

最初から複数Toolを接続せず、書き込み先を1つに限定します。Tool名とdescriptionは、AIが使う条件を判断できる具体性が必要です。

{
  "tool": "create_task",
  "description": "承認済みの業務タスクを1件作成する。情報検索や更新には使わない。",
  "input": {
    "title": "string, 1〜80文字",
    "due_date": "YYYY-MM-DD",
    "assignee_id": "許可済みID",
    "reason": "入力に基づく作成理由"
  },
  "limits": {
    "max_calls_per_execution": 1,
    "requires_human_review": true
  }
}

引数を実行前に検証する

  • titleが空でないか
  • 期限が有効な日付か
  • 担当者IDが許可リストにあるか
  • 対象workspaceが固定されているか
  • 同じrequest IDが実行済みでないか

AIの自然言語出力をそのまま外部APIへ渡さず、Edit Fields、IF、Code、sub-workflowなどで検証します。Tool Callingの基本はTool Callingとはも参照してください。

メモリと人間の承認を追加する

保存する会話と保存しない情報を分ける

Memoryは会話継続に必要な場合だけ接続します。API key、個人情報、決済情報、不要な全文を保存しないようにします。session IDを利用者間で共有しないことも重要です。

送信・更新の直前で承認を求める

n8nにはAI Tool呼び出しを人がレビューする公式機能があります。承認画面には、操作名、対象、引数、理由、影響、期限を表示します。

選択 結果
Approve 検証済み引数で1回だけ実行
Reject 外部状態を変更せず終了
Timeout 安全側で拒否として停止
Edit 別の明示的な修正経路で再確認

最小ワークフロー設計JSON

次はレビュー用の構成表現です。n8nへそのままimportするexport JSONではありません。

{
  "workflow": "approved-task-agent",
  "nodes": [
    {"id": "trigger", "role": "Chat Trigger"},
    {"id": "agent", "role": "AI Agent", "maxToolCalls": 1},
    {"id": "model", "role": "Chat Model"},
    {"id": "memory", "role": "Optional Memory", "retention": "minimum"},
    {"id": "tool", "role": "create_task Tool"},
    {"id": "review", "role": "Human Review"},
    {"id": "log", "role": "Execution Log"}
  ],
  "policy": {
    "writeRequiresApproval": true,
    "timeoutAction": "reject",
    "retryOnWrite": false
  }
}

誤実行・ループ・失敗をテストする

case,expected,actual,result
期限なし,質問して停止,質問して停止,pass
許可外担当者,Toolを呼ばない,Toolを呼ばない,pass
承認拒否,外部作成0件,外部作成0件,pass
承認timeout,安全側で停止,安全側で停止,pass
API 500,再送せず通知,再送せず通知,pass
同じrequest ID,二重作成しない,二重作成しない,pass

正常系だけでなく、曖昧な入力、prompt injection、Tool timeout、外部API失敗、同じrequestの再実行をテストします。実行回数、token、API費用にも上限を設けます。

よくある質問

AI AgentにToolは必須ですか?

現行の公式AI Agent nodeでは、少なくとも1つのTool sub-nodeを接続します。単に文章を生成するだけなら、通常のLLM chainやmodel nodeを検討します。

メモリは必ず必要ですか?

必要ありません。1回で完結する処理では保存しない方が管理しやすい場合があります。会話継続に必要な情報だけを保存します。

承認を入れれば安全ですか?

承認だけでは十分ではありません。引数検証、権限、回数上限、二重実行防止、監査logを組み合わせます。基礎はAIエージェントとはも参考になります。

まとめ

n8nでAIエージェントを作るときは、Trigger、AI Agent、Chat Model、1つのToolから始めます。Toolの説明とschemaを具体化し、送信・更新・削除は人間承認後だけ実行してください。

情報不足、拒否、timeout、API失敗、再実行をテストし、実行logから自動化範囲を段階的に広げるのが安全です。引数設計はFunction Callingの基礎も参考になります。

スポンサーリンク