昨天我們讓 AI Agent 接上 Google Sheets Tool。
當我輸入:
「幫我記錄:姓名 Student,主題 AI Automation,狀態 Learning。」
Agent 不只是回答我,而是真的可以透過 Google Sheets Tool 去執行資料新增。
做到這裡,Agent 已經開始有:
理解需求 → 選擇 Tool → 執行任務
的感覺。
但今天我發現另一個問題。
假設我先跟 Agent 說:
「我的專案名稱叫 AI Automation。」
接著下一句只說:
「幫我把剛剛那個專案記錄下來。」
它真的知道:
「剛剛那個專案」是什麼嗎?
這就要開始認識 AI Agent 的另一個重要功能:
Memory
今天先不增加新的外部服務。
而是希望讓 Agent 可以記住前面的對話內容。
原本:
使用者
↓
AI Agent
↓
Chat Model
今天則加入:
Chat Model
│
使用者 → AI Agent
│
Memory
如果再把前面的 Tools 保留下來,就會變成:
Chat Model
│
AI Agent
↙ ↓ ↘
Memory Tools Google Sheets

圖 1 AI Agent 加入 Memory 後的 Workflow
加入 Memory 之前,可以先做一個簡單測試。
第一句輸入:
「我的專案名稱叫 AI Automation。」
接著再輸入:
「我的專案叫什麼?」
如果目前的對話設定沒有保留前面的聊天內容,Agent 就可能無法知道第二句的「我的專案」是在指什麼。
這讓我發現:
AI 可以理解一句話,不代表它一定會自動記住前面的所有對話。
所以如果想打造真正可以連續聊天的 Agent,就需要處理「對話上下文」。
接著在 AI Agent 加入 Memory。
n8n 的版本與 AI 功能設定可能會不同,所以實際看到的 Memory 類型可能不完全一樣。
今天先選擇適合簡單測試的對話記憶方式即可。
概念上變成:
使用者輸入
↓
AI Agent
↙ ↘
Model Memory
Memory 負責保留需要的對話資訊,讓 Agent 處理下一個訊息時可以取得相關的歷史內容。

圖 2 替 AI Agent 加入 Memory
設定完成後,再重新測試。
第一句:
「我的專案名稱叫 AI Automation。」
Agent 可能回答:
「好的,你的專案名稱是 AI Automation。」
接著不要重新開一個完全不同的對話 Session,在同一段測試對話中輸入:
「我的專案叫什麼?」
如果 Memory 正常運作,Agent 就可以利用前面的對話內容回答:
「你的專案名稱是 AI Automation。」
流程可以理解成:
第一句
↓
我的專案名稱叫 AI Automation
↓
Memory 保存相關對話
↓
第二句
↓
我的專案叫什麼?
↓
Agent 取得前面的對話
↓
AI Automation

圖 3 加入 Memory 後,AI Agent 可以根據前面的對話回答
接下來可以測試更接近日常聊天的方式。
先說:
「我正在做一個 AI Automation 專案。」
接著說:
「幫我用一句話介紹剛剛那個專案。」
這次我們沒有再次輸入:
AI Automation
而是只說:
「剛剛那個專案」
如果 Agent 能夠理解,就代表它正在利用前面的對話內容處理目前的問題。
這比每次都重新把完整資訊輸入一次自然很多。
今天最有趣的地方,是可以把昨天的 Google Sheets Tool 再拿回來。
例如先輸入:
「姓名是 Student,主題是 AI Automation,狀態是 Learning。」
接著再說:
「幫我把剛剛的資料記錄下來。」
如果 Agent 可以利用 Memory 取得前面的資訊,再使用 Google Sheets Tool,整個流程就可能變成:
使用者
↓
提供資料
↓
Memory
↓
使用者:幫我記錄剛剛的資料
↓
AI Agent
↓
取得前面的對話內容
↓
Google Sheets Tool
↓
新增資料

圖 4 AI Agent 使用前面的對話資料呼叫 Google Sheets
這次比昨天又更自然了一點。
昨天必須一次講完整:
「幫我記錄姓名 Student、主題 AI Automation、狀態 Learning。」
今天則可以分成兩句:
「姓名 Student,主題 AI Automation,狀態 Learning。」
然後:
「幫我記錄剛剛那筆。」
做到這裡還有一個很重要的概念:
Session
可以先把 Session 理解成「同一段對話」。
例如:
Session A
使用者:我的專案叫 AI Automation
Agent:好的
使用者:我的專案叫什麼?
Agent:AI Automation
這兩句是在同一段對話裡,所以 Memory 才知道它們彼此有關。
但如果換成完全不同的 Session,就不一定會共用相同的對話記憶。
概念上:
Session A
↓
自己的 Memory
Session B
↓
自己的 Memory
這其實很合理。
如果有兩個不同使用者:
使用者 A:我叫 Alex
使用者 B:我叫 Kevin
Memory 如果全部混在一起,Agent 就可能搞不清楚:
到底現在正在跟誰聊天?
所以建立聊天 Agent 時,Session 的區分很重要。
一開始看到 Memory,我很容易把它理解成:
「AI 從此什麼都記得。」
但其實沒有這麼簡單。
不同 Memory 的保存方式、容量、持續時間和 Session 設定都可能不同。
所以比較準確的理解是:
Memory 讓 Agent 在適當的設定下,可以使用先前的對話資訊。
而不是:
「只要講過一次,AI 永遠都會記得。」
這個差別我覺得很重要。
這時候可能會覺得:
「既然 Memory 可以記東西,那為什麼還需要 Google Sheets?」
其實兩個用途不太一樣。
Memory 比較適合:
保留聊天上下文
理解「剛剛那個」
讓連續對話更自然
Google Sheets 比較適合:
正式保存資料
之後查看紀錄
整理成表格
提供其他流程使用
所以:
Memory
=讓 Agent 記得我們正在聊什麼
而:
Google Sheets
=把資料真正保存到外部系統
這也是為什麼今天兩個可以一起使用,而不是互相取代。
今天可以測試三組。
測試 1:基本記憶
我:我的專案叫 AI Automation。
我:我的專案叫什麼?
預期:
AI Automation
測試 2:代名詞理解
我:我正在做 AI Automation 專案。
我:幫我介紹剛剛那個專案。
觀察 Agent 能不能理解「剛剛那個」。
測試 3:Memory + Tool
我:姓名 Student,主題 AI Automation,
狀態 Learning。
我:幫我把剛剛那筆資料記錄下來。
觀察 Agent 是否:
讀取前面的資訊
↓
理解「剛剛那筆」
↓
呼叫 Google Sheets
↓
成功新增資料



圖 5 AI Agent 結合 Memory 與 Tool 完成連續任務
今天還有一個不能忽略的問題:
不是所有資訊都適合被保存。
如果未來真的把 Agent 用在實際系統裡,可能會接觸:
個人資料
帳號資訊
工作內容
公司內部資料
所以不能只想:
「記得越多越好。」
還要考慮:
哪些資料需要保存?
要保存多久?
不同使用者的 Session 有沒有分開?
是否包含不應保存的敏感資訊?
這也是 AI Agent 從「自己測試」走向「真的給人使用」時必須考慮的問題。
做到 Day 26,目前的 Agent 已經開始變得比較完整:
Chat Model
│
AI Agent
↙ ↓ ↘
Memory Calculator Wikipedia
│
Google Sheets
它現在不只可以:
回答問題
使用 Calculator
查詢資料
寫入 Google Sheets
還開始能:
利用前面的對話內容理解下一個任務。
前幾天學 Agent 時,我一直把注意力放在:
「它可以使用什麼 Tool?」
但今天才發現,對話本身也是很重要的一部分。
如果沒有前面的上下文:
「幫我記錄剛剛那筆。」
其實是一句資訊不足的指令。
加入 Memory 後,Agent 才有機會知道:
「剛剛那筆」到底是什麼。
所以今天可以把 Agent 再補上一塊:
Chat Model → 負責理解與生成
Tool → 負責執行工作
Memory → 負責提供對話上下文
Agent → 把這些能力組合起來
今天替 AI Agent 加入了 Memory。
從原本:
問題
↓
Agent
↓
回答
↓
結束
變成:
第一句對話
↓
Memory
↓
第二句對話
↓
Agent 參考前面的內容
↓
回答 / 使用 Tool
現在 Agent 已經開始有比較完整的感覺了:
會理解、會選工具、會執行,也能利用前面的對話。
但目前這些測試基本上都還是我自己在 n8n 裡跟 Agent 對話。
如果真的想讓其他人使用,就需要一個更方便的入口。
所以明天可以開始把 Agent 從 n8n 裡面「帶出去」。