使用說明 使用說明
Workspace

觸發節點

每一種觸發節點怎麼開始一次執行:手動觸發、排程觸發、Webhook、子工作流、Agent 對話與 AI 工具。

本頁內容 7

每一次執行,都從一個觸發節點開始。這一頁寫出每一種觸發節點怎麼開始一次執行,以及「啟用中」/「未啟用」的開關會影響哪幾種。

一個工作流,很多觸發

一個工作流可以有好幾個觸發節點,什麼種類都可以。每一次執行只從其中一個開始,其他的觸發節點不會跑。

按上方列的「執行」時:

  • 工作流裡有「手動觸發」時,多半從它開始。例外是:同一個工作流裡也有「Agent 對話」或「AI 工具」觸發節點時,「執行」會從這幾個之中,排在工作流最前面的那一個開始(多半是最早加進來的那一個),不一定是「手動觸發」。從哪一個開始,執行面板會寫著「從「…」開始」。
  • 只有一個觸發節點時,從它開始。
  • 其他時候,會打開一個選單「要從哪個觸發節點開始?」,讓你選一個。
  • 一個觸發節點都沒有時,看不到「執行」。

沒有觸發節點的工作流,不能切到「啟用中」,上方列的下面會出現一行紅字:「這個工作流沒有觸發節點,無法執行。請先加一個觸發節點。」網站檢查的是最後一次儲存的樣子,所以請先按「儲存」。

「啟用中」/「未啟用」的開關做什麼:切到「啟用中」,會打開「排程觸發」、「Webhook」的網址與「Agent 對話」,沒有別的。用「執行子工作流」呼叫的工作流、當作失敗時要執行的工作流,以及被 AI Agent 當成工具用的工作流,不論開關是哪一邊,都會執行。請看試跑與正式啟用。

手動觸發

「手動觸發」沒有任何設定。按「執行」時,它給出一筆空的項目。在執行紀錄裡,這些執行的來源是「手動」,觸發者是按下「執行」的人。

要用你自己的項目來試,請在它上面釘選資料,請看釘選資料。

排程觸發

「排程觸發」的欄位:

  • 「排程模式」:「固定間隔」、「每日」、「每週」或「自訂 Cron 運算式」。
    • 「固定間隔」:填「間隔」和「間隔單位」(「分鐘」或「小時」)。
    • 「每日」:填「小時」和「分鐘」。
    • 「每週」:填「小時」、「分鐘」和「星期」。「星期」可以選好幾天;一天都沒有選時,不能儲存,編輯畫面會顯示「每週執行要至少選一個星期幾。」
    • 「自訂 Cron 運算式」:在「Cron 運算式」寫五個部分,依序是分、時、日、月、星期。例如 0 9 * * 1 是每個星期一的 09:00。多寫一個秒的部分時,不能儲存,編輯畫面會顯示「排程最快只能每分鐘一次,請不要加上秒數。」;寫的內容看不懂時,也不能儲存,會顯示「看不懂這個排程時間:「寫的內容」。」
  • 「時區」:填時區的名稱,例如 Asia/Tokyo。空著時,用「工作流設定」裡的「時區」;那裡也空著時,用 Asia/Taipei。

要注意的事:

  • 網站每分鐘檢查一次有沒有該啟動的排程,所以最短的間隔是一分鐘。
  • 排程只在工作流是「啟用中」時啟動。切到「未啟用」,會清掉下一次的時間;再切回「啟用中」,會重新排好下一次。
  • 排程啟動的執行,第一筆項目有 firedAt,大約是這次執行開始的時間。它也有 cron,但目前是空的。
  • 在執行紀錄裡,這些執行的來源是「排程」,觸發者也是「排程」。
  • 專案這一小時的執行次數已經到上限時,這一次排程會留下一筆失敗的執行,寫著擋下的原因。
  • 專案同時在跑的執行已經到上限時,這一次排程會直接跳過,不會留下任何一筆執行,下一次的時間也已經往後排好了。畫面上沒有任何地方會告訴你。

Webhook

「Webhook」觸發節點,在外部系統呼叫這個工作流自己的網址時,開始一次執行。網址在哪裡、要開哪一個開關、兩種回應模式、「回應 Webhook」、每一個狀態碼與每一個上限,都寫在 API 使用介紹,請看Webhook 觸發:用網址啟動工作流與Webhook 的回應、狀態碼與上限。

Webhook 啟動的執行,不會用釘選資料。所以想在切到「啟用中」之前先試,可以在 Webhook 節點上,釘選一筆像呼叫送來的項目,再按「執行」,請看釘選資料。這只在工作流裡沒有「手動觸發」時有用,因為有「手動觸發」時,「執行」不會從 Webhook 開始,請看上面的一個工作流,很多觸發。

子工作流

「執行子工作流」節點會執行另一個工作流,那一個叫做子工作流。子工作流要在它的「權限」加上這個工作流,不論它在哪一個專案,或是私人工作流;或是它的「權限」有「所有工作流」,而這個工作流在範圍裡:子工作流在專案裡時,是同一個專案的工作流;子工作流是私人工作流時,是它的擁有者所在的每一個專案的工作流,以及擁有者自己的私人工作流。工作流不會經過「所有工作流」呼叫自己。請子工作流的擁有者在它的權限管理加上這個工作流。

  • 「子工作流」:選要執行的工作流。選單只列出「權限」加上了這個工作流,或有「所有工作流」而這個工作流在範圍裡的工作流,照名稱排;在別的專案的,名字後面寫著那個專案的名稱,例如「名稱(專案名稱)」,私人工作流寫著「(私人)」。這個工作流自己,以及在垃圾桶裡的工作流,不會列出來。選單答的是這個工作流,不是你:你自己的工作流,「權限」沒有加上這個工作流時,也不會列出來。
  • 「等待子工作流完成」:預設是打開的。打開時,這個節點會等子工作流跑完,把子工作流的結果當成自己的輸出;關掉時,它只讓子工作流開始,然後把自己收到的項目原樣往下送。

子工作流從它的「子工作流觸發」開始;沒有「子工作流觸發」時,從它的第一個觸發節點開始。從「子工作流觸發」開始時,父工作流送來的項目,就是它的第一批項目。自己按「執行」試跑子工作流時,沒有父工作流,「子工作流觸發」會給出一筆空的項目。

  • 等子工作流的時候,父工作流的執行不算在專案同時在跑的數量裡。
  • 已經在這條呼叫鏈上的工作流,不能再被呼叫一次。一條呼叫鏈最多 5 層。
  • 被拒絕時,節點執行失敗,訊息依照這個順序,是其中一個:
    • 「子工作流節點還沒有選要呼叫哪一個工作流。」
    • 「找不到要呼叫的工作流(…),可能已被刪除。」:編號對不到任何工作流,或那個工作流在垃圾桶裡。
    • 「工作流「…」沒有開放給這個工作流。請它的擁有者在「權限」加上這個工作流。」:子工作流的「權限」沒有加上這個工作流,也沒有經過「所有工作流」開放給它;工作流呼叫自己時也是這一句。只把你自己加進它的「權限」沒有用。
    • 「工作流「…」已經在這條呼叫鏈上了,不能再呼叫一次。」
    • 「工作流呼叫層數超過上限(5 層)。」
  • 子工作流在它自己的專案裡執行,用的是它自己專案的上限;私人工作流用的是私人工作流的上限。每一次子工作流的執行,都算在它自己的每小時執行次數裡,也可能和其他執行一樣被擋下來。
  • 在子工作流的執行紀錄裡,這些執行的來源是「子工作流」,觸發者是呼叫它的工作流。
  • 不論子工作流是「啟用中」還是「未啟用」,它都會執行。
  • 「子工作流」記住的是那個工作流的編號。匯入到另一個地方之後,它可能指到別的工作流,或什麼都指不到,請看匯入。
  • 會等待的「執行子工作流」,不能用在「Webhook」設成「跑完再回傳資料」的執行、Agent 對話的執行,以及 AI 工具的執行裡。

Agent 對話

「Agent 對話」觸發節點,讓一個工作流代替一個 AI Agent 回答對話。它只有一個欄位「Agent」,列出你看得到的 AI Agent:你自己的,以及權限清單給你「檢視」或「編輯」的,不論在哪一個專案或是私人的。這個工作流所在地方的 AI Agent 排在前面,只寫名字;別的專案的 AI Agent,名字後面寫著它所在專案的名稱;私人 AI Agent 在不是私人的工作流上,名字後面寫著「私人」。私人工作流也一樣列出這些 AI Agent。欄位上方有一段藍色的說明。

  • 按「儲存」之後,而且工作流是「啟用中」時,有人在一段「對話」模式的 AI 對話裡傳訊息給這個 AI Agent,就會執行這個工作流,對話裡收到的回覆,是工作流的回答,不是 AI Agent 自己的回覆。只按「儲存」還不夠。
  • 工作流是「未啟用」時,AI Agent 照平常的方式回答。
  • 工作流的權限清單上要有這個 AI Agent,或有「所有 AI Agent」而這個 AI Agent 在它的範圍裡,工作流才會回答;沒有的話,AI Agent 照平常的方式回答。
  • 一個 AI Agent 只能由一個工作流回答,不論 AI Agent 和工作流各在哪一個專案。已經有別的工作流選了它時,儲存會被擋下。你打得開那個工作流時,寫著「「…」已經由自動化流程「…」回覆了。一個 Agent 只能有一個回覆流程,請先解除那邊的綁定。」;你打不開時,寫著「這個 AI Agent 已經由另一個工作流回覆了。一個 Agent 只能有一個回覆流程。」,這時請 AI Agent 的擁有者或那個工作流的擁有者解除那邊的綁定。
  • 選的 AI Agent 你看不到,例如它不存在、在垃圾桶裡,或權限清單沒有給你,儲存會被擋下:「節點「…」選的 AI Agent 找不到,或你沒有檢視它的權限。請改選一個你看得到的 AI Agent。」已經存好、而且沒有換掉 AI Agent 的節點,存檔時不會再檢查一次,所以可以編輯這個工作流、但看不到它的 AI Agent 的人,還是存得起來。
  • 只有在畫布上按「儲存」,才會讓工作流開始回答一個它還沒有在回答的 AI Agent,因為只有這時會做上面這兩項檢查。切換「啟用中」/「未啟用」,或儲存工作流的設定,不會讓它開始回答新的 AI Agent。例如另一個工作流原本回答這個 AI Agent、後來改選別的,這個工作流要再按一次「儲存」才會接手。
  • 用「建立複本」做出來的複本,「Agent」欄位是空的。你選好並儲存之前,它不會回答任何 AI Agent。
  • 只有和 AI Agent 的對話會啟動它,請看跟 AI Agent 對話。對話 app 裡的內部對話與客戶對話,不會啟動它。任務對話裡的訊息也不會啟動它;有工作流回答的 AI Agent,不能開始任務對話,請看任務模式。

這個觸發節點給出一筆項目,欄位有 message、messageId、conversationId、conversationTitle、agentId、sender、files、model 與 thinkingLevel。只跑這個觸發節點自己時(卡片上的「執行節點」,或設定視窗裡的「儲存並執行」),message 是「(範例)這個功能怎麼用?」;按上方列的「執行」跑整個工作流時,message 是空的。

用「SSE Agent」節點回答:它會把回答一邊產生、一邊送進對話。

  • 它的「對話」欄位,一開始就是 {{ $json.conversationId }}。
  • 它的「Agent」、「模型」與「思考層級」,第一個選項都是「跟著對話」,一開始就選它,也就是用這段對話本來的設定,請看動作節點。
  • 它問的 AI Agent,「Agent」是「跟著對話」時就是這段對話本來的 AI Agent,要在它的權限清單上開放「檢視」或「編輯」給這個工作流。沒有開放時,這一輪的回覆是一則一般的錯誤訊息,例如「抱歉,AI 服務暫時無法回應,請稍後再試。」,執行裡這個節點寫著「找不到這個 AI Agent,或它沒有開放給這個工作流。」
  • 它不會重試。已經送進對話的字,收不回來。

要注意的事:

  • 一次對話的執行,只有 60 秒,而且不能有會等待的節點。
  • 對話的執行,會算在專案每小時的執行次數裡,但不會因為這個上限被擋下來。專案同時在跑的執行已經到上限時,它會被擋下來:這一輪的回覆會是一則一般的錯誤訊息,例如「抱歉,AI 服務暫時無法回應,請稍後再試。」,不會說是因為上限。
  • 在執行紀錄裡,這些執行的來源是「對話」,觸發者是那個 AI Agent。

AI 工具

「AI 工具」觸發節點,讓 AI Agent 在回答到一半時,把這個工作流當成一個工具來用。這裡寫的是工作流這一邊。AI Agent 那一邊,例如誰可以用這個工具、AI 看到什麼、會被拒絕的情況,以及 AI 可能在一次回答裡用同一個工具好幾次,都寫在我的工作流,這裡不再重寫。

節點的最上面,是一段藍色的說明。下面的欄位:

  • 「工具代號」:一定要填。
  • 「工具說明」:寫給 AI 看的一句話,說什麼時候該用這個工具。
  • 「輸入參數」:每一列有「名稱」、「型別」、「說明」與「必填」。「型別」可以選「文字」、「數字」、「是否」、「選項」或「文字列表」;選「選項」時,還有「可選值」,用逗號分開幾個值,AI 只能送其中一個。

這些欄位都不能用運算式。

「工具代號」的規則:欄位下面寫著「5 到 15 個字,只能用小寫英文、數字和 -,例如 check-stock。在專案裡不能重複;私人工作流在同一個擁有者的私人工作流之間不能重複。模型看到的名字是 wfp_{專案代號}_{工具代號},私人工作流是 wfu_{個人代號}_{工具代號}。改代號可以,勾選的 agent 不會因此掉線。」

  • 代號不合規則時,儲存會被擋下:「節點「…」的工具代號「…」不能用。代號只能用小寫英文、數字和 -,例如 check-stock,5 到 15 個字。」底線(_)也不能用。
  • 同一個專案裡,別的工作流已經用了這個代號時,儲存會被擋下:「工具代號「…」已經被自動化流程「…」的節點「…」用了。同一個專案裡的工具代號不能重複,請換一個。」
  • 私人工作流的代號,只要在同一個擁有者的私人工作流之間不重複。重複時,儲存會被擋下:「工具代號「…」已經被你的私人工作流「…」的節點「…」用了。私人工作流之間的工具代號不能重複,請換一個。」
  • AI 看到的工具名稱,是 wfp_{專案代號}_{工具代號};私人工作流是 wfu_{個人代號}_{工具代號},用的是工作流擁有者的個人代號。請看專案代號與個人代號。
  • 改了工具代號之後,已經勾了這個工具的 AI Agent,還是有這個工具。改了專案代號或個人代號,這些工具的名稱也會跟著改,勾了它們的 AI Agent 也還是有這些工具。
  • 舊的版本裡,工具代號有底線(_),或少於 5 個字、超過 15 個字時,那個版本不能還原,儲存會被擋下,寫著上面那一句「不能用」。請先把代號改掉。
  • 按「儲存」之後,這個工具會出現在工作流的「權限」加上的每一個 AI Agent 的「工具」分頁的「我的工作流」裡;「權限」有「所有 AI Agent」時,範圍裡的每一個 AI Agent 也一樣,請看權限管理;那個 AI Agent 加入這個工具之後,就可以用它。
  • 同一個畫布上有兩個「AI 工具」節點,就是兩個工具。
  • 節點的設定視窗會寫著有幾個 AI Agent 可以用它,算的是加入了這個工具、而且工作流的「權限」有加上,或經過「所有 AI Agent」開放的 AI Agent:「還沒有 AI Agent 可以呼叫這個工具。先在 ⋯「更多」的「權限」加上 AI Agent,再到那個 AI Agent 的「工具」分頁加入這個工具。」或「目前有 … 個 AI Agent 可以呼叫這個工具。」

不論工作流是「啟用中」還是「未啟用」,這個工具都能用。 不想讓 AI Agent 用它,請在工作流的「權限」拿掉那個 AI Agent,「權限」有「所有 AI Agent」時也要拿掉那一列,不然它範圍裡的每一個 AI Agent 都還能用;或到每一個加入了它的 AI Agent 的「工具」分頁,把它拿掉;或是刪掉這個「AI 工具」節點,再按「儲存」。

用「回應 AI 工具」節點決定 AI 拿回什麼:「回應方式 (Respond With)」可以選「純文字」、「JSON」、「第一筆輸入項目」或「全部輸入項目」。一次執行走過兩個「回應 AI 工具」節點時,最後走過的那一個算數。

要注意的事:

  • 一次 AI 工具的執行,只有 600 秒,而且不能有會等待的節點。要呼叫另一個工作流,請用「執行子工作流」,並把「等待子工作流完成」關掉。
  • 只有「輸入參數」裡寫了的參數,會進到這次執行。自己試跑時,這個觸發節點會照「輸入參數」給出一筆範例的項目。
  • AI 工具的執行不能重試。按「重試」會被拒絕:「這次執行是 AI agent 當場叫的工具,答案要立刻回給它。現在重試沒有人在等那個答案,所以不能重試。請直接請 AI 再問一次。」
  • 在執行紀錄裡,這些執行的來源是「AI 工具」,觸發者是在對話裡的那個人。
  • 用「建立複本」做出來的複本,沒有「工具代號」。你填好之前,它不會變成工具。