跳至主要內容

里程碑

ZeroLog零感記帳-n8n+LINE AI記帳小精靈

KU @hirono-ku發布於

ZeroLog 零感記帳|用 n8n + LINE 做一個住在手機裡的 AI 小精靈


作品是什麼

我做了一個叫 ZeroLog | 零感記帳 的 LINE 記帳小精靈。

你不需要打開任何 App,只要在 LINE 聊天室說一句「我今天花了 180 吃午餐」,它就會自動把日期、金額、類別、品項寫進試算表,方便到讓你再也沒有藉口忘記記帳!品項分類是 AI 自己判斷的,例如你說「午餐」,它知道是「餐飲」,不是靠關鍵字比對。

除了記帳,它還會:

  • 每天餐費超過預算 300 元的 4/5,晚上主動提醒你
  • 每月 1 號統計上個月各類花費與占比,超過 10000 元發警示並列出明細
  • 單數月 25 號早上提醒你去對發票

這些是我之前在記帳的時候經常會使用到的功能,方便我管理長期的消費習慣~
整個專案跑在 n8n + LINE Messaging API + Google Sheets + OpenAI/Gemini 上,共四條 workflow,沒有寫任何後端程式碼。


互動示範

📸【三輪對話截圖(你好 / 我是阿谷 / 考考你我叫什麼)—— 證明人設和記憶都有效】

📸【「我今天花了 55 吃早餐」+ 試算表長出一列的並排截圖】

📸【每日餐費額度警示截圖(含超支警示和明細)】

📸【月統計推播截圖(含超支警示和明細)】

📸【發票兌獎提醒截圖】


架構說明

系統由四條 workflow 組成。

主流程(聊天記帳)

LINE 訊息進來之後,先通過 Filter 擋掉 LINE 的驗證封包,Set 節點整理出 replyToken、userId、userText 三個欄位,接著呼叫 LINE 的 loading API 讓使用者看到打字動畫,然後才進 AI Agent。

AI Agent 底下掛了三個子節點:主模型 OpenAI gpt-5-mini、備援模型 OpenAI gpt-4o-mini(主模型失敗時自動切換)、Simple Memory(以 userId 為 key 存對話記憶)、以及 Google Sheets Tool(命名為「記一筆帳」,AI 自己決定什麼時候呼叫)。

圖片說明

三條排程 workflow

📸 workflow1: 預算提醒在每天晚上 8 點跑,讀今日餐飲消費,超過 240 元傳訊息提醒,沒超過靜默結束。

📸 workflow2:月統計在每月 1 號早上跑,統計上個月分類占比。

📸 workflow3: 發票提醒用 Cron expression 0 9 25 1,3,5,7,9,11 *,只在單數月 25 號觸發。

製作過程

這是我第一次做超過兩個節點的 n8n 專案。做完之後覺得,自動化工具的學習曲線很特別:前 20% 的時間在搞懂概念,後 80% 的時間在跟各種bug纏鬥。

Day 1:從零到能收發訊息

第一關是讓 LINE 和 n8n 互通。這裡有幾個我採到的坑先幫大家避雷:
1.LINE 官方帳號要先關掉自動回應,不然 bot 和罐頭訊息會同時回覆
2.Webhook 節點要設成 Respond Immediately,LINE 要求極短時間內收到 200,AI 跑多久都不影響
3.n8n 的 Test URL 每次只監聽一次,驗證封包搶先吃掉之後,手機傳的訊息就沒人接了。
4.n8n 的 Filter 節點用陣列和字串型別嚴格比對,選錯型別條件永遠是 false,流程靜默中斷,沒有任何錯誤提示,只是什麼都沒發生。「不報錯的失敗比有紅字的更難查」,這是 Day 1 最值錢的一課。

📸【第一次成功回覆「我收到了:哈囉」】

Day 2:複讀機升級成 AI 小精靈

接上 AI Agent 之後,最容易漏的設定是 Source for Prompt 要改成 Define below——預設值是給 n8n 內建聊天視窗用的,LINE 來的訊息根本進不去。

把 Google Sheets 做成工具掛給 AI,而不是用 If 節點寫關鍵字判斷。AI 自己從使用者說的話裡判斷類別、日期、金額,不需要自訂太多繁瑣的規則。

最有趣的坑是 Duplicate key '_':四個欄位都設成「交給模型決定」,但沒填 Description,n8n 讓它們共用同一個預設 key。AI 填一個值,四格全部收到同一串 JSON。設定完全正確,問題藏在機制裡。

📸【試算表三列進化史:整包 JSON / 逗號字串 / 正確資料】

從這張圖可以看到整個除錯過程:第一次每格都是 JSON,第二次是逗號分隔字串,第三次才對。AI 的判斷從第一次就是正確的,問題一直在「資料怎麼落地」,不在模型。

Day 3:從能跑到穩定

一開始我的AI agent 模型是掛Gemini,但是連續幾次測試系統都回覆模型忙碌中請稍後再嘗試,後來我發現除了主模型外還可以掛一個備用模型,所以我就先掛了gemini另一個模型,結果不管是主模型還是備用模型竟然都失敗,我只好轉向使用openai 模型再嘗試一次就成功了。這件事告訴我們,保險起見主模型最好掛最穩定的ai model,備用模型最好選擇不同家的,這樣才不會兩個一起掛掉。

重試機制也有代價:Gemini 持續故障時,重試三次只是讓使用者等更久,而且 LINE 的 replyToken 只有效一分鐘,等到第三分鐘回覆早就送不出去了。最後把主模型換成 OpenAI,回應時間從三分鐘降到五到十秒。

圖片說明

心得

做完這個專案,我認為最有價值的不是哪個節點怎麼設定(雖然也很重要),而是兩件事:

遇到問題時先去哪裡找答案

這幾天踩了 21 個坑,幾乎每一個都是靠以下SOP慢慢debug:
去 Executions 看那筆紅色的紀錄,讀錯誤訊息,提示直接告訴你錯誤的點,例如:有一次四個字 Key parameter is empty 就是你要修正的地方。

從能動到可用之間的距離

功能做出來是一回事,讓別人用起來不壞是另一回事。重試、備援、打字動畫——這些東西在 demo 裡可能看不出來,但這些都是在我多次嘗試後的心得,不管是ai agent的外部服務錯誤,還是等待回覆時間的漫長等待,這些小巧思都是我反覆試驗的結晶。


工具與資源

  • n8n Cloud(自動化平台)
  • LINE Messaging API
  • Google Sheets API
  • OpenAI API(gpt-4o-mini)
  • Google Gemini API(gemini-3.8-flash,備援)

製作期間:2026/10/12 – 2026/10/15
P.S.有興趣的小夥伴們可以查看我詳細的開發記錄一步一步實做,裡面也有詳細的採坑記錄和解決方法。
歡迎試用我的小精靈~
🙌零感記帳官方帳號QR code

1 個愛心0 則留言

登入並驗證手機後就能留言。登入