Este tópico descreve como selecionar uma fonte de memória, criar um memory store, integrá-lo a uma aplicação e recuperar e manter memórias de longo prazo. Para começar, selecione Manual write e use uma conversa de exemplo para verificar todo o processo. Se você já possui agent traces ou conjuntos de dados de negócios, configure a fonte de dados correspondente no assistente de criação. Para conceitos básicos, consulte Memory Store overview.
Pré-requisitos
Um espaço de agente criado com acesso ao console AgentLoop correspondente.
Definição das informações a armazenar e dos identificadores de usuário de negócios, agente ou aplicação a associar às memórias.
Se utilizar agent traces como fonte, devem existir agent traces utilizáveis no espaço atual.
Se a fonte for um Dataset, prepare um conjunto de dados no mesmo espaço e garanta permissões de leitura sobre ele. Consulte a seção a seguir para requisitos de campos.
Ao integrar uma aplicação por meio de APIs, verifique se o ambiente de execução acessa o endpoint fornecido no console.
Etapa 1: Criar um memory store
Faça login no console AgentLoop, selecione uma região e um espaço de agente, escolha Context Engineering > Memory Store e clique em Create Memory Store.
1. Selecionar uma fonte de dados
Insira um Memory Store Name e uma Description opcional e selecione o tipo de fonte de dados.
|
Tipo |
Método de entrada |
Exemplo |
|
Manual write |
A aplicação envia conversas usando uma API. |
Gravar as preferências alimentares de um usuário em |
|
Agent traces |
Leitura contínua de agent traces do espaço atual. |
Extrair contexto de usuário dos traces de execução de um assistente de estilo de vida. |
|
Dataset |
Leitura de um conjunto de dados compatível no mesmo espaço. |
Extrair fatos de um conjunto curado de conversas com clientes. |
Clique em Next. Não é possível alterar o tipo de fonte de dados após a criação do memory store. Defina como preparar os dados antes de prosseguir.
2. Configurar condições de filtro ou schema
Manual write
Não é necessário configurar condições de filtro de origem. Prossiga para a próxima etapa. Após criar o memory store, siga a Etapa 2 para integrar sua aplicação e enviar conversas.
Agent traces
|
Parâmetro |
Descrição |
|
Service name |
Selecione ou insira o nome do service a consumir. Há suporte para curingas de sufixo, como |
|
Agent name |
Selecione ou insira o agente a consumir. Deixe este parâmetro vazio para não impor restrições ao nome do agente. |
|
Minimum steps |
Ignora traces com menos etapas do que o número especificado. Insira um número inteiro não negativo. |
|
Start time |
Especifique quando o consumo começa. Se este parâmetro estiver vazio, o consumo iniciará na criação do memory store. |
|
Exclude degraded traces |
Exclua traces degradados conforme necessário. |
|
SLS query statement |
Adicione uma condição de consulta à fonte. Essa condição atua em conjunto com as condições de filtro anteriores. |
O operador OR avalia múltiplos valores na mesma lista de nomes. Todos os itens de filtro diferentes devem ser satisfeitos. A fonte consiste em agent traces montados, e a entrada depende dos dados coletados no espaço atual. Antes de selecionar um horário de início anterior, certifique-se de que os dados históricos correspondentes ainda estejam disponíveis.
Os identificadores de usuário, agente e aplicação nos traces devem mapear para os objetos de negócio nos quais você deseja acumular memórias. Durante a recuperação, use os identificadores realmente associados às memórias. Não presuma que todo trace contém um ID de usuário de negócios.
Dataset
Selecione um Dataset Name no mesmo espaço de agente. O Schema Contract é
MemorySourceV1.Escolha uma Version Policy. Incremental Follow lê continuamente dados de sequências recém-adicionadas. Fixed Version Full lê um snapshot de uma versão específica. Para uma versão fixa, insira o nome real da versão. Para acompanhamento incremental, especifique um Start seq.
Insira uma Filter Condition (where) conforme necessário para selecionar os registros a processar.
Verifique os Additional Fields. Para campos que o modelo precisa compreender, selecione Extraction Input e insira uma descrição de seus significados. Para outros campos, selecione Ignore. Colunas adicionais não declaradas não são usadas automaticamente como entradas de extração.
O Dataset de origem deve conter os nove campos fixos a seguir.
|
Campo |
Tipo |
Descrição |
|
|
text |
Identificador de origem de uma entrada. Use um valor estável e não vazio. |
|
|
json |
Um array de mensagens não vazio. Cada mensagem contém |
|
|
long |
Um timestamp Unix positivo em segundos. |
|
|
text |
Identificador de usuário de negócios. |
|
|
text |
Identificador do agente. |
|
|
text |
Identificador da aplicação. |
|
|
text |
Identificador da execução. |
|
|
json |
Um objeto de metadados de negócios. Se não houver informações adicionais, use |
|
|
json |
Um objeto de descrição de origem no qual |
Pelo menos um dos quatro identificadores de negócios deve ser não vazio. Não codifique arrays ou objetos JSON novamente como strings JSON. Converta timestamps de milissegundos para segundos.
O exemplo a seguir mostra a estrutura de campos de uma entrada de Dataset. Durante a importação, substitua o identificador de origem, o timestamp, as mensagens e os identificadores de negócios pelos valores reais.
{
"sourceId": "conversation-001",
"messages": [{"role": "user", "content": "I prefer light, mildly spicy dishes."}],
"timestamp": 1788796800,
"userId": "user-001",
"agentId": "cooking-assistant",
"appId": "cooking-app",
"runId": "",
"metadata": {},
"lineage": {"sourceKind": "dataset"}
}
Para associar informações externas de negócios, conclua primeiro a associação e a preparação de campos no fluxo de trabalho de processamento de dados e, em seguida, grave os resultados no Dataset de origem. O Dataset de origem e o Dataset de resultados que armazena memórias de longo prazo extraídas são recursos diferentes.
3. Configurar estratégias
Para a verificação inicial, selecione Fact Extraction e Merge Update e mantenha os parâmetros padrão. Para acumular perfis de usuário com base em hábitos, selecione Consumer User Profile. Para armazenar contexto de negócios corporativos, escolha Enterprise Digital Twin. Para definir objetivos específicos de extração, opte por Custom Instructions.
Em Scope and Audit, especifique um tipo de identificador de negócios obrigatório para recuperação, como userId. Para detalhes sobre os parâmetros e as diferenças entre os dois modos de armazenamento, consulte Configure memory extraction and storage strategies.
4. Visualizar e criar
Verifique a fonte de dados, as condições de filtro e o resumo da estratégia em Preview and Confirm. Cole uma amostra representativa e clique em Run Preview para visualizar fatos extraídos, ações de armazenamento e motivos para ignorar conteúdo. Para fontes de agent trace ou Dataset, também é possível amostrar dados da fonte configurada sem colar uma amostra.
Uma pré-visualização não grava memórias formais. Se a pré-visualização falhar, corrija a configuração ou a entrada e execute-a novamente. Após confirmar, clique em Create Memory Store. Para o formato da amostra, consulte Configure memory extraction and storage strategies.
Depois que o memory store for criado, acesse a página Overview para verificar o status do memory store e da fonte de dados. Para fontes de agent trace ou Dataset, visualize o progresso do consumo, a janela de consumo mais recente e o erro mais recente. Clique em Pause Consumption ou Resume Consumption para controlar leituras subsequentes.
Etapa 2: Integrar uma aplicação
Para escrita manual, envie conversas conforme descrito nesta seção. Fontes de agent trace e Dataset leem dados com base nas configurações definidas. Quando uma aplicação precisar recuperar memórias, crie uma chave de API e configure os parâmetros de acesso.
Criar uma chave de API
Acesse a aba API Key do memory store, crie e copie uma chave de API. A credencial vincula-se ao espaço e ao memory store correspondentes. Vá até a aba Integration e copie o endpoint da região de destino. Ao usar as APIs de memória, não é necessário especificar o nome do espaço ou do memory store nas solicitações.
Armazene a credencial em uma variável de ambiente do lado do servidor ou em um gerenciador de segredos. O exemplo a seguir usa a API HTTP. Substitua os espaços reservados pela configuração fornecida na página atual:
export AGENTLOOP_ENDPOINT="<Endpoint copied from the Integration tab>"
export AGENTLOOP_API_KEY="<API key of the current memory store>"
Novos recursos precisam de tempo para ficarem prontos. Antes da primeira chamada, siga as instruções na aba Integration para confirmar que o recurso está disponível.
Gravar uma conversa
A solicitação a seguir associa uma conversa ao usuário de negócios user-001 e usa infer: true para solicitar a extração de memória de longo prazo.
curl -X POST "$AGENTLOOP_ENDPOINT/v1/memories" \
-H "Authorization: Token $AGENTLOOP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"messages": [
{"role": "user", "content": "I prefer light, mildly spicy home-style dishes."},
{"role": "assistant", "content": "I will consider your preferences when recommending dishes."}
],
"user_id": "user-001",
"infer": true
}'
Primeiro, verifique se a resposta foi bem-sucedida. Após a aceitação de uma solicitação de gravação, as memórias de longo prazo ainda precisam passar por extração e armazenamento assíncronos. Uma mensagem do assistente informando que a informação foi memorizada não substitui a verificação do resultado no lado do servidor.
Recuperar memórias na aplicação
curl -X POST "$AGENTLOOP_ENDPOINT/v2/memories/search" \
-H "Authorization: Token $AGENTLOOP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "What are this user's dietary preferences?",
"user_id": "user-001",
"top_k": 5
}'
O valor de user_id deve ser igual ao usado durante a operação de gravação. top_k especifica o número máximo de resultados a retornar. Também é possível usar a API a seguir para listar memórias por usuário de negócios e verificar se os dados foram gravados.
curl -X POST "$AGENTLOOP_ENDPOINT/v2/memories" \
-H "Authorization: Token $AGENTLOOP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"user_id": "user-001", "limit": 20}'
Para uma aplicação Python, escolha Integration > Python SDK, instale e inicialize o MemoryClient com base no exemplo da página. Utilize a versão, os métodos e os parâmetros fornecidos na página.
Etapa 3: Recuperar e manter memórias no console
Verificar resultados de recuperação
Acesse a aba Long-term Memory Retrieval, insira "What are this user's dietary preferences?", defina User ID como user-001, configure topK e clique em Start Retrieval.
Adicione condições de filtro como App ID, Agent ID, Run ID, kind e category conforme necessário. O operador AND combina múltiplos IDs de negócios. Para consultar preferências entre sessões de um usuário, não adicione um ID de execução não relacionado à memória alvo.
Os cartões de resultados exibem o conteúdo da memória e informações disponíveis sobre classificação, revisão, origem, edição manual e status de revisão. Verifique se o significado corresponde à entrada. O modelo não precisa reproduzir mensagens palavra por palavra nem gerar um número fixo de memórias. Uma pontuação indica relevância da recuperação, não precisão factual.
Editar e excluir memórias
Abra os detalhes de uma memória, clique em Edit, modifique o conteúdo da memória e clique em Save. Após salvar com sucesso, atualize os resultados e verifique o conteúdo mais recente. Se um conflito de revisão for relatado, reabra os detalhes para ler a versão mais recente antes de decidir como modificar a memória.
Use a operação de exclusão em um cartão de memória para remover conteúdos desnecessários. Verifique a memória alvo antes de confirmar. Não trate a exclusão de dados de origem, a exclusão de uma memória de longo prazo e a exclusão de um memory store inteiro como a mesma operação.
Após ativar a proteção contra edição manual, novas alterações propostas pela extração automática para conteúdo revisado manualmente entram no estado de revisão pendente, e o conteúdo original é retido. Consulte a origem e os registros de auditoria para determinar o motivo. Para detalhes da estratégia, consulte Configure memory extraction and storage strategies.
Visualizar registros de origem e recuperação
Se um registro de memória fornecer informações de origem e existir um log de gravação correspondente, use a entrada de origem para visualizar a entrada. Se a página retornar um ID de evento de recuperação, acesse Audit Details para inspecionar a consulta. Para uma visão geral, consulte View memory audits and statistics.
Etapa 4: Permitir que um agente use memórias
Ao receber uma nova pergunta, a aplicação determina o identificador do usuário a partir do estado de login ou do contexto de negócios, recupera memórias relevantes e fornece os resultados úteis ao agente junto com a pergunta atual e conversas recentes necessárias.
Por exemplo, se o mesmo usuário perguntar "What should I eat tonight?" em uma nova sessão, a aplicação poderá organizar a seguinte entrada:
Current question: What should I eat tonight?
Relevant user memory: The user prefers light, mildly spicy home-style dishes.
Response requirement: Provide suggestions based on the current question and relevant preferences, while honoring any new requirements explicitly stated by the user.
As memórias na entrada devem vir de resultados reais de recuperação. Após a geração da resposta, grave a conversa da rodada atual conforme necessário ou permita que a fonte de dados configurada forneça entradas subsequentes.
FAQ
Por que não há resultados disponíveis após uma gravação bem-sucedida?
Primeiro, confirme o memory store e a região associados à chave de API. Em seguida, verifique se o mesmo identificador de usuário está sendo usado para gravação e recuperação e se filtros adicionais excessivos estão aplicados. Para escrita manual, verifique eventos de entrada. Para fontes de agent trace e Dataset, examine o status de consumo, condições de filtro, posição inicial e o erro mais recente. Depois, use as auditorias de extração e armazenamento para determinar se o processamento está em andamento, se o conteúdo foi excluído por uma estratégia ou se está pendente de revisão.
Por que consigo visualizar resultados na pré-visualização, mas não consigo recuperá-los?
Uma pré-visualização de amostra não grava memórias formais. Envie uma entrada real ou permita que a fonte de dados consuma o registro correspondente e recupere memórias somente após a conclusão do armazenamento.
Alterar uma estratégia reprocessa todos os dados históricos?
Após salvar uma estratégia, visualize a nova versão no histórico de versões. Memórias históricas não são reconstruídas automaticamente na íntegra ao salvar a estratégia. Para verificar o efeito de uma nova estratégia, execute primeiro uma pré-visualização de amostra e observe as entradas reais subsequentes.
O que fazer se o consumo parar após alterações nos campos do dataset de origem?
Verifique o erro mais recente na página Overview e confirme se os nomes e tipos dos campos fixos e dos campos adicionais em uso ainda atendem às convenções especificadas durante a criação. Não retome o consumo repetidamente para contornar erros de schema. Corrija os dados primeiro e depois verifique o status do consumo.