Memória Persistente e Auto-Evolutiva (memory)
Princípio central: Salve ativamente, não espere o usuário pedir. Transforme o ambiente do usuário em um sistema "quanto mais usa, mais te entende": Memória em três camadas (fatos/padrões/lições) + resumo de sessão + roteamento de lições (auto-evolução).
🚀 Início da Sessão (a cada nova sessão)
- Se existir
~/.agents/memory/MEMORY.md, leia primeiro para entender rapidamente o histórico, preferências e sessões recentes do usuário. - Quando precisar de detalhes, use
memory.py get <id>oumemory.py search <palavra-chave>para aprofundar. - Apresente ao usuário as informações-chave lembradas (de forma resumida), demonstrando continuidade.
📌 Salvamento Ativo (SEMPRE ATIVO, salve ao encontrar, não espere o fim da sessão)
Ao se deparar com as situações abaixo, imediatamente chame memory.py add <tipo> <conteúdo> para salvar:
| Tipo | Quando Salvar | Exemplo |
|---|---|---|
fact | Usuário revela preferências/hábitos/informações de identidade; decisões importantes do projeto, escolhas técnicas, convenções; usuário diz explicitamente "lembre disso" | "Usuário prefere respostas em português" "Projeto usa pnpm + TypeScript" |
pattern | Mesmo comportamento/problema aparece 2 vezes ou mais (incluindo a atual) | "Toda vez que instala uma skill, o usuário pede para avaliar dependências primeiro" |
lesson | Experiência aprendida após um erro, conclusão de troubleshooting, armadilha descoberta | "O backend padrão do ddgs do DuckDuckGo passa pelo Yandex e causa timeout; é necessário usar backend='html'" |
- Anexe
--tag a,bpara facilitar a busca. - A ferramenta realizará deduplicação aproximada automaticamente; conteúdos duplicados gerarão um aviso em vez de armazenamento repetido.
🗂️ Fim da Sessão (ou quando o usuário pedir "resumir sessão/sintetizar")
Execute em ordem:
- Revise a sessão atual e extraia as 2 a 5 informações mais importantes.
- Classifique e salve:
fact(novas preferências/decisões) →pattern(novos padrões) →lesson(novas experiências). - Roteamento de lições (auto-evolução): Para cada lição, avalie:
- É uma metodologia reutilizável (ex.: "processo padrão para um tipo de tarefa") → Crie ou atualize uma skill em
~/.agents/skills/(usando ferramentas write/edit) para que entre em vigor automaticamente na próxima vez; - É um fato pontual → Salve como
fact; - É específico do ambiente/conta (ex.: configuração necessária para uma ferramenta) → Salve apenas como
lesson.
- É uma metodologia reutilizável (ex.: "processo padrão para um tipo de tarefa") → Crie ou atualize uma skill em
- Use
memory.py session-save "<Resumo da sessão em uma frase>" --key palavra-chave1,palavra-chave2para salvar o registro da sessão. - Execute
memory.py syncpara atualizar a visão geral em MEMORY.md.
🔍 Consulta de Memórias
Se o usuário perguntar "eu disse antes..." / "da última vez..." / "minhas preferências..." → memory.py search <palavra-chave>; listar todas → memory.py list.
⚙️ Referência Rápida da Ferramenta
P=~/.agents/skills/pi-memory-evo/memory.py
$P init # Inicialização única
$P add fact "conteúdo" --tag preferência # Salvar fato/padrão/lição
$P session-save "resumo" --key a # Salvar resumo de sessão
$P search palavra-chave # Buscar
$P list # Listar todas
$P get <id> / update <id> <novo conteúdo> / delete <id> # Gerenciar
$P stats # Estatísticas
$P sync # Atualizar visão geral MEMORY.md
📂 Localização dos Arquivos
- Dados:
~/.agents/memory/memory.json(memória em quatro camadas, JSON) - Visão geral:
~/.agents/memory/MEMORY.md(leia ao iniciar a sessão) - Habilidade em si:
~/.agents/skills/pi-memory-evo/(ferramenta + esta documentação)
⚠️ Limites
- Não armazene credenciais sensíveis: tokens, senhas, chaves nunca devem ser salvos.
- Respeite a vontade do usuário: Se o usuário disser "não guarde isso", não salve; se disser "esqueça X", use
deleteno item correspondente. - A memória é um auxílio, não substitui confirmação: em operações importantes, a intenção atual do usuário sempre prevalece.