iT邦幫忙

2026 iThome 鐵人賽

DAY 29
0
AI 自動化

30 天打造我的 AI 自動化工作流系列 第 29 篇

Day 29|把前面全部組起來!完成我的 AI Agent 小專案

  • 分享至 

  • xImage
  •  

不知不覺已經來到 Day 29。

前面幾天開始接觸 AI Agent 之後,陸續加入了:

Chat Model

Tools

Google Sheets

Memory

Webhook

Authentication

每一天都是單獨測試一個功能。

所以今天不打算再學新的 Node,而是把前面做過的東西全部整理起來,完成一個比較完整的小專案:

AI 訊息處理 Agent

希望外部使用者可以把訊息傳進來,Agent 根據內容決定怎麼處理,需要時使用 Tool,最後再把結果回傳。


今天要完成什麼?

今天希望完成的架構是:

外部使用者
    ↓
HTTP Request
    ↓
Authentication
    ↓
  Webhook
    ↓
 AI Agent
 ↙   ↓    ↘
Model Memory Tools
             ↓
       Google Sheets
    ↓
 Response

簡單來說,就是:

外部系統 → 驗證 → Agent → 記憶 / 工具 → 回傳結果

這也是目前 29 天學習內容的一次總整理。

https://ithelp.ithome.com.tw/upload/images/20261006/20178835jkKru6RpnD.png

圖 1 AI 訊息處理 Agent 完整 Workflow


Step 1:先整理使用情境

在開始接 Node 之前,我先決定這個 Agent 到底要做什麼。

今天的小專案設定成:

可以接收外部訊息的 AI Agent

使用者可以詢問一般問題,例如:

請用一句話介紹 AI 自動化。

也可以提供資料:

姓名:Student
主題:AI Automation
狀態:Learning

再要求:

幫我把剛剛的資料記錄下來。

這時候 Agent 就需要:

理解問題
↓
參考 Memory
↓
判斷是否需要 Tool
↓
需要記錄 → Google Sheets
↓
完成後回傳結果

這樣就把前面幾天的功能真正放進同一個情境。


Step 2:Webhook 當作系統入口

首先還是從 Webhook 開始。

外部程式可以送:

{
  "sessionId": "demo-user-001",
  "message": "請用一句話介紹 AI 自動化"
}

這裡保留兩個資料:

sessionId
message

message 是使用者真正想問的內容。

sessionId 則是為了後面的對話 Session / Memory 概念。

所以資料進入:

External Request
↓
Webhook
↓
message
↓
AI Agent

https://ithelp.ithome.com.tw/upload/images/20261006/20178835EuTni14p0X.png

圖 2 Webhook 接收到外部傳入的訊息


Step 3:保留昨天的驗證

Day 28 最重要的事情就是:

不能讓任何知道 Webhook URL 的人都直接使用 Agent。

所以今天正式整合時,也保留 Authentication。

概念:

Request
↓
驗證資訊
↓
Webhook
↓
驗證成功
↓
AI Agent

如果驗證失敗:

Request
↓
Authentication ✕
↓
拒絕

如果成功:

Request
↓
Authentication ✓
↓
AI Agent

這也讓今天的小專案不只是:

「功能可以跑。」

而是開始考慮:

「誰可以使用?」


Step 4:接上 AI Agent + Chat Model

通過 Webhook 之後,就把 message 交給 AI Agent。

例如收到:

{
  "sessionId": "demo-user-001",
  "message": "什麼是 API?"
}

Agent 實際要處理的是:

什麼是 API?

所以流程變成:

Webhook
↓
取得 message
↓
AI Agent
↓
Chat Model
↓
產生回答

這就是 Agent 最基本的能力。

https://ithelp.ithome.com.tw/upload/images/20261006/20178835M0eDed8VtS.png

圖 3 Webhook 將訊息交給 AI Agent 處理


Step 5:加入 Memory

接著把 Day 26 的 Memory 放回來。

因為如果沒有 Memory:

第一句:
我的專案叫 AI Automation。

第二句:
我的專案叫什麼?

Agent 不一定知道第二句是在問前面的內容。

所以今天保留:

AI Agent
   │
 Memory

再搭配前面傳入的 Session 概念:

sessionId = demo-user-001

讓同一段對話可以使用對應的上下文。

概念:

demo-user-001
↓
第一句
↓
Memory
↓
第二句
↓
Agent 參考前面的對話

這樣 Agent 就不只是單次問答,而開始比較像真正的連續對話。


Step 6:加入 Google Sheets Tool

接著把 Day 25 做過的 Google Sheets Tool 放回來。

表格先準備:

NameSubjectStatus

接著對 Agent 說:

姓名 Student,
主題 AI Automation,
狀態 Learning。

下一句:

幫我把剛剛那筆資料記錄下來。

這時候希望 Agent 可以:

取得 Memory
↓
找到前面的資料
↓
理解「記錄」
↓
選擇 Google Sheets Tool
↓
新增資料

最後 Google Sheets 出現:

NameSubjectStatus
Student AI Automation Learning

https://ithelp.ithome.com.tw/upload/images/20261006/201788358m0TgiDzDR.pnghttps://ithelp.ithome.com.tw/upload/images/20261006/20178835lP9K3TxpTx.png

圖 4 AI Agent 使用 Google Sheets Tool 成功新增資料


Step 7:把結果回傳出去

現在外部資料已經:

進入 Webhook
↓
通過驗證
↓
交給 Agent
↓
Agent 使用 Memory / Tool

最後還差:

Response

例如成功記錄資料後,可以回傳類似:

{
  "reply": "資料已成功記錄。"
}

如果只是一般問題:

{
  "reply": "API 是讓不同軟體系統彼此交換資料與功能的一種介面。"
}

這樣才完成完整的一來一回:

外部 Request
↓
n8n
↓
AI Agent
↓
處理
↓
Response
↓
外部系統收到結果

https://ithelp.ithome.com.tw/upload/images/20261006/20178835eoRxvq11Gc.png

圖 5 外部系統成功收到 AI Agent 的回傳結果


Step 8:開始完整測試

整合完之後,最重要的不是看 Workflow 很漂亮。

而是:

實際測試。

今天可以準備四組測試。

測試一:一般問答

傳入:

{
  "sessionId": "day29-demo",
  "message": "請用一句話介紹 AI 自動化"
}

預期:

Authentication ✓
↓
Webhook ✓
↓
AI Agent ✓
↓
Response ✓

這次不需要使用 Google Sheets。


測試二:Memory

第一句:

我的專案名稱叫 AI Automation。

第二句:

我的專案叫什麼?

如果使用相同 Session,而且 Memory 設定正確,Agent 應該可以利用前面的對話回答。

這是在測:

Agent 有沒有記住上下文。


測試三:Tool

先提供:

姓名 Student
主題 AI Automation
狀態 Learning

再說:

幫我把剛剛那筆資料記錄下來。

接著直接去 Google Sheets 檢查。

這是在測:

Agent 有沒有真的執行 Tool。

不要只看 Agent 說:

「已完成。」

一定要確認 Sheets 真的多了一列。


測試四:Authentication

最後故意使用錯誤的驗證資訊。

例如:

X-API-Key: WRONG_KEY

預期:

Request
↓
驗證失敗
↓
Agent 不應該執行

出錯時不要整個重做

今天把所有功能接在一起後,Workflow 明顯比前面複雜。

如果出錯,我會重新使用 Day 18 學到的方法:

Webhook 有收到嗎?
↓
JSON 結構正確嗎?
↓
Authentication 有通過嗎?
↓
Agent 有收到 message 嗎?
↓
Memory 的 Session 正確嗎?
↓
Agent 有呼叫 Tool 嗎?
↓
Sheets 有新增嗎?
↓
Response 有回去嗎?

一個 Node 一個 Node 看。

而不是看到:

Workflow Failed

就開始把整條 Workflow 拆掉。

這個除錯方式反而是這 29 天裡面,我覺得最實用的習慣之一。


回頭看 Day 6

今天做完之後,我回去看第一次操作 n8n 的 Workflow。

Day 6 當時只有:

Manual Trigger
↓
建立測試資料
↓
Output

那時候只是在理解:

Trigger 是什麼?

Node 是什麼?

資料怎麼往下傳?

現在 Day 29 已經變成:

External System
       ↓
Authentication
       ↓
    Webhook
       ↓
    AI Agent
   ↙    ↓     ↘
Model Memory  Tools
              ↓
        Google Sheets
       ↓
    Response

其實每一個東西都不是突然出現的。

Webhook 是 Day 10 學的。

Google Sheets 是 Day 11 開始使用的。

Authentication 是 Day 21、Day 28 認識的。

Agent 是 Day 23 開始的。

Tools 是 Day 24、Day 25。

Memory 是 Day 26。

Webhook + Agent 是 Day 27。

最後今天才全部組起來。


這個專案目前還不完美

雖然今天終於把整個小專案完成,但我覺得它還不能算真正可以直接上線的正式產品。

例如還有很多可以改善的地方:

更完整的錯誤處理

更嚴格的權限控制

Request 數量限制

更可靠的資料驗證

Agent Tool 權限管理

更長期的 Memory 設計

成本與 Token 使用量控制

更完整的前端介面

所以今天的成果比較像:

一個 AI Agent Prototype。

但對我來說已經很有意義。

因為這不是單純問 ChatGPT 一個問題,而是把 AI 放進一個可以真正接收資料、執行工具和回傳結果的 Workflow 裡。


今天最大的收穫

Day 29 最大的感覺不是:

「我又學會一個新 Node。」

因為今天其實幾乎沒有學新的東西。

真正的收穫是:

開始知道怎麼把不同功能組成一個完整系統。

Webhook 自己沒有 AI。

AI Agent 自己沒有外部入口。

Memory 自己不會執行任務。

Google Sheets 自己也不會理解自然語言。

但是把它們組合起來:

Webhook
+
Authentication
+
AI Agent
+
Memory
+
Tools
+
Response

就變成了一個可以實際運作的 AI 自動化 Prototype。


今日小結

今天完成了這 29 天以來最完整的一個 Workflow:

AI 訊息處理 Agent

它可以做到:

接收外部 Request

驗證 Request

將訊息交給 AI Agent

使用 Memory 保留對話上下文

根據任務選擇 Tool

將資料寫入 Google Sheets

將處理結果回傳給外部系統

從 Day 1 還在問:

「AI 自動化到底是什麼?」

到現在已經真的做出一個小型 AI Agent。

明天就是最後一天。

Day 30 不打算再加任何功能。

我要回頭看看:

這 30 天到底學了什麼?

哪些地方最容易卡住?

AI 自動化和我一開始想的一不一樣?

這個 Agent 之後還可以怎麼繼續做?


上一篇
Day 28|我的 AI Agent 不能誰都能用!替 Webhook 加上基本的安全與驗證機制
下一篇
Day 30|AI 自動化 30 天完賽!從第一次 Workflow 到自己的 AI Agent
系列文
30 天打造我的 AI 自動化工作流 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言