Issue Call n8n 工作流程工具

我正在創建這個工作流程,它將在代理內部作為工具調用另一個流程:

編輯字段

子工作流程沒有調用,並且沒有顯示值

你好 @testn8n_Santiago,

總體上來說,你的設置看起來是正確的。有幾個地方需要檢查:

  1. 在 Sub-Workflow 工具節點中(AI Agent 中的「隨機數字生成器」工具):「工具描述」欄位中是否清楚說明了 Agent 應該如何使用這個工具?Agent 會根據這個描述來決定是否調用該工具。描述太含糊通常會導致 Agent 直接忽略該工具。
  2. 在 Sub-Workflow 本身中:「When Executed by Another Workflow」觸發器是否期望某些特定的輸入參數?如果有的話,這些參數必須與 Agent 作為工具輸入傳遞的內容完全相符。
  3. 你能否單獨測試 Sub-Workflow,也就是直接使用「Execute Workflow」節點和測試輸入來調用它,而不涉及 AI Agent?這樣可以判斷是 Sub-Workflow 本身有問題,還是問題出在與 Agent 的工具連接上。

如果你願意的話,也可以分享一下 AI Agent 系統提示詞的內容,這往往有助於理解為什麼 Agent 不會調用某個工具。

在 Sub-Workflow Tool 節點(AI Agent 中作為工具的「Random Number Generator」)中,我有這個描述:

在 Sub-Workflow 本身中:觸發器「When Executed by Another Workflow」是否需要特定的輸入參數?如果是的話,它們必須與 agent 提供的 Tool-Input 完全匹配。

這是 system prompt

  • 一定要使用工具
  • 永遠不要手動建立數字
  • 傳遞以下參數:
    • min: 1
    • max: {{ $json.max_random_number }}

只返回數值結果。

我也分享 JSON

WSANTIAG_Llamada de Agentes (1).json (5,9 KB)

你好 @testn8n_Santiago

感謝提供 JSON 檔案,現在問題很清楚了。有兩個問題:

  1. 工具工作流程呼叫自己。 在「Random Number Generator」工具節點中,workflowId 指向正是這個工作流程(x2ClIhsa1nxXALcp),而不是指向一個獨立的子工作流程。該工具應該指向一個獨立的工作流程,該流程只能透過「When Executed by Another Workflow」啟動,並包含程式碼節點。按照目前的設定方式,當工具被呼叫時,整個工作流程會重新啟動,包括 Manual Trigger 和 Edit Fields,這不是預期的行為。
  2. matchingColumns 包含「hola」,這個值不符合結構描述(結構描述只定義了 max_random_number)。這可能是測試時留下的殘留內容,應該刪除或改正為 max_random_number

解決方案:將子工作流程(「When Executed by Another Workflow」+ 程式碼節點)分離成一個獨立的單獨工作流程。儲存它、複製其工作流程 ID,然後在主工作流程的工具節點中指向這個新 ID,而不是指向自己。

嗨 Rene

我已經提出了建立兩個工作流程的建議:

在 Random Number Generator 的輸出中產生了這個錯誤。
[

{

“response”: “There was an error: \“Workflow is not active and cannot be executed.\””

}

]

現在我分享這兩個 JSON 格式的工作流程

SubFlujo.json (1,5 KB)

WSANTIAG_Llamada de Agentes.json (4,3 KB)

嗨Santiago,

分成兩個工作流是正確的。錯誤很簡單明瞭:SubFlujo已保存但未激活(JSON中的"active": false)。

要修正這個問題:在n8n中打開SubFlujo,然後激活編輯器右上角的「Active」開關。Tool Workflow必須處於活動狀態,才能讓其他工作流調用它。即使你手動執行來測試,那也不算是對外部調用的「活動」。

激活後,重新執行AI Agent應該就能正常工作了。

1個讚