AI Agent 的長期記憶:為何我們該將它視為可治理的檔案系統,而非被動的向量倉庫?
如果 AI Agent 的長期記憶只能靠向量檢索,它終究很難支撐技能演進、狀態治理與可持續協作。把記憶重新設計成可整理、可版本化、可操作的檔案系統,也許才是讓 agent 真正擁有工作記憶與長期學習能力的關鍵。
當前主流的 AI Agent 記憶架構,大多圍繞著向量資料庫進行,透過 RAG(檢索增強生成)來提供上下文。但我認為,這條路徑對於建構真正具備長期自主性的 Agent 而言,可能是一個戰術上的捷徑,卻是戰略上的死胡同。真正可持續的 Agent 記憶,不該只是一個被動檢索的向量倉庫,而應是一個能被主動整理、演進、版本化與操作的文件系統。這不僅是實作細節的差異,更是關乎 Agent 能否從單次任務的執行者,成長為具備長期工作記憶與技能演化的協作者的根本性架構分野。
為什麼當前的記憶架構走到了瓶頸?
以向量檢索為核心的記憶機制,本質上是將所有資訊「打碎」成語義相近的碎片,再依賴查詢的相似度來「撈取」相關片段。這個模式在問答、摘要等單輪任務中表現出色,但一旦應用於需要長期規劃、技能累積與狀態追蹤的複雜 Agent 任務,其侷限性便暴露無遺,甚至需要 Self-RAG 這類機制來增強其判斷力。
首先是缺乏結構與脈絡的問題。向量資料庫的本質是扁平的,它難以有效表達資訊之間的層級、因果或時序關係。試想,當 Agent 需要理解一個複雜專案的歷史演進,或是某個技能的前置依賴時,單純依賴語義相似度檢索,往往會抓取到一堆不連貫的片段。這不僅讓 Agent 難以建立全面的理解,更可能導致常見的「上下文迷失」(lost in the middle)問題,讓關鍵資訊在大量無關內容中被稀釋。
其次是記憶無法主動演進的困境。一個真正有用的記憶系統應該是「活的」,能夠隨著任務進展而成長。Agent 在執行任務時,會產生新的洞察、總結出更有效率的流程,甚至發現過去的某些知識是錯誤的。然而,在傳統的向量倉庫中,我們通常只能不斷地「增加」新資訊,卻很難對舊有記憶進行重構(refactoring)、歸檔,或是有版本控制的修正。長此以往,記憶庫只會越來越臃腫,信噪比持續下降,最終影響 Agent 的決策品質。
最後,也是最關鍵的一點,是知識與技能的斷裂。在典型的 RAG 架構中,我們主要檢索的是「宣告式記憶」(declarative memory),即關於「是什麼」的知識。然而,Agent 的實際行動能力,卻更依賴「程序式記憶」(procedural memory),也就是關於「如何做」的技能。這兩種類型的記憶往往被割裂地存放在不同地方(例如,知識在向量資料庫,技能則是一堆固定的 Python 工具函式,儘管 Toolformer 等研究已嘗試讓 LLM 自主學習工具使用),導致 Agent 難以將學到的新知識有效轉化為可執行的技能,阻礙了其自主學習與成長的潛力。
這些瓶頸,讓我們不得不重新思考 Agent 記憶的根本設計。一篇近期的研究論文 「Filesystem-Based Memory for LLM Agents」 便提出了一個極具啟發性的方向:將記憶視為一個檔案系統。
記憶如何能像檔案系統一樣,被主動治理與演進?
想像一下,Agent 的記憶不再是一個模糊的向量雲,而是一個結構清晰、井然有序的檔案系統,就像我們在電腦上管理專案一樣。在這個系統中:
知識不再是散落的向量,而是結構化的檔案,例如 .md 或 .txt 格式,清晰記錄著事實、觀察與對話歷史。這讓 Agent 能以更直觀的方式存取與理解資訊。
技能則可以具體化為可執行的 .py 或 .sh 腳本,甚至是一份詳細描述操作步驟的 SOP 文件。Agent 不僅能讀取這些文件,更能直接執行其中的指令,實現知識到行動的無縫轉化。
而 Agent 的心智狀態,例如長期目標的進度、當前工作區的變數,也能以 .json 或 .yaml 檔案的形式被追蹤與管理,確保 Agent 在複雜任務中保持連貫性與透明度。
這篇研究勾勒出一個由三種核心角色協作的記憶治理框架,讓 Agent 能主動管理其知識庫:
首先是管理者(Manager),它負責記憶的組織與演進。想像它像一位經驗豐富的檔案管理員,會定期執行「記憶清理」任務,例如將零散的對話紀錄總結成一份清晰的會議紀要、將重複執行的步驟抽象化為一個新的技能腳本,或是將過時的資訊妥善歸檔,確保記憶庫始終保持高效與精簡。
接著是搜尋者(Searcher),它的任務是根據當前任務需求,在龐大的檔案系統中精準尋找最相關的檔案。與傳統向量檢索不同,搜尋者不只依賴語義相似度,更會綜合考量檔案名稱、路徑、標籤(metadata)與修改時間等結構化資訊,以提供更精確的上下文。
最後是執行者(Executor),它負責實際使用搜尋到的檔案。如果搜尋到的是一份知識檔案,它會讀取內容作為決策依據;如果是一個技能腳本,它則會直接執行,將抽象的知識轉化為具體的行動。
這種架構的核心轉變,是從「被動檢索」走向「主動治理」。記憶不再是只能寫入和讀取的資料庫,而是一個可以被 Agent 自身操作、重構和優化的工作空間。
這如何統一技能、狀態與知識的管理?
當記憶變成一個可治理的檔案系統時,前面提到的知識與技能斷裂問題便迎刃而解。Agent 學習新技能的過程,不再是等待開發者為它編寫新的工具,而是可以由「管理者」角色自主完成。
例如,Agent 在多次手動執行資料分析流程後,管理者可以分析其操作歷史,自動生成一個 Python 腳本,並將其命名為 analyze_sales_data.py 存入 /skills/analytics/ 目錄下。下次遇到類似請求時,「搜尋者」可以直接找到這個技能並交給「執行者」運行。這與 Voyager 這類研究中建立動態技能庫的想法不謀而合,但將其整合進一個統一的檔案系統架構中,使其更具擴展性與可解釋性。
更重要的是,這種方式讓 Agent 的「心智狀態」變得透明且可追溯。我們可以像使用 Git 一樣,對 Agent 的記憶系統進行版本控制,追蹤它是如何學習、為何做出某個決策,甚至在必要時將其「回滾」到某個較早的穩定狀態。這對於建立可信任、可除錯且安全的 AI 系統至關重要。
從向量倉庫到檔案系統,看似只是技術選型的改變,實則反映了我們對 AI Agent 終極形態的想像,正如 對自主代理通用模式的探討 所揭示。我們想要的,不是一個問一句答一句的資訊檢索工具,而是一個能夠在長達數月甚至數年的時間尺度上,與我們共同工作、持續學習、並管理自身複雜心智狀態的數位夥伴。為此,我們需要為它設計一個能夠承載長期演進的記憶基礎設施,而一個可治理的檔案系統,正是通往這個未來的堅實一步。
延伸閱讀
- Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection (探討如何讓 RAG 系統更具判斷力)
- Toolformer: Language Models Can Teach Themselves to Use Tools (關於語言模型如何學習使用外部工具的開創性研究)
- Gorilla: Large Language Model Connected with Massive APIs (專注於讓 LLM 準確呼叫大量 API 的研究)
- The General Pattern of Autonomous Agents (一篇關於自主代理架構的優秀分析)
我是江中喬,專注於 AI Agent Architecture、Memory Governance 與 Cognitive Diversity,持續研究如何打造能夠長期協作、可信任且可治理的 AI 系統。