Mem0

O Mem0 extrai memórias duradouras de conversas de agentes e recupera memórias relevantes em execuções posteriores. Configure escopos de armazenamento e recuperação quando as memórias devem estar disponíveis entre sessões.

Essa integração usa o padrão de memória: extrai e lembra informações duráveis selecionadas em vez de reproduzir a transcrição completa da conversa.

Important

O Mem0 é um sistema de terceiros. Examine o tratamento de dados, a retenção, os limites regionais e os termos de serviço antes de enviar dados do aplicativo.

Note

Atualmente, a integração do Mem0 não está disponível para o Agent Framework .NET.

Instalar o pacote

pip install agent-framework-mem0 --pre

Defina MEM0_API_KEY ou passe uma chave de API diretamente. Configure o armazenamento e a recuperação separadamente:

  • user_id, agent_ide application_id são escopos de armazenamento. O Mem0 os carimba em cada memória armazenada.
  • search_user_id, search_agent_ide search_application_id são escopos de recuperação. O Mem0 os usa para selecionar quais memórias ele pesquisa.

Os escopos do aplicativo exigem o cliente da Plataforma Mem0 (AsyncMemoryClient). O cliente do OSS AsyncMemory dá suporte apenas a escopos de usuário e agente.

O escopo de recuperação não herda do escopo de armazenamento. Se você não definir nenhum search_* escopo, o provedor armazenará memórias, mas não as lembrará.

Para memória por usuário, defina user_id e search_user_id para o mesmo identificador estável:

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,
    ):

O Mem0 processa memórias de forma assíncrona. Em produção, utilize tentativas de reexecução ou tratamento de consistência com reconhecimento do serviço, em vez de depender de um atraso fixo.

Note

A integração do Mem0 não está disponível no momento para o Agent Framework Go. Consulte o repositório Agent Framework Go para obter o status mais recente.

Próximas Etapas 

Vá mais fundo: