Gerenciamento de Memória (Versão DSH)
Memória de longo prazo entre sessões: Índice L1 (visível a cada rodada) + Fatos do Ambiente L2 + Experiências de Tarefas L3.
Gatilhos
Leitura (quando consultar a memória)
- Ao iniciar uma nova tarefa: se a tarefa envolver o ambiente local, configurações de ferramentas, uma pilha tecnológica específica ou tarefas similares feitas anteriormente → primeiro
memory_listpara ver o que existe, depoismemory_readpara recuperar entradas relevantes - Ao encontrar dificuldades/obstáculos:
memory_readpara verificar se há SOPs relacionados (correspondência de palavras-chave com nomes de arquivos emsops/ou seção facts) - Índice de memória nos prompts do modelo (memory:index): Índice de existência L1 visível a cada rodada — quando vir palavras de gatilho relevantes, deve ativamente usar
memory_read/memory_listpara obter detalhes
Escrita (quando sedimentar a memória)
Quando uma tarefa é concluída (ou uma etapa é concluída) e existem informações de ação verificada com sucesso, use memory_write:
O que pode ser escrito (deve incluir evidências):
- Fatos específicos do ambiente: caminhos, configurações, parâmetros testados, comportamento de ferramentas (→
entry_type: fact) - Experiências de tarefas complexas: pontos problemáticos que exigiram várias tentativas para serem resolvidos, pré-condições ocultas, etapas estáveis (→
entry_type: sop) - Regras gerais de armadilhas (→ também pode ser feito via
memory_write sopou sugerindo diretamente a manutenção em [RULES])
Proibido de escrever (escrever isso é poluição):
- ❌ Informações sem evidências de verificação (sem ação, sem memória)
- ❌ Conhecimento inerente do modelo, suposições de raciocínio, hipóteses não verificadas
- ❌ Estado volátil: timestamps, PIDs, caminhos temporários, IDs de uso único
- ❌ Senso comum geral, logs, detalhes do processo de raciocínio
Sincronização do Índice
memory_writejá sincroniza automaticamente o índice L1, geralmente não é necessário operação manual- Após modificar manualmente os arquivos
facts.md/sops/→ usememory_indexpara reconstruir o índice - Quando o índice ultrapassar 30 linhas: simplifique [RULES] (modificações no nível da palavra, proibido sobrescrever o texto completo)
Estrutura de Armazenamento
<home>/.dsh/memory/
├── memory_management_sop.md Regras meta L0 (como gerenciar a memória)
├── index.txt Índice L1 (≤30 linhas: lista de existência L2/L3 + RULES)
├── facts.md Fatos do Ambiente L2 (## SEÇÃO)
├── sops/*.md Experiências de Tarefas L3
└── file_access_stats.json Estatísticas de frequência de leitura
Ferramentas
| Ferramenta | Propósito |
|---|---|
memory_list | Listar toda a memória (facts + sops + número de linhas do índice) |
memory_read | Ler uma memória específica (índice / tópico fact / nome de arquivo sop) |
memory_write | Escrever memória (fact/sop, evidência obrigatória) |
memory_index | Reconstruir a seção automática do índice L1 |
Princípios
- Verificação por Ação: No Execution, No Memory. Escreva apenas informações verificadas com sucesso.
- Mínimo Suficiente: Conteúdo o mais curto possível; memorize apenas informações cujo esquecimento resultaria em retrabalho de alto custo.
- Não excluir nem modificar fatos verificados: Pode comprimir, migrar, mas é proibido descartar.
- Escrita Ativa: A escrita de memória é sempre iniciada ativamente pelo modelo/usuário, não modifica automaticamente configurações ou instala plugins.