Article
AI Agent 長期記憶怎麼做?我做了上千小時才懂,記憶不是越多越好
AI Agent 的長期記憶,我現在的做法是把「這輪對話」、「存下來的記憶檔」和「需要時才去查的歷史資料」分開管,只把會影響做事的資訊放進常駐記憶,像行程、帳本、做事規則和重要決定。口味這類小偏好,記錯了我就先放著。我自己做 AI Agent 花了上千小時,踩過記太多讓它變囉嗦、上下文變貴的坑,記憶越多越好這件事在我身上沒成立過。
如果你還不太確定 AI Agent 是什麼,可以先看AI Agent 是什麼,再回來看這篇會比較好懂。
先分清楚三種記憶
很多人說「讓 Agent 有記憶」,講的其實混了好幾種東西。我在 AI Agent 自學網的免費課〈打造自己的第二大腦〉裡,會先請大家把這三種分開。
| 種類 | 存在哪 | 什麼時候會消失 | 我拿來放什麼 |
|---|---|---|---|
| 這輪對話的上下文 | 模型當下看得到的內容 | 對話結束或重啟 | 正在做的這件事 |
| 存下來的記憶檔 | 檔案或資料庫 | 自己刪掉才會消失 | 做事規則、重要決定、長期偏好 |
| 歷史檢索 | 過去的對話與資料 | 不會自動進上下文 | 很久以前的細節,要用時才查 |
這三種分清楚之後,很多問題就有地方放了。像「上次那份報價寫了什麼」這種事,放進歷史檢索就好,用不著每次對話都帶著它。
我想讓它記住所有喜好,結果放棄了
我開始做的時候,也以為「懂我」就是不能說錯,所有喜好都要記住。
後來我的 Agent 很愛拿杯溫水給我,可能跟我用的是亞洲的開源模型有關,它特別喜歡給溫水。但我更喜歡涼水、冰水。
這要怎麼修?強制把喜好塞進上下文?還是讓它每次講話前先查一遍我的喜好清單?喜歡冰水、討厭溫水、喜歡冰咖啡、討厭蔥、討厭洋蔥、討厭韭菜,這樣寫下去可以寫到幾千字。
每多寫一條,每次對話都要多付一點 token,模型也不一定照做。我最後決定,記住重要的事,沒那麼重要的就算了,畢竟我也喝不到那杯水。
記住了,也要想好什麼時候該停
有一天我忘了吃藥,之後我的 Agent 就天天提醒我吃藥,很像老媽。我覺得有點煩,但又懶得改,結果某天還是真的忘了吃。
我自己的體會是,會觸發行動的記憶,比單純的資料更要設計。它什麼時候該提醒、提醒到什麼時候為止、我回覆之後要不要改狀態,這些都要自己想。
不論是個人的事、公司的事、客戶的事,最後都跟記憶有關。什麼時候該記、記哪些、怎麼查、什麼時候該查,每個人需要的都不一樣,這也是自己做 Agent 最有意思的地方。
什麼該記、什麼可以不記
這是我現在自己的判斷方式,你可以拿去改成自己的版本。
| 會放進常駐記憶 | 存起來需要再查 | 我直接放下 |
|---|---|---|
| 做事的規則與禁止事項 | 過去的對話細節 | 隨口一提的小口味 |
| 已經拍板的決定 | 舊版本的資料 | 模型改不掉的小習慣 |
| 長期在用的資料位置 | 一次性的任務紀錄 | 說錯也不影響結果的事 |
判斷的問題只有一個,這件事記錯了,會不會讓 Agent 做錯事?會就記,不會就存著或放下。
還有一點,存下來的東西會過期。文章素材裡的價格改了,舊筆記找得到也不能照用。所以我會在記憶旁邊留日期,用之前先確認還適用。
讓 Agent 自己記,再加一道審核
要讓 AI Agent 記住事情並不難,只要它能寫入檔案,你叫它記,它就會寫。
難的是讓它自己主動記,而且不越搞越亂。我花了上千小時後,覺得最有效的做法是讓 Agent 有一個自己成長的循環,適當放權讓它多記,再設計一個審核的機制,替它記下來的東西把關。
要講清楚的是,做了自我成長之後,久了它也會漸漸像黑箱,我不一定說得出它為什麼這樣回。如果你需要的是穩定,就先別做成長,或是把審核規則調得嚴一點。
比聊天更有用的記憶,是行事曆和帳本
Agent 懂你多少,看的是它手上有多少你的資料。只跟它聊天,它知道的就只有你說過的那幾句。
我後來把行事曆和帳本接進去。跟它說每週一要開會,它就建好循環行程,下週那次要延後,也只改那一次。說「今天午餐一百二,現金」,它就記進帳本,說錯了直接更正,不會多記一筆。
這兩份資料我放在自己的電腦和自己做的系統裡,也可以搭配本機跑的開源模型,回答問題時資料不用經過雲端。想走這條路可以看地端 AI Agent 怎麼開始。
記憶也要省,開源模型才跑得動
我後來把開發上千小時的舊 Agent 退役,重做了一個新的。重做時我最在意的一件事,就是上下文怎麼省。
工具和說明都盡量精簡,用得到的時候才載入。記憶也一樣,常駐的只放少少幾條,其他的等需要再查。這樣即使用開源模型,不配最前沿的模型,也比較跑得動。
舊的那隻什麼都想做,很多系統只用過一次。這段經驗我寫在自製 AI Agent 700 小時的心得裡,記憶系統也是同一個道理,只做用得到的。
現成的記憶工具,可以等做過一次再挑
網路上有很多不同流派的記憶系統。像開源的 agentmemory(GitHub 上搜 rohitg00/agentmemory),是給寫程式的 AI Agent 用的本地記憶伺服器,會記下 Agent 的操作,用關鍵字加向量的混合搜尋找回來,支援 Claude Code、Codex CLI 這類工具,透過 MCP 或 hook 接上去。另外也有 mem0 這類記憶工具。
我的建議是先自己做一次簡單版。你親自用過,才知道自己最在乎的是哪一點,是記得準、記得省,還是資料留在自己手上,之後再去找同類產品比較,會挑得比較準。這個順序不只適用記憶工具,挑任何 Agent 功能都可以這樣做。
從一份找得回來的資料開始
如果你現在就想動手,我在免費課裡給的練習很簡單。先挑一件你常做的事,像寫文章或整理報價,然後跑一遍下面四步。
- 留下,記下資料的位置、用途和日期。
- 找回,找出能回答目前問題的那一段原文。
- 使用,用之前先確認內容還適用。
- 更新,標出過期或變動的部分。
做完之後問自己,下次做這件事,我會先找哪一份資料?如果答案還是全部丟進去,就再縮小一次範圍。資料要怎麼寫才讓 AI 好讀,可以參考如何讓 AI 讀懂我的筆記。
先做一個記得住重點的 Agent
我花了很多時間才接受,Agent 記不住每一杯水的溫度,也沒關係。記住會影響做事的那幾件事,其他的交給檢索和審核,它反而用得比較順。
你的需求跟我不一定一樣,記憶要怎麼設計,最好自己做一次才知道。這些我都整理在 AI Agent 自學網,從免費課就能開始做出自己的 Agent。
常見問題 FAQ
AI Agent 的短期記憶和長期記憶差在哪?
短期記憶是這一輪對話裡還看得到的內容,對話關掉或重啟就沒了。長期記憶是另外存成檔案或資料庫的資訊,下次開新對話還找得回來。我自己還會再分出一種歷史檢索,平常不放進上下文,需要時才去查。
是不是讓 AI Agent 記住越多事情越好?
我做過之後的答案是不要。每次都塞進上下文的記憶越多,花的 token 越多,模型也比較容易被不重要的細節帶偏。我只把會影響做事的資訊放進常駐記憶,其他的存起來等需要再查。
沒有寫程式基礎,可以讓自己的 AI Agent 有記憶嗎?
可以先從最簡單的開始。只要你的 Agent 能寫入檔案,你明確叫它記下來,它就能寫進一份記憶檔,下次再讀。讓它自己主動記、又不越記越亂,才是需要花時間設計的部分。
有現成的 AI Agent 記憶工具可以用嗎?
有,例如開源的 agentmemory,它是給 Claude Code、Codex CLI 這類寫程式 Agent 用的本地記憶伺服器,也有 mem0 這類記憶工具。我的建議是先自己做一次簡單版,知道自己在乎什麼,再去挑現成的。