Day 01 我們看了一個 agent 怎麼死;Day 02 畫了地圖(驗鈔機、行車記錄器、安全帶)。
今天開工。但在蓋「驗鈔機」之前,得先有那台出事的機器——
把案發現場原樣重建。
為什麼不直接從新 workflow 開始?因為接下來三十天所有的量測、回歸、紅隊,
都要打在同一個靶上。案例集裡的每一條失敗,都必須能在同一個 workflow 上重放。
複現,是評測的前提。 今天這篇的所有檔案都附在文末,你要做的只是照抄。
選擇一:Docker(我推薦)。一行起動:
docker run -d --restart unless-stopped --name n8n \
-p 5678:5678 -v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n
好處:升級是換容器、出事能回滾、資料掛在 volume 裡跟系統分離。
對「之後每天都要動這個環境」的我們來說,這三件事遲早救命。
選擇二:npm 直裝(npm install -g n8n && n8n start)。輕巧,但升級相依性自己在意。
兩個硬體建議:Pi 4 4GB 起跳(n8n 本體不重,但同時開瀏覽器編輯介面+幾個工作流時
2GB 會喘);用 USB SSD 而不是 SD 卡——我們接下來 30 天會大量寫執行紀錄,
SD 卡的寫入壽命撐不完這個系列,別問我怎麼知道的。
一個安全提醒,之後紅隊週會再回來講:樹莓派上的 n8n 不要直接暴露到公網。
遠端要用就走內網或 SSH 通道。「網路存取必須主動論證,而不是預設給予」——
這句話是英國 AISI 今年出事故報告後的第一條建議,家用環境同樣適用。
Google Drive Trigger 節點,
設定「監看特定資料夾的新檔案」。兩個常見坑:
Drive 節點(download)
把檔案抓成文字,再接 Basic LLM Chain,叫模型抽出三個欄位:日期、類別、50 字摘要,只輸出 JSON。
兩個提醒。第一,prompt 裡我刻意寫了「看不懂就 null,不要猜」——這句話是 Day 01
第二場死亡的直接反應,先寫進去,D05 量測時我們來看它到底有沒有用。
第二,LLM 節點換供應商很容易(這是 n8n 的優點),但換模型=換行為,
同一份 prompt 在不同模型上的輸出分佈完全不同。Day 02 說的「改動即回歸」,
最大的改動就是換模型——先把這顆雷種在心裡,D15 拆。
Sheets 節點(append),
欄位:檔名、日期、類別、摘要、處理時間。這張試算表不只是輸出——
從 D04 開始,它同時是黃金資料集的儲存位址。Google 試算表當資料集有個官方好處:
n8n 的 Evaluations 功能可以直接拿它當資料源,不用另外接。
① Workflow JSON v1(day-03-workflow-v1.json):
n8n 匯入即用。匯入後三件事:重選你的 Google 憑證、換成你的資料夾與試算表 ID、
LLM 節點接上你的 Chat Model。模型隨便你選——系列後面會換著測,現在用順手的。
② 測試檔案包清單(day-03-test-files.md):
15 個檔案的規格——10 個正常(PDF/Word/文字,日期形狀規矩)+
5 個刁鑽(Excel 序號日期 45723、純掃描 PDF、加密 PDF、0 位元組空檔、10MB 大日誌)。
刁鑽組就是 Day 01 三場死亡的重演劇場,也是 D04 黃金資料集的第一批種子。
跑法:先跑正常組——十件全部順利(如果連這裡都出事,恭喜,你比我當年快一天找到問題)。
再丟刁鑽組,每件記下實際行為,照實寫進試算表,包括「編了個日期」這種丟臉的。
Day 04:收集屍體。把這 15 件(尤其刁鑽組)的結果整理成黃金資料集——
帶分母、帶負向案例、放在試算表裡,成為後面 26 天所有量測的基準。
今天的目標只有一個:讓你的環境跟我的環境,跑得出同一個結果。
從明天開始,我們量測的才是同一個東西。