Chuyển đến nội dung chính

第 8 課:代理記憶-短期、長期與情景

記憶類型:對話緩衝區、摘要記憶、實體記憶。使用 DB 向量實現長期記憶。情景記憶允許代理從經驗中「學習」。

🧠 人工智慧與機器學習 — 第 7 課 第 8 課:代理記憶-短期, 長期和間歇性

建構 AI 代理:從零到生產

第 3 部分:RAG 和內存 — 為 Agent 提供內存

亞洲開發網

簡介

記憶將代理從「金魚」(每次對話後都忘記)變成了真正的助手——記住偏好,從錯誤中學習,並隨著時間的推移積累知識。


1. 記憶體類型

1.1 短期記憶(工作記憶)

  • 目前會話中的對話歷史記錄
  • 受上下文視窗限制

1.2 長期記憶

  • 跨會話持續存在
  • 儲存在向量DB或資料庫中
  • 例如:使用者偏好、重要事實

1.3 情景記憶

  • 記住「情節」-代理完成任務的時間
  • 幫助代理商從經驗中學習
  • “上次用戶問同樣的事情時,我這樣做了並且成功了”

2. 實施

class AgentMemory:
    def __init__(self):
        self.short_term = []
        self.long_term = chromadb.Collection("long_term")
        self.episodes = chromadb.Collection("episodes")
    
    def remember(self, content, memory_type="long_term"):
        if memory_type == "long_term":
            self.long_term.add(documents=[content], ...)
    
    def recall(self, query, n=5):
        return self.long_term.query(query_texts=[query], n_results=n)
    
    def save_episode(self, task, steps, outcome):
        episode = f"Task: {task}\nSteps: {steps}\nOutcome: {outcome}"
        self.episodes.add(documents=[episode], ...)

總結

  • 3種類型的記憶:短期(對話)、長期(事實)、情境(經驗)
  • 向量資料庫是長期記憶和情景記憶的支柱
  • 摘要記憶有助於將長對話融入情境窗口
  • 情景記憶有助於代理隨著時間的推移而改進

練習

  1. 實作完整的AgentMemory類
  2. 建立一個能夠跨會話「記住」使用者偏好的代理
  3. 實施情景記憶,測試代理人會改善嗎?
  4. 比較:長對話的緩衝記憶體與摘要記憶體