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

レッスン 8: エージェントの記憶 — 短期、長期、およびエピソード的

メモリの種類: 会話バッファ、要約メモリ、エンティティ メモリ。 DB ベクトルを使用して長期メモリを実装します。エピソード記憶により、エージェントは経験から「学習」できます。

🧠 AI と ML — レッスン 7 レッスン 8: エージェントの記憶 — 短期的、 長期的および一時的なもの

AI エージェントの構築: ゼロから本番環境まで

パート 3: RAG とメモリ — エージェントにメモリを与える

xdev.asia

はじめに

記憶はエージェントを「金魚」(会話のたびに忘れる)から真のアシスタントに変えます。好みを覚え、間違いから学び、時間をかけて知識を蓄積します。


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 種類の記憶: 短期 (会話)、長期 (事実)、エピソード (経験)
  • Vector DB は長期記憶とエピソード記憶のバックボーンです
  • 要約記憶により、長い会話をコンテキスト ウィンドウに収めるのに役立ちます
  • エピソード記憶は、エージェントが時間の経過とともに改善するのに役立ちます

演習

  1. 完全な AgentMemory クラスを実装する
  2. セッション全体でユーザー設定を「記憶」するエージェントを構築する
  3. エピソード記憶を実装すると、テスト エージェントは改善されますか?
  4. 比較: 長い会話のバッファ メモリと要約メモリ