MemFactory:把記憶型 Agent 變成一行模組

📌 本文重點

  • MemFactory 把記憶變成可插拔、可訓練的模組
  • 用 GRPO 讓 Agent 自己學會記什麼、忘什麼與怎麼用
  • 可直接套用 Memory-R1/RMM/MemAgent 等 SOTA 架構

用一句話說:MemFactory 讓你不用自己手刻記憶策略,就能把「會自己學會記什麼、忘什麼」的記憶 Agent 套進現有 LLM。

原文論文:[MemFactory: Unified Inference & Training Framework for Agent Memory]


為什麼你現在的 Agent 記憶,其實很「陽春」?

大多數現在線上跑的客服 Bot、Copilot、助理,所謂「長期記憶」其實就是:

  1. 把歷史對話丟進 embedding
  2. 存進向量資料庫
  3. 每次問問題時相似度檢索幾條,塞回 prompt

問題在於:

  • 哪一句要寫進記憶?(重要資訊 vs. 嘮嗑)
  • 什麼時候要更新?(舊偏好 vs. 新偏好)
  • 什麼時候該忘?(過期任務、已完成專案)
  • 檢索時要抓什麼粒度?(一條摘要還是整段歷史)

如果你現在是用 if-else + heuristics 在寫這些邏輯,其實就是:

把一個適合用 RL 學的策略問題,硬寫成規則引擎。

MemFactory 做的事就是:把「記憶生命週期」拆成標準模組,然後用 GRPO 讓 Agent 自己學會怎麼用記憶。

💡 關鍵: 與其不斷堆 if-else 修修補補,不如把記憶當成可訓練策略,長期可維護性與效果都會更好。


核心功能 1:記憶生命週期標準化,像樂高一樣換零件

MemFactory 把記憶相關操作,拆成可插拔的原子組件:

  • 寫入(Write):決定哪些內容要變成長期記憶
  • 壓縮(Compress / Summarize):長對話變短摘要
  • 遺忘(Forget / Prune):過期或冗餘記錄被丟棄
  • 檢索(Retrieve):在任務中調出最有用的記憶

在框架裡,你可以:

  • 用官方提供的模組(如 MemAgent / Memory-R1 風格的寫入器、檢索器)
  • 把其中一個環節換成自己寫的策略,其他保持不動
  • 在同一組任務上,對比不同「記憶組合」帶來的效果

你能做的具體事:

  • 快速把原本「只有 RAG」的聊天機器人,換成「有寫入+遺忘」的版本
  • 在同一個專案裡 A/B test:
  • A:只靠向量相似度檢索
  • B:加上學會「只記 summary」的壓縮模組

這讓記憶不再是寫死在程式碼裡的一堆 if-else,而是可以替換、疊加、訓練的模組。

💡 關鍵: 把「寫入、壓縮、遺忘、檢索」標準化後,你可以像換零件一樣快速試不同記憶策略。


核心功能 2:用 GRPO 訓練「要記什麼、怎麼用」而不是手刻規則

MemFactory 內建 Group Relative Policy Optimization (GRPO),重點不是名字,而是它幫你解決這兩件事:

  1. 讓 Agent 在真實任務中試錯
  2. 成功完成長期任務 → 給正向獎勵
  3. 忘掉重要資訊、答錯、反覆問同樣問題 → 給負向獎勵
  4. 從多維度評分
  5. 正確性(答案對不對)
  6. 連貫性(有沒有跟之前的對話對得上)
  7. 成本(少查一點沒用記憶、token 不要炸掉)

訓練的結果,是一個「懂得控制自己記憶」的 policy:

  • 在對話中主動抽取關鍵資訊寫入記憶
  • 任務結尾自己產生任務總結存起來
  • 下次遇到相關任務時,知道該檢索哪一段

你能做的具體事:

  • 不用設計「多久忘一次」「最多存幾條」這種規則,改成定義:
  • 什麼是成功回合(例如客服一次解決率)
  • 什麼是失敗回合(例如用戶反覆問同一件事)
  • 用 MemFactory 把這些 reward 寫進環境,讓 Agent 自己調整記憶策略

💡 關鍵: 只要設計好 reward,GRPO 會在真實任務中自動逼出更好的記憶策略,而不用人工調參「存幾條、多久忘」。


核心功能 3:直接套 SOTA 記憶 Agent 設計跑實驗

MemFactory 已經把幾個知名記憶 Agent 的架構變成可直接套用的配置:

  • Memory-R1
  • RMM(Reinforced Memory Management)
  • MemAgent

你可以:

  • 直接用官方提供的 config 跑 baseline
  • 把你的任務資料接上去,再用同一組框架做微調
  • 在同一個評測上,對比不同記憶架構的效果

你能做的具體事:

  • 拿 MemAgent 官方釋出的 dataset,直接在本地跑一次論文裡的實驗流程
  • 把自己的客服對話 log 換成環境,保留原本的 MemAgent 架構,重訓一個「專屬你公司的記憶策略」

適合誰用?三個典型場景

1. 客服 Bot / 企業 Copilot:需要記「客戶長期歷史」

需求:

  • 認得老客戶、知道過去投訴內容、偏好設定
  • 不要每次都叫客戶重講一遍

用法:

  • 用 MemFactory 把「每次對話後的 summary」寫入客戶個人記憶
  • 訓練 Agent 學會:什麼樣的歷史有助於降低重複提問率

2. 長期專案助理:跟著你跑一個月的專案

需求:

  • 記得每次會議決議、待辦事項、誰負責什麼
  • 自動形成「專案記憶庫」,幫你追蹤進度

用法:

  • 把每次對話當作一個 episode
  • 用 reward 指標:
  • 助理能否從記憶中準確回顧前次決議
  • 是否能串起跨週的任務

3. 學習/研究助教 Bot:跟著你讀一本書、做一個研究題目

需求:

  • 記住你已經學過哪些章節、卡在哪些概念
  • 適時用舊記憶幫你複習、舉例

用法:

  • 設計「測驗」情境:Bot 如果能用過去筆記解出新題目 → 給高 reward
  • 讓記憶策略學會:哪些摘要對長期解題幫助最大

怎麼開始:10 分鐘跑一個「多輪任務+記憶回顧」 Demo

下面是一條最短路徑:從零到跑出一個會做記憶回顧的 Agent。具體指令以官方 Repo 為準,這裡給的是典型流程草稿。

1. 安裝 MemFactory

假設你已經有 Python 3.10+ 環境和 GPU:

# 建議先建虛擬環境
python -m venv .venv
source .venv/bin/activate  # Windows 用 .venv\Scripts\activate

pip install memfactory

如果官方是 GitHub Repo,可能會是:

git clone https://github.com/xxx/MemFactory.git
cd MemFactory
pip install -e .

行動:把這段指令貼進你的實驗機/本地環境,確認能 import memfactory 即可。

2. 選一個基礎 LLM:以 Llama / Qwen 為例

MemFactory 通常透過 Hugging Face 或本地後端調用模型,你可以先挑一個開源模型:

# 例:下載並準備一個 7B 等級模型
huggingface-cli download meta-llama/Meta-Llama-3-8B-Instruct
# 或
huggingface-cli download Qwen/Qwen2-7B-Instruct

在 MemFactory 的 config 裡指定:

model:
  name: "Qwen/Qwen2-7B-Instruct"  # 或 Llama 模型
  backend: "vllm"                  # 依你使用的推理後端調整

行動:先選一個你機器跑得動的模型(7B 左右),記下模型名稱,等下寫進 config。

3. 套官方 MemAgent 設定,跑一個多輪任務 Demo

大部分情況下,官方會提供類似:

# 使用內建 MemAgent 設定
memfactory run \
  --config configs/memagent_demo.yaml \
  --task multi_turn_todo_with_review

這類 demo 通常會做:

  • 與 Agent 進行多輪對話(例如安排一週工作計畫)
  • Agent 在過程中抽取「關鍵任務」寫進記憶
  • 最後請它做「本週任務回顧」,看有沒有正確調出記憶

你可以觀察:

  • 日誌裡每一步的「寫入」「壓縮」「遺忘」「檢索」行為
  • 沒有記憶 vs. 開啟 MemAgent 記憶策略的表現差異

行動:先用官方 demo 跑一次,看 log 裡每個記憶操作的輸出,理解「記憶生命週期」是怎麼被拆開的。

4. 改成自己的 Domain:以客服為例

假設你有一批客服對話紀錄:

  1. 把對話整理成 episode 格式(每個工單一個 episode)
  2. 在 MemFactory 的任務設定裡換成你的 dataset:
  3. env.dataset_path: data/your_customer_logs.jsonl
  4. reward: 設計成:
    • 一次解決 → +1
    • 客戶重複追問同樣問題 → -1
  5. 仍然沿用 MemAgent 的記憶架構,只是換成你的訓練環境:
memfactory train \
  --config configs/memagent_customer_service.yaml \
  --grpo  # 開啟 GRPO 訓練記憶策略

行動:先複製官方 MemAgent config,改 dataset 路徑與 reward 規則,試著在你的一小批真實對話上訓練一晚,觀察 Agent 對「老客戶」的記憶有沒有變好。


小結:把「記憶」當成可訓練的模組,而不是硬寫的規則

如果你現在的 Agent 記憶只是:

  • 儲存所有對話
  • 檢索前 N 句最近的內容

那你會遇到:成本爆炸、重要資訊被雜訊淹沒、長期任務斷線。

MemFactory 提供的是一個更實際的路線:

  • 記憶生命週期 = 寫入 + 壓縮 + 遺忘 + 檢索 → 做成可插拔模組
  • 用 GRPO 在真實任務上訓練「要記什麼、怎麼用」
  • 直接復用 Memory-R1 / RMM / MemAgent 等架構,少走重造輪子的路

如果你手上已經有客服、Copilot、教學 Bot 類的專案,最直接的下一步是:

  1. 拉一台可以跑 7B 模型的機器
  2. 裝上 MemFactory,跑完官方 MemAgent demo
  3. 把你的對話資料接進去,先做一個小規模試驗

從那一刻開始,你的 Agent 就不是只會「背稿子」,而是開始學會「怎麼整理自己的記憶」。

🚀 你現在可以做的事

  • 在實驗機上安裝 memfactory 並確認可以 import memfactory
  • 選一個你跑得動的 7B 模型,寫進 MemFactory 的 config 裡跑一次官方 MemAgent demo
  • 把一小批真實對話整理成 episode,加上簡單 reward 規則,試著用 memfactory train 訓練一晚觀察效果

留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *