所有節目›AI Engineer Europe 2026| World's Fair 2026完整場次線上軌AI in HealthcareSoftware Factories
Human-in-the-Loop Automation with n8n在 YouTube 看這一場

AI Engineer Europe 2026 · 工作坊 · 2026-05-02 · 79 分

在 n8n 替 agent 加人工審核

Human-in-the-Loop Automation with n8n · Liam McGarrigle

n8n 的 developer advocate 帶著現場聽眾從零做一個 Gmail 與行事曆 agent,再替寄信、建活動這類動作加上人工審核關卡,最後回答 MCP、團隊協作與沒有介面時怎麼辦。

其他:產品與研究介紹看原片 ↗

概要

  • 從零做一個信箱與行事曆 agentLiam 從 chat trigger 開始,接上 AI agent 節點、聊天模型與 simple memory,再把 Gmail 與 Google Calendar 的節點當成工具交給 agent 用。
  • 工具的名稱與描述就是提示Liam 說節點名稱就是工具名稱、節點描述就是工具描述,模型每次呼叫都看得到。自己則習慣把和單一工具有關的規則寫在描述裡,這樣把工具複製到別的 workflow 也能直接用。
  • 只開放你指定的欄位Liam 拿 Claude Code 對照,說後者拿到行事曆權限就能自己呼叫 API 做任何事;n8n 的工具則是每個欄位各自設定,agent 只能填被開放的那幾格。
  • 人工審核插在工具前面寄信、建活動這類破壞性或敏感的動作加上 human review 步驟後,agent 不經過聊天視窗的核准就叫不動那個工具。審核訊息可以用 tool.parameters 取出收件人與內容,核准、拒絕或直接回話改寫都行。
  • 把審核搬進 Slack、再加排程同一套機制換成 Slack 照樣能跑;加上排程 trigger 每小時跑一次,agent 在背景做事、需要人決定時才在頻道叫人。
  • Q&A 談到的限制沒有按鈕的場景(例如電話)沒有內建做法,只能用 sub-workflow 自己設計;並行執行數上限會不會被等待中的審核吃掉,Liam 當場答不出來,說會再查。

原話

  • “seeing what your agent can do, knowing what it's doing, seeing what went wrong, and being able to tweak it and fix it.”

    看得到 agent 能做什麼、正在做什麼、哪裡出了錯,還能調整修正

    ▶ 02:42
  • “the node name is the tool name the node description is the tool description”

    節點名稱就是工具名稱,節點描述就是工具描述

    ▶ 29:47
  • “it's not calling that human review step it's calling the tool and we're intercepting it”

    它呼叫的不是審核步驟,而是工具,我們在中間攔截

    ▶ 51:06
  • “I don't want to AI message coworkers or clients or anything without seeing it first.”

    我不想讓 AI 在我看過之前就傳訊息給同事或客戶

    ▶ 1:06:57
  • “a brick wall dmz nothing getting past it”

    一道磚牆、一塊非軍事區,什麼都過不去;指審核關卡不能讓模型自己決定核准

    ▶ 1:14:49

延伸

  • Notion 頁面後面還有作業:讓 agent 有跨 session 的持久記憶、接上自己的聊天工具,以及改成自主執行;這場沒有逐步做。
  • Liam 提到 enterprise 有 Git 整合與多環境,但沒有細講怎麼設定。
  • Liam 希望 human review 之後能提供自訂的 webhook,讓人自己接審核介面,並說審核的稽核紀錄是他們還要打磨的地方。

章節

點時碼直接跳到原片的那一段。

  1. 開場與工作坊目標Liam 自我介紹是 n8n 的 developer advocate,說明今天從第一個 workflow 做起,做出 Gmail 與行事曆 agent,再加人工審核。
  2. 為什麼看得見很重要Liam 認為現在人人都能做 agent,勝負在於看得到 agent 做了什麼、哪裡出錯、能不能調整,n8n 就是從這裡出發。
  3. 環境準備全程依著一份 Notion 頁面走;大家註冊 n8n cloud 帳號,Liam 提醒目前穩定版是 2.14.2,跟不上的人可以直接貼完成版的 workflow JSON。
  4. n8n 介面與背景介紹 projects、trigger、action 與控制流程;n8n 2019 年就開始做,當時還是 ChatGPT 之前的整合工具。
  5. Chat trigger 與 ChatHub先放 chat trigger,勾選讓它出現在 ChatHub,就能在 n8n 內建的聊天介面測試;之後可換成 Slack 等自己的聊天工具。
  6. 加上 AI agent 節點agent 節點必須接聊天模型;Liam 用 OpenRouter 挑模型,並說要選夠聰明的,才會知道去用工具。
  7. 記憶沒接記憶時 agent 記不得上一句;Liam 幾乎都用 simple memory,需要接既有系統時才換 Postgres 或 Redis,並提醒保留的訊息越多 token 越貴。
  8. Expression欄位切成 expression 後,大括號裡就是 JavaScript,可以直接拖曳前一個節點的欄位進來。
  9. 節點變工具、授權 Google一般節點都能變成 agent 的工具,欄位可以讓 AI 自動填;中間花了一段時間讓大家連上 Google 帳號。
  10. 工具命名與描述節點名稱和描述會原封不動給模型看,所以要改成清楚的名字、手動寫描述;Liam 偏好把各工具的規則放在描述裡,讓工具可以搬到別的 workflow。
  11. System prompt示範 Liam 寫的 prompt:說明角色與目的、不確定就問而不要亂編、不要用占位符,並用日期時間函式告訴模型現在幾點。
  12. 欄位描述與權限可以替單一欄位加描述來引導 AI,例如把 Google Calendar 的 summary 說明成事件標題;也講到在 project 裡建立的 credential 要分享給 project 才不會報沒權限。
  13. 加上人工審核步驟寄信與建活動歸為敏感動作,加上 human review;歸檔 Liam 覺得風險低,放給 agent 自己做。
  14. 排錯:回應模式報錯後讀訊息才發現 chat trigger 的 response mode 要改成 using response nodes,agent 後面也要補一個聊天節點送出回覆,之後訊息不再串流而是整段送回。
  15. 讓審核訊息看得懂用 $tool 的 parameters 取出收件人、主旨與內文,改寫成「agent 想寄信」的審核訊息;核准、拒絕,或直接回話要求改寫都可以。
  16. 攔截機制與多工具共用審核是在工具前面攔截,agent 並不知道它存在;Liam 有時會在描述裡註明有人類在審核,免得 agent 不敢送出。多個工具也可以共用同一個審核節點。
  17. 用 AI builder 複製設定Liam 請 n8n 的 AI builder 照寄信那一個,替其他工具也補上審核;這功能目前只有 cloud 與 enterprise。
  18. 建活動、執行紀錄與日期格式用審核擋住測試用的活動,可在 executions 看每次走過哪些節點;Liam 把難讀的 UTC 時間改用日期函式格式化,方便審核。
  19. Q&A:n8n 的 MCP有人問原生 MCP;Liam 示範在設定開啟 instance-level MCP、逐一開放 workflow,並說它不只能建立與讀取,還能執行 workflow。
  20. Q&A:記錄誰回得慢內建沒有這種報表;但 workflow 等待審核時處於 waiting 狀態,可用節點取出開始與結束等待的時間,自己彙整。
  21. 換成 Slack、加排程把 trigger 與回覆換成 Slack,再加上每小時的排程讓 agent 在背景處理;Liam 自己用來掃 GitHub issue 與 PR、草擬給同事的訊息,送出前先給自己看。
  22. Q&A:並行上限與團隊協作等待中的審核會不會佔滿並行執行數,Liam 答不出來,只建議設等待時限自動拒絕;團隊共編則視是否 enterprise,enterprise 有 Git 整合與多環境。
  23. Q&A:沒有介面的審核像電話這種沒有按鈕的場景,審核不能交給模型決定;目前只支援聊天平台,變通是用 sub-workflow 自己問、再用 if 分支。
  24. Q&A:把 workflow 當 API用 webhook trigger 就能把 workflow 做成 REST API;Liam 說自己替公司做的 coupon 工具就是這樣包成 REST API 給同事接,連人工審核也都在 n8n 裡。
  25. 收尾:拆成 sub-agent工具變多後建議用 sub-agent 工具拆成專責的 agent,主 agent 的 context 不會塞太滿,每個 agent 也能用不同的模型。

名詞

n8n
Liam 任職的工作流程自動化工具,用視覺化節點串接服務,也能在欄位裡寫 JavaScript
ChatHub
n8n 內建的聊天介面,chat trigger 勾選後就能直接在裡面和 workflow 對話
AI agent node
n8n 的 agent 節點,下方可接聊天模型、記憶與工具
OpenRouter
這場用來挑選與串接各家模型的服務
simple memory
n8n 代管的對話記憶,預設只記最近 5 則訊息,Liam 建議可調到 50 左右
expression
欄位裡用大括號包起來的 JavaScript,可引用前面節點的資料
human review
加在工具前面的人工審核步驟,核准後 agent 才能呼叫該工具
response mode
chat trigger 的回應方式,要用審核節點時必須設成 using response nodes
AI builder
n8n 內建、可用提示改 workflow 的功能,目前只有 cloud 與 enterprise
instance-level MCP
n8n 原生的 MCP 功能,可逐一開放 workflow 讓 Claude 等客戶端使用
sub-workflow
被另一個 workflow 當工具呼叫的流程,Liam 用它處理沒有按鈕的審核

相關影片 同在「其他:產品與研究介紹」