Sobre o projeto

abmind é um sistema de memória persistente projetado para agentes de IA que operam continuamente, particularmente aqueles que lidam com conversas multilíngues. Não é um wrapper de banco de dados vetorial, mas um motor completo de gerenciamento de memória construído sobre SQLite. **Arquitetura Central** - **Ingest**: As mensagens são registradas, então a extração inline cria memórias tipadas, classificadas e pontuadas. - **Recall**: As consultas acionam uma busca em 4 camadas: FTS5 full-text (inglês), FTS5 full-text (idioma original), correspondência difusa por trigramas e embeddings semânticos (similaridade de cosseno). Os resultados são classificados, deduplicados e filtrados por classificação. - **Sleep**: Um pipeline de manutenção noturno realiza resumos diários, extração, análise retrospectiva, atribuição de tópicos, darwinismo de memória (promover/rebaixar/mesclar), tradução, rastreamento de arco emocional, consolidação e coleta de lixo. Ele executa de 10 a 14 chamadas de LLM por ciclo de forma autônoma. **Principais Recursos** - **Suporte a Idiomas Aglutinantes**: Usa busca difusa por trigramas junto com FTS5 para lidar com idiomas como japonês, turco e húngaro, onde os limites das palavras não são claros. Isso permite armazenar e recuperar em qualquer idioma. - **Cofre de Credenciais**: Os segredos são criptografados em repouso (AES-256-GCM), redigidos do histórico de conversas e só podem ser recuperados pelo proprietário por meio de recall filtrado por classificação. Os backups nunca contêm credenciais brutas. - **Contexto Multi-Resolução**: Fornece três níveis de zoom — turnos recentes verbatim, átomos comprimidos por turno (formato ABM-L com redução de 3x em tokens) e resumos temáticos de longo prazo — oferecendo 3x mais cobertura dentro do mesmo orçamento de tokens. - **Classificação**: Usa Códigos de Almirantado da NATO (0 público a 3 secreto/criptografado) com pontuações de confiança, integridade e credibilidade. O recall filtra pela autorização do usuário, e o isolamento multiusuário evita vazamento entre usuários. - **Detecção de Injeção**: 14 categorias de detecção (injeção de prompt, jailbreak, sequestro de papel, etc.) bloqueiam entrada maliciosa antes que ela entre na memória, com sensibilidade configurável. **Caminhos de Integração** - **Biblioteca**: Importe `MemoryManager` em qualquer agente Node.js. - **CLI**: Comandos como `abmind store`, `abmind recall`, `abmind sleep` e `abmind mcp`. - **Servidor MCP**: Inicia um servidor MCP stdio para editores e hosts como kiro-cli, Claude Code, Codex CLI, Gemini CLI, Cursor e OpenCode. - **Hooks de Agente**: Compatível com Kiro CLI, Claude Code, Gemini CLI e Codex. - **Frameworks**: Funciona como plugin para Hermes Agent, slot de memória nativo para OpenClaw e memória em processo para abTARS. **Armazenamento de Dados** O local padrão é `~/.abmind/` (substituível com `ABMIND_HOME`). Contém um banco de dados SQLite (`memory.db`) para mensagens, memórias extraídas e embeddings, além de resumos narrativos diários e logs de auditoria do sleep. Os prompts de sleep podem ser substituídos. **Configuração de LLM** A manutenção do sleep requer definir `ABMIND_LLM_CMD` com um placeholder `{PROMPT_FILE}`, suportando comandos como `kiro-cli chat --no-tool-use < {PROMPT_FILE}` ou `cat {PROMPT_FILE} | claude -p`. **Versão**: 0.2.7 | **Licença**: Apache 2.0