sistemas-de-memoria

Esta skill deve ser usada para memória semântica persistente em sistemas de agentes: retenção de conhecimento entre sessões, rastreamento de entidades, validade temporal, recuperação por grafo ou vetor, consolidação de memória e seleção de benchmarks de memória. Encaminhe rascunhos baseados em arquivos para o contexto do sistema de arquivos, resumos de handoff para compressão de contexto e táticas de eficiência de tokens para otimização de contexto.

O que é sistemas-de-memoria?

Esta skill capacita agentes de IA com memória semântica persistente, permitindo que mantenham continuidade entre sessões e raciocinem sobre conhecimento acumulado. Ela orienta os desenvolvedores na escolha entre frameworks de memória como Mem0, Zep/Graphiti, Letta, LangMem e Cognee, cada um otimizado para diferentes padrões de recuperação, como consultas de múltiplos saltos, modelagem temporal ou introspecção profunda. A skill enfatiza uma abordagem em camadas, começando com a solução mais simples (como armazenamento em sistema de arquivos) e adicionando complexidade (grafos, validade temporal) somente quando a qualidade da recuperação é degradada. Ela fornece benchmarks práticos (DMR, LoCoMo, HotPotQA) para comparar desempenho, estratégias de recuperação híbrida e técnicas de consolidação para evitar crescimento ilimitado. Suportada por plataformas como Cursor, Claude Code e Cody, esta skill é ideal para construir agentes robustos que exigem memória de longo prazo, rastreamento de entidades e recuperação temporal eficiente.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/muratcankoylan/Agent-Skills-for-Context-Engineering/tree/main/skills/memory-systems

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Projeto de Sistema de Memória

A memória fornece a camada de persistência que permite aos agentes manter continuidade entre sessões e raciocinar sobre conhecimento acumulado. Agentes simples dependem inteiramente do contexto para memória, perdendo todo o estado quando as sessões terminam. Agentes sofisticados implementam arquiteturas de memória em camadas que equilibram as necessidades imediatas de contexto com a retenção de conhecimento de longo prazo. A evolução de armazenamentos vetoriais para grafos de conhecimento e, em seguida, para grafos de conhecimento temporais representa um investimento crescente em memória estruturada para melhor recuperação e raciocínio.

Quando Ativar

Ative esta skill quando:

  • Construir agentes que devem persistir conhecimento entre sessões
  • Escolher entre frameworks de memória (Mem0, Zep/Graphiti, Letta, LangMem, Cognee)
  • Precisar manter consistência de entidades entre conversas
  • Implementar raciocínio sobre conhecimento acumulado
  • Projetar arquiteturas de memória que escalam em produção
  • Avaliar sistemas de memória com benchmarks (LoCoMo, LongMemEval, DMR)
  • Construir memória dinâmica com extração automática de entidades/relacionamentos e memória auto-melhorável (Cognee)

Não ative esta skill para trabalhos adjacentes de outras skills:

  • Rascunhos baseados em arquivos, logs de execução e offloading de saída de ferramentas: filesystem-context.
  • Compactação de conversas ou resumos de handoff legíveis por humanos: context-compression.
  • Mascaramento, cache de prefixo, orçamentos de tokens ou escopo de recuperação dentro de uma trajetória: context-optimization.
  • Modelos formais de crença/desejo/intenção sobre estado RDF: bdi-mental-states.

Conceitos Principais

Pense na memória como um espectro, desde a janela de contexto volátil até o armazenamento persistente. Use por padrão a camada mais simples que atenda às necessidades de recuperação, porque evidências de benchmark sugerem que a complexidade da ferramenta importa menos do que a recuperação confiável para algumas cargas de trabalho de memória (claim-memory-locomo-filesystem-baseline). Adicione estrutura (grafos, validade temporal) somente quando a qualidade da recuperação degradar ou o agente precisar de raciocínio de múltiplos saltos, travessia de relacionamentos ou consultas de viagem no tempo.

Tópicos Detalhados

Panorama de Frameworks de Produção

Selecione um framework com base no padrão de recuperação dominante que o agente requer. Use esta tabela para restringir a lista, depois valide com os dados de benchmark abaixo.

FrameworkArquiteturaMelhor ParaTrade-off
Mem0Armazenamento vetorial + memória de grafo, backends plugáveisSistemas multi-tenant, integrações amplasMenos especializado para multi-agente
Zep/GraphitiGrafo de conhecimento temporal, modelo bi-temporalEmpresas que exigem modelagem de relacionamentos + raciocínio temporalRecursos avançados bloqueados em nuvem
LettaMemória autoeditável com armazenamento em camadas (in-context/core/archival)Introspecção completa do agente, serviços com estadoComplexidade para casos de uso simples
CogneeGrafo semântico multicamadas via pipeline ECL personalizável com Tarefas personalizáveisMemória de agente em evolução que se adapta e aprende; raciocínio de múltiplos saltosProcessamento mais pesado na ingestão
LangMemFerramentas de memória para fluxos de trabalho LangGraphEquipes já usando LangGraphFortemente acoplado ao LangGraph
Sistema de arquivosArquivos simples com convenções de nomenclaturaAgentes simples, prototipagemSem pesquisa semântica, sem relacionamentos

Escolha Zep/Graphiti quando o agente precisar de modelagem bi-temporal (rastreando tanto quando os eventos ocorreram quanto quando foram ingeridos) porque seu grafo de conhecimento de três camadas (episódio, entidade semântica, subgrafos comunitários) é excelente em consultas temporais. Escolha Mem0 quando a prioridade for rapidez na produção com infraestrutura gerenciada. Escolha Letta quando o agente precisar de introspecção profunda por meio de seu Ambiente de Desenvolvimento de Agentes. Escolha Cognee quando o agente precisar construir grafos semânticos multicamadas densos — ele organiza chunks de texto e tipos de entidade como nós com arestas de relacionamento detalhadas, e cada peça central (ingestão, extração de entidades, pós-processamento, recuperação) é personalizável.

Comparação de Desempenho com Benchmarks

Consulte esses benchmarks para definir expectativas, mas trate-os como sinais específicos de fonte para dimensões de recuperação, e não como rankings absolutos. Nenhum benchmark único é definitivo.

SistemaPrecisão DMRLoCoMoHotPotQA (múltiplos saltos)Latência
Cognee——Pontuação alta publicadaVariável
Zep (Temporal KG)Pontuação alta publicada—Faixa média entre métricasBaixa latência relatada
Letta (sistema de arquivos)—Linha de base do sistema de arquivos publicada——
Mem0—Linha de base de ferramenta especializada publicadaInferior em uma comparação—
MemGPTPontuação alta publicada——Variável
GraphRAGFaixa média/alta publicada——Variável
Linha de base RAG vetorialFaixa inferior publicada——Rápido

Principais conclusões: compare sistemas de memória pela forma de recuperação, não pela marca. Use números de benchmark como evidência datada que deve ser reavaliada antes de fazer afirmações sobre o produto; a regra de design estável é começar superficial, medir a qualidade da recuperação e adicionar estrutura semântica ou de grafo somente quando uma camada mais simples falhar.

Camadas de Memória (Pontos de Decisão)

Escolha a camada de memória mais superficial que satisfaça o requisito de persistência. Cada camada mais profunda adiciona custo de infraestrutura e complexidade operacional, então só aumente quando a camada mais superficial não puder atender à necessidade de recuperação ou durabilidade.

CamadaPersistênciaImplementaçãoQuando Usar
De trabalhoApenas janela de contextoRascunho no prompt do sistemaSempre — otimize com posições favorecidas pela atenção
Curto prazoEscopo da sessãoSistema de arquivos, cache em memóriaResultados intermediários de ferramentas, estado da conversa
Longo prazoEntre sessõesArmazenamento chave-valor → BD de grafosPreferências do usuário, conhecimento de domínio, registros de entidades
EntidadeEntre sessõesRegistro de entidades + propriedadesManter identidade ("João Silva" = mesma pessoa em várias conversas)
Grafo Temporal (Temporal KG)Entre sessões + históricoGrafo com intervalos de validadeFatos que mudam ao longo do tempo, consultas de viagem no tempo, prevenção de conflitos de contexto

Estratégias de Recuperação

Combine a estratégia de recuperação com a forma da consulta. A pesquisa semântica lida bem com consultas factuais diretas, mas degrada em raciocínio de múltiplos saltos; a travessia baseada em entidades lida com consultas "tudo sobre X", mas exige estrutura de grafo; a filtragem temporal lida com fatos mutáveis, mas requer metadados de validade. Quando a precisão é primordial e o orçamento de infraestrutura permite, combine estratégias em recuperação híbrida.

EstratégiaQuando UsarLimitação
Semântica (similaridade de embeddings)Consultas factuais diretasDegrada em raciocínio de múltiplos saltos
Baseada em entidades (travessia de grafo)"Conte-me tudo sobre X"Requer estrutura de grafo
Temporal (filtro de validade)Fatos mudam ao longo do tempoRequer metadados de validade
Híbrida (semântico + palavra-chave + grafo)Melhor precisão geralMais infraestrutura

Abordagens híbridas reduzem o contexto ativo recuperando apenas subgrafos ou memórias relevantes. O Cognee implementa recuperação híbrida por meio de vários modos de pesquisa em armazenamentos de grafo, vetorial e relacional, permitindo que os agentes selecionem a estratégia de recuperação que se ajusta ao tipo de consulta, em vez de usar uma abordagem única.

Consolidação de Memória

Execute a consolidação periodicamente para evitar crescimento ilimitado, porque o acúmulo descontrolado de memória degrada a qualidade da recuperação ao longo do tempo. Invalide, mas não descarte — preservar o histórico é importante para consultas temporais que precisam reconstruir estados passados. Acione a consolidação com base em limites de contagem de memória, qualidade degradada de recuperação ou intervalos agendados. Consulte a Referência de Implementação para obter código de consolidação funcional.

Orientação Prática

Escolhendo uma Arquitetura de Memória

Comece com a camada viável mais simples e adicione complexidade somente quando a qualidade da recuperação degradar. A maioria dos agentes não precisa de um grafo de conhecimento temporal no primeiro dia. Siga este caminho de escalonamento:

  1. Prototipagem: Use memória baseada em sistema de arquivos. Armazene fatos como JSON estruturado com carimbos de data/hora. Isso valida o comportamento do agente antes de se comprometer com a infraestrutura.
  2. Escala: Mude para Mem0 ou um armazenamento vetorial com metadados quando o agente precisar de pesquisa semântica e isolamento multi-tenant, porque a consulta baseada em arquivos não pode lidar com consultas de similaridade.
  3. Raciocínio complexo: Adicione Zep/Graphiti quando o agente precisar de travessia de relacionamentos, validade temporal ou síntese entre sessões. O Graphiti usa vínculos estruturados com relações genéricas, mantendo os grafos simples e fáceis de raciocinar; o Cognee constrói grafos semânticos multicamadas mais densos com arestas de relacionamento detalhadas — escolha com base em se o agente precisa de modelagem bi-temporal (Graphiti) ou estruturas de conhecimento interconectadas mais ricas (Cognee).
  4. Controle total: Use Letta ou Cognee quando o agente precisar autogerenciar sua própria memória com introspecção profunda, porque esses frameworks expõem operações de memória como ações de primeira classe do agente.

Integração com Contexto

Carregue memórias just-in-time em vez de pré-carregar tudo, porque cargas úteis de contexto grandes são caras e degradam a qualidade da atenção. Coloque as memórias recuperadas em posições favorecidas pela atenção (início ou fim do contexto) para maximizar sua influência na geração.

Recuperação de Erros

Lide com falhas de recuperação de forma elegante porque os sistemas de memória são inerentemente ruidosos. Aplique estas estratégias de recuperação em ordem:

  • Recuperação vazia: Recorra a uma pesquisa mais ampla (remover filtro de entidade, ampliar intervalo de tempo). Se ainda estiver vazio, peça esclarecimento ao usuário.
  • Resultados desatualizados: Verifique os carimbos de data/hora valid_until. Se a maioria dos resultados estiver expirada, acione a consolidação antes de tentar novamente.
  • Fatos conflitantes: Prefira o fato com o valid_from mais recente. Exiba o conflito ao usuário se a confiança for baixa.
  • Falha de armazenamento: Coloque as gravações em fila para repetição. Nunca bloqueie a resposta do agente em uma gravação de memória.

Exemplos

Exemplo 1: Integração Mem0

from mem0 import Memory

m = Memory()
m.add("Usuário prefere modo escuro e Python 3.12", user_id="alice")
m.add("Usuário mudou para modo claro", user_id="alice")

# Recupera a preferência atual (modo claro), não a desatualizada
resultados = m.search("Qual tema o usuário prefere?", user_id="alice")

Exemplo 2: Consulta Temporal

# Rastrear entidade com períodos de validade
graph.create_temporal_relationship(
    source_id=nodo_usuario,
    rel_type="MORA_EM",
    target_id=nodo_endereco,
    valid_from=datetime(2024, 1, 15),
    valid_until=datetime(2024, 9, 1),  # mudou-se
)

# Consulta: Onde o usuário morava em 1 de março de 2024?
resultados = graph.query_at_time(
    {"type": "MORA_EM", "source_label": "Usuário"},
    query_time=datetime(2024, 3, 1)
)

Exemplo 3: Ingestão e Pesquisa de Memória Cognee

import cognee
from cognee.modules.search.types import SearchType

# Ingerir e construir grafo de conhecimento
await cognee.add("./docs/")
await cognee.add("quaisquer dados")
await cognee.cognify()

# Enriquecer memória
await cognee.memify()

# O agente recupera contexto ciente de relacionamentos
resultados = await cognee.search(
    query_text="Qualquer consulta para sua memória",
    query_type=SearchType.GRAPH_COMPLETION,
)

Diretrizes

  1. Comece com memória baseada em sistema de arquivos; adicione complexidade somente quando a qualidade da recuperação exigir
  2. Rastreie validade temporal para qualquer fato que possa mudar ao longo do tempo
  3. Use recuperação híbrida (semântico + palavra-chave + grafo) para melhor precisão
  4. Consolide memórias periodicamente — invalide, mas não descarte
  5. Projete para falha de recuperação: sempre tenha um fallback quando a consulta de memória não retornar nada
  6. Considere as implicações de privacidade da memória persistente (políticas de retenção, direitos de exclusão)
  7. Avalie seu sistema de memória com LoCoMo ou LongMemEval antes e depois das alterações
  8. Monitore o crescimento da memória e a latência de recuperação em produção

Armadilhas

  1. Entulhar tudo no contexto: Carregar todas as memórias disponíveis no prompt é caro e degrada a qualidade da atenção. Use recuperação just-in-time com filtragem de relevância.
  2. Ignorar validade temporal: Fatos ficam desatualizados. Sem rastreamento de validade, informações desatualizadas envenenam o contexto e o agente age com suposições erradas.
  3. Superengenharia precoce: Memória simples baseada em sistema de arquivos pode superar ferramentas mais especializadas em alguns benchmarks (claim-memory-locomo-filesystem-baseline). Adicione sofisticação somente quando abordagens simples falharem de forma demonstrável.
  4. Sem estratégia de consolidação: O crescimento ilimitado da memória degrada a qualidade da recuperação ao longo do tempo. Defina limites de contagem de memória ou intervalos agendados para acionar a consolidação.
  5. Incompatibilidade de modelo de embedding: Escrever memórias com um modelo de embedding e ler com outro produz recuperação ruim porque os espaços vetoriais não são intercambiáveis. Fixe um único modelo de embedding para cada armazenamento de memória e re-embedde todas as entradas se o modelo mudar.
  6. Rigidez do esquema de grafo: Esquemas de grafo excessivamente estruturados (tipos de nó rígidos, rótulos de relacionamento fixos) quebram quando o domínio evolui. Prefira tipos de relação genéricos e sacos de propriedades flexíveis para que novos tipos de entidade não exijam migrações de esquema.
  7. Envenenamento por memória desatualizada: Memórias antigas que contradizem o estado atual corrompem o comportamento do agente silenciosamente. Implemente políticas de expiração ou decaimento de confiança para que o agente despriorize fatos antigos e explicite contradições quando detectadas.
  8. Incompatibilidade memória-contexto: Recuperar memórias que são tematicamente relacionadas, mas contextualmente erradas (por exemplo, uma memória sobre "Python" a cobra quando o agente está discutindo Python a linguagem). Mitigue incluindo metadados de sessão ou domínio nas entradas de memória e filtrando-os durante a recuperação.

Integração

Esta skill é proprietária da memória semântica persistente. Skills adjacentes são proprietárias de armazenamento de rascunhos, compactação e táticas de contexto:

  • filesystem-context: rascunhos baseados em arquivos, logs e execução simples

… [truncado para tradução]

Individual skills in this repo

This repo contains 19 individual skills — each has its own dedicated page.

advanced-evaluation

This skill should be used for advanced LLM evaluation: LLM-as-judge systems, direct scoring, pairwise comparison, rubric calibration, evaluator bias mitigation, confidence scoring, and automated quality assessment.

bdi-mental-states

This skill should be used when modeling agent mental states with BDI concepts: beliefs, desires, intentions, RDF-to-belief transformations, rational agency traces, cognitive agents, BDI ontologies, and neuro-symbolic AI integration.

book-sft-pipeline

This skill should be used for book-to-SFT pipelines: ePub extraction, literary segmentation, author-voice dataset construction, style-transfer training, LoRA workflows, and model evaluation for voice replication.

comprehensive-research-agent

Ensure thorough validation, error recovery, and transparent reasoning in research tasks with multiple tool calls

context-compression

This skill should be used when long-running agent sessions need context compression, structured summarization, compaction, token-per-task optimization, or durable handoff summaries that preserve decisions, files, risks, and next actions.

context-degradation

This skill should be used for diagnosing and mitigating context degradation: lost-in-middle failures, context poisoning, context clash, context confusion, attention-pattern issues, and agent performance degradation caused by accumulated or conflicting context.

context-fundamentals

This skill should be used to explain or reason about the foundational concepts of context engineering: what context is, the anatomy of a context window, how attention mechanics work, the U-shaped attention curve, why context quality matters more than quantity, and the mental models needed to interpret every other context-engineering decision. Use this for conceptual explanation, onboarding, and background reading. Route operational work to the specialized skills: debugging attention failures goes to context-degradation, token-efficiency work goes to context-optimization, conversation summarization goes to context-compression, and project-shape decisions go to project-development.

context-optimization

This skill should be used for improving context efficiency: context budgeting, observation masking, prefix or KV-cache strategy, partitioning, token-cost reduction, retrieval scoping, and extending effective context capacity without lowering answer quality.

evaluation

This skill should be used when building agent evaluation systems: deterministic checks, regression suites, multi-dimensional rubrics, quality gates, production monitoring, baseline comparison, and outcome measurement for agent pipelines.

filesystem-context

This skill should be used when agent work needs file-backed context: durable scratchpads, tool-output offloading, just-in-time discovery, cross-agent handoff files, filesystem memory, or cleanup policies for context stored outside the prompt.

harness-engineering

This skill should be used when designing autonomous agent harnesses: research loops, evaluation scaffolds, locked and editable surfaces, durable logs, novelty gates, pruning, rollback, PR preparation, and human approval boundaries.

hosted-agents

This skill should be used when designing hosted or background agent infrastructure: sandboxed execution, remote coding environments, warm pools, session persistence, multiplayer collaboration, self-spawning agents, or Modal-style sandboxes.

latent-briefing

This skill should be used when the user asks to "share memory between agents", "KV cache compaction for multi-agent", "orchestrator worker context", "latent briefing", "reduce worker tokens", "cross-agent memory without summarization", or discusses Attention Matching compaction, recursive language models with workers, or token explosion in hierarchical agents.

long-horizon-prompting

This skill should be used when writing, enhancing, or evaluating the launch prompt for a long-running autonomous agent or a parallel multi-agent orchestration attacking a hard problem: pseudo-formal task briefs that define terms and an exact success predicate linguistically, enumerate non-counting outcomes, set persistence rules with explicit stop and return conditions and effort floors, manage a diverse portfolio of parallel approaches with an approach registry and blocked-route bookkeeping, and gate the return on adversarial audit. Route agent topology and coordination protocols to multi-agent-patterns, runtime control surfaces and loop governance to harness-engineering, evaluator and quality-gate construction to evaluation, judge design to advanced-evaluation, and compaction or memory mechanics to context-compression and memory-systems.

multi-agent-patterns

This skill should be used when designing multi-agent systems that need context isolation, supervisor or swarm coordination, explicit handoffs, parallel execution, or a decision on whether multiple agents are justified.

project-development

This skill should be used for project-level decisions about LLM-powered systems: whether an LLM is the right primitive for the task at hand, the shape of a multi-stage batch or agent pipeline, token and cost estimation, choosing between single-agent and multi-agent at the project level, structured output design for downstream parsing, and structuring agent-assisted iteration. Use this when the unit of work is a whole project or a multi-stage pipeline. Route individual tool design to tool-design and individual skill-loading or context-budget tactics to context-optimization.

self-improvement-loops

This skill should be used when the harness, scaffold, workflow, or optimizer itself is the optimization target: recursive self-improvement (RSI) loops, meta-harnesses, self-improving harnesses that mine their own failures and propose bounded edits, evolutionary or population-based search over agent scaffolds, acceptance gates for self-modifying systems, and agentic context evolution where the mechanism that produces context is versioned and evolved. Route governance of a single autonomous loop (locked surfaces, durable logs, rollback, novelty gates, approval boundaries) to harness-engineering, measurement and quality-gate design to evaluation, judge design to advanced-evaluation, and remote sandbox infrastructure to hosted-agents.

self-managed-context

This skill should be used when a model gets read-write control over its own live context window instead of a harness-scheduled compaction policy: the context exposed as an editable file the model rewrites with code tools, model-driven eviction and in-place updates, the harness invariants that keep self-editing safe (pinned prefix, edit gate, edit receipts, budget readouts, rollback on overflow), the prefix-cache cost of mid-context edits, and steering or training the model's own context-editing strategy. Route note content and fixed-threshold summarization to context-compression, cache-stable layout under harness control to context-optimization, file offloading to filesystem-context, and loop governance to self-improvement-loops.

tool-design

This skill should be used for the tool-interface layer of an agent system specifically: writing tool descriptions agents can route on, designing tool schemas and response formats, naming conventions, actionable error recovery messages, MCP server design, tool-set consolidation, and deciding when to add or remove an individual tool. Use this when the unit of work is a single tool or a set of tools. Route project-shape, pipeline architecture, and task-model-fit decisions to project-development; route deciding whether to introduce sub-agents to multi-agent-patterns.

Habilidades Relacionadas