我要求它調查一個錯誤,然後它告訴我並直接將工作流改成了另一個損壞的狀態…
由於缺少還原按鈕,我要求它還原更改,但每次都變得更糟,刪除了我之前創建的更多程式碼…
這些程式碼實際上也是由 n8n 建立的,但卻沒有按預期工作…
開啟 n8n 工作流程歷史記錄
如果您計劃使用 n8n 的 AI 功能,您必須依賴原始碼控制或手動備份。
如果您使用 n8n Cloud 或 Enterprise:請確保在您的設定中啟用工作流程歷史記錄。這會在每次保存或修改工作流程時自動建立版本和快照,讓您可以一鍵回復到 10 分鐘前的版本。
如果您是自託管:在 n8n 中設定 Git 整合。這會將您的工作流程 JSON 推送到私人 GitHub/GitLab 儲存庫。如果 AI 破壞了您的工作流程,您可以簡單地放棄本機變更或拉取最後一個乾淨的提交。
您也可以使用「複製」安全網
在您將任何提示交給自主代理「調查錯誤」之前,養成複製目前進度的習慣:
前往工作流程的右上角菜單,然後點擊「匯出」。將 JSON 檔案本機保存。
或者,選取所有工作中的節點,複製它們,然後將其貼到空白的便箋工作流程或文字編輯器中作為快速備份。
使用 AI 的最佳實踐:您要麼必須隔離它,讓它編輯和修復單獨於您主要工作流程之外的工作流程中的錯誤,然後複製修復和編輯,或者您可以要求它只「在聊天視窗中提供更新的 JavaScript/Python 程式碼。請勿直接修改我的畫布。」,像這樣的提示,然後您可以根據您的審查添加節點。希望這對您有幫助。
我認為你應該在 AI 改變你的工作流程之前先保存/下載你的工作流程(預測)。
不應該有一個按鈕:
還原到上一個狀態?!?
如果你在 n8n 中設定了 Git 整合,或在使用 n8n cloud 時在設定中啟用工作流程設定,你可以輕鬆將其還原。你是否設定了其中任何一個?
這是應該整合到AI功能中的東西
嘿,
感謝你的建議!不過,我其實初衷並不是想做任何改動…
我的腳本出錯了,我想了解發生了什麼,然後點擊了「用 AI 解釋」按鈕,它自動發送了一條訊息給我。
然後它為我解釋了這個錯誤,我以為它只會解釋給我,沒想到它還直接幫我修復了…
版本歷史是一個不錯的工具,可以還原這些改動,但在那裡:
如果 Cmd+Z 能用的話,那太棒了,不過我之前不知道它對於我沒有做的改動也能起作用。
Dennis
嗨 @Dennis_Kugelmann,早安!
我理解你的沮喪,看到我們的工作被改動卻沒有徵求同意確實令人頭疼。你的這個案例讓我思考我們應該如何謹慎對待人工智能。
n8n 人工智能可以協助我們,但使用它的責任應該落在我們身上,也就是說,使用該工具的用戶需要知道如何駕馭這個來幫助我們的工具,如果不知道如何使用,就像任何工具一樣,會帶來很多麻煩。
只是要澄清一下,你的想法很棒,但這是一項應該在「功能請求」類別中說明的功能,而不是 n8n 工具的缺陷
![]()
現在有個實用的提示:在提示 AI 之前,只選擇你想要它修改的特定節點,然後將你的請求框架化為「只修復選定的節點」或「只重寫名稱為 X 的代碼節點」。當你給予 AI 明確的邊界時,它更可能保持範圍限制。此外,如果你使用 n8n Cloud,工作流歷史記錄會在每次儲存時保存快照 — 所以在 AI 編輯後按 Ctrl+Z,然後立即儲存,可以在歷史記錄中獲得乾淨的還原點。
這是可能發生最令人沮喪的事情之一,不幸的是,這是讓 AI 編輯即時工作流程而缺乏適當版本歷史記錄的已知限制。
有幾件事值得往後牢記:
在要求 AI 調查或修復任何東西之前,先複製工作流程。這樣無論 AI 對原始工作流程做什麼,你總是有一個乾淨的副本可以回退。
當 AI 開始進行更改並進一步破壞事情時,停止要求它還原,它沒有真正記憶原始樣子,每次「還原」嘗試都只是另一個猜測,會讓事情變得更糟,如你所見。
如果你仍然有執行歷史記錄,打開先前成功的執行,並使用每個節點的輸入/輸出數據來手動追蹤 AI 接觸之前代碼在做什麼。
對於你試圖修復的實際錯誤——無法分配給唯讀屬性名稱(Cannot assign to read only property name),這通常意味著代碼中某個地方正在直接修改內置的 JavaScript 對象屬性。修復方法是先建立對象的副本,然後再修改它,而不是就地編輯它。
往後,把 AI 助手視為顧問而非編輯,要求它解釋什麼出了問題並建議修復方案,然後自己進行更改,這樣你就能保持對工作流程中實際更改內容的控制。