嗨 n8n 社群,
我正在使用 Agent Builder(不是 AI Agent 工作流節點),並將需要在執行前獲得批准的工具連接到我的代理。
當代理請求批准時,訊息只顯示它將執行的工具,但不顯示它實際上將更改的內容(例如,工具將使用的特定參數或值)。
我的需求: 一種在 Agent Builder 中自訂批准訊息的方式,使其顯示更多背景資訊——特別是工具即將使用的參數/值——這樣我可以在批准或拒絕之前做出知情的決定。
問題:
- 目前是否有辦法在 Agent Builder 中自訂批准訊息的內容?
- 如果沒有,這是否可能被新增為一項功能?
謝謝!
嘿 @Wildflower_Studio 歡迎來到 N8n 社群,
不是訊息文本本身。它已被修復(「代理想要執行 X 工具。」),而每個工具的批准設置只是一個開關。卡片可以顯示的是呼叫的參數,而這部分剛剛變更了。
在目前穩定的 2.42 版本中,代理構建器聊天中的批准卡片上的詳細資訊框只包含模型傳入工具的內容,因此其字段在配置中設置的工具只會顯示其名稱。在 2.43 版本(目前在測試版軌道上)中,基於節點的工具卡片會顯示節點配置的參數,並填入模型的值,加上原始輸入,這樣你就可以在批准前看到它將要變更的內容。該版本還新增了「允許此工作階段」選項。
通過 Slack、Telegram 或 Linear 發出的批准即使在 2.43 中也只顯示工具名稱,所以這部分會需要功能請求。
所以我想我得提出功能請求?
如你所見,在 Telegram 機器人聊天中,參數顯示得不夠好。
核准卡文字是固定的,所以功能請求是正確的方向,但你不必等待:將核准本身作為代理程式呼叫的工具。公開為「呼叫 n8n 工作流程工具」的子工作流程將提議的參數作為其本身的引數,通過 Telegram 節點的傳送並等待回應(核准)操作在你控制的訊息範本中將它們發送給你,並將已核准/已拒絕傳回給代理程式。由於訊息是你的節點,你可以在文字中取得確切的值,並且可以使用代碼節點將它們呈現為可讀的鍵/值行,而不是原始 JSON。權衡是它取決於模型在正確時刻呼叫工具,所以保持內建的每個工具核准開啟作為備用,並在代理程式的系統提示中陳述它在任何寫入工具之前必須呼叫核准工具。
@Wildflower_Studio 你的螢幕截圖顯示了 Airtable_WRITE_revert_action,但沒有顯示它將變更哪些記錄或值。如果你嘗試工作流程解決方案,我會將核准和實際寫入保留在同一個工具內。一個返回 approved: true 給代理的獨立核准工具無法確保其下一個工具呼叫會使用你核准的值。
對於 Agent Builder,這意味著將工作流程公開為動作工具。它將是自訂核准流程,而不是變更現有 Telegram 卡片的方法。
在該工作流程內,我會使用此序列:
- 驗證提議的動作並在請求 ID 下儲存一份固定副本。
- 從該副本建立 Telegram 訊息:動作、目標記錄 ID 和將變更的欄位值。保持核准目的地由工作流程配置,而不是由模型提供。
- 使用傳送並等待回應搭配核准回應類型。設定等待限制,並僅在明確核准時繼續寫入;拒絕或逾時必須結束該路徑。
- 套用儲存的值並將結果傳回給代理。不要讓相同寫入工具的另一個無保護版本可供其使用。
如果有人變更了提議的值,需要新的核准。
先在你的 n8n 版本上用虛擬數據測試:核准對 A 的更新、確認只有顯示的變更到達 A,並檢查代理在等待後收到結果。然後嘗試將該核准用於 B:B 應保持未變動。拒絕或讓請求逾時應該不會導致任何寫入。
該 Airtable 動作接受哪些輸入?那些是我會對應到核准訊息中的值。