Mem0

Mem0 は、エージェントの会話から永続的なメモリを抽出し、後の実行で関連するメモリを取得します。 メモリをセッション間で使用できるようにする必要がある場合は、ストレージスコープと取得スコープを構成します。

この統合では、メモリ パターンが使用されます。完全な会話トランスクリプトを再生するのではなく、選択した永続的な情報を抽出して取り消します。

Important

Mem0 はサード パーティ製システムです。 アプリケーション データを送信する前に、データの処理、保持、地域の境界、サービス条件を確認します。

Note

現在、Mem0 統合は Agent Framework .NETでは使用できません。

パッケージをインストールする

pip install agent-framework-mem0 --pre

MEM0_API_KEY設定するか、API キーを直接渡します。 ストレージと取得を個別に構成します。

  • user_id、 agent_id、および application_id はストレージ スコープです。 Mem0 は、格納されている各メモリにスタンプを設定します。
  • search_user_id、 search_agent_id、および search_application_id は取得スコープです。 Mem0 はそれらを使用して、検索するメモリを選択します。

アプリケーション スコープには、Mem0 Platform クライアント (AsyncMemoryClient) が必要です。 OSS AsyncMemory クライアントでは、ユーザー スコープとエージェント スコープのみがサポートされます。

取得スコープはストレージ スコープから継承されません。 search_*スコープを設定しない場合、プロバイダーはメモリを格納しますが、呼び出しません。

ユーザーごとのメモリの場合は、 user_id と search_user_id を同じ安定した識別子に設定します。

async def main() -> None:
    """Example of memory usage with Mem0 context provider."""
    print("=== Mem0 Context Provider Example ===")
    # Each record in Mem0 should be associated with agent_id or user_id or application_id.
    # In this example, we associate Mem0 records with user_id.
    user_id = str(uuid.uuid4())
    # For Azure authentication, run `az login` command in terminal or replace AzureCliCredential with preferred
    # authentication option.
    # For Mem0 authentication, set Mem0 API key via "api_key" parameter or MEM0_API_KEY environment variable.
    async with (
        AzureCliCredential() as credential,
        Agent(
            client=FoundryChatClient(credential=credential),
            name="FriendlyAssistant",
            instructions="You are a friendly assistant.",
            tools=retrieve_company_report,
            context_providers=[Mem0ContextProvider(source_id="mem0", user_id=user_id, search_user_id=user_id)],
        ) as agent,
    ):

Mem0 はメモリを非同期的に処理します。 運用環境では、固定遅延に依存するのではなく、再試行またはサービス対応の整合性処理を使用します。

Note

現在、Mem0 統合は Agent Framework Go では使用できません。 最新の状態については、 Agent Framework Go リポジトリ を参照してください。

次のステップ

より深く進む: