Knowl
Memória local-first sempre atual para agentes de IA
Documentação
Local-first. Tipado. E aposentado no momento em que deixar de ser verdade.
Início rápido · Por que a substituição · O que é armazenado · Recursos · Configuração do agente · Visualizador · Requisitos · Referência completa →
Agentes de codificação começam cada sessão em branco, então as equipes anotam as coisas — e essas anotações só crescem. Seis meses depois, o armazenamento ainda relata o banco de dados do qual você migrou na primavera passada, porque nada nunca informou a ele que aquela decisão havia terminado.
Knowl é memória persistente entre sessões para Claude Code, Cursor e Codex: um
armazenamento local ao repositório de átomos de conhecimento tipados — decisões, restrições, arquitetura, fatos,
metas, estado e habilidades — lidos e gravados por meio de um servidor de memória MCP
ou pela CLI knowl, onde uma substituição aposenta seu predecessor no momento da gravação em vez de
ficar ao lado dele.
Início rápido
Requer Node.js 22 ou posterior.
npm install -g @dat999zx/knowl
cd your-project
knowl init
knowl init cria .knowl/, instala os arquivos de orientação do projeto, atualiza .gitignore e
oferece configuração de MCP e ciclo de vida para quaisquer agentes que detectar — Claude Code, Codex, Cursor,
Gemini CLI, Claude Desktop. Também aquece o modelo de incorporação local, mas nunca depende de que esse
download seja bem-sucedido.
Registre algo que vale a pena manter:
knowl decide "Use SQLite" "Use SQLite for local project memory." \
--reasoning "Keeps storage repository-local and simple to operate." \
--alternatives PostgreSQL MongoDB \
--tags database local-first
Leia de volta, pela CLI ou por qualquer agente conectado:
knowl query "why sqlite" # search project memory
knowl state # the active memory, as a hierarchy
knowl status # repository, memory, AI, and workspace status
knowl doctor # check setup, retrieval, and agent registration
Em seguida, inicie uma nova sessão de agente para que o host capture sua orientação e o registro MCP. A CLI e
knowl_query leem o mesmo armazenamento sob as mesmas regras de governança.
A ideia: memória que se aposenta sozinha
A maioria dos sistemas de memória é somente de acréscimo. Armazenar "migramos para SQLite" deixa "usamos PostgreSQL"
ativo e recuperável, então o agente obtém ambos e escolhe por classificação. Knowl trata uma gravação sobre o mesmo assunto
como uma correção: o predecessor é marcado como superseded, sai da recuperação normal e permanece
consultável por meio de knowl timeline.
Esse único comportamento é a maior parte da diferença de precisão. No MemoryAgentBench corpus de Resolução de Conflitos — 455 fatos, 100 perguntas sobre qual fato é atual, recuperação top-5, sem leitor de LLM:
| Configuração | Top-1 | Retornos desatualizados | Átomos ativos |
|---|---|---|---|
| Substituição ATIVADA | 98,0% | 2 / 100 | 306 |
| Substituição DESATIVADA | 47,0% | 62 / 100 | 455 |
Mesmo corpus, mesmo classificador, mesmo caminho de consulta. A única variável é se o fato desatualizado ainda está ativo. Esta é uma medição em nível de recuperação no próprio harness do Knowl: pergunta se o fato atual volta primeiro, sem modelo no loop.
Verificado de ponta a ponta, no harness do próprio benchmark
Como um número que você mesmo pontua vale menos do que um que outra pessoa pontua, a mesma afirmação foi re-executada dentro do harness do MemoryAgentBench, pontuada pelo seu próprio código, com um LLM lendo o que Knowl retornou — a configuração mais difícil, totalmente de ponta a ponta, no maior contexto que a tarefa oferece:
| Sistema | FactConsolidation-SH @262K |
|---|---|
| Knowl | 90 |
| GPT-4o (contexto longo) | 60 |
| BM25 | 56 |
| NV-Embed-v2 | 55 |
| HippoRAG-v2 | 54 |
| GPT-4o-mini (contexto longo) | 45 |
| Cognee | 28 |
| MemGPT | 28 |
| Mem0 | 18 |
18.332 fatos, 100 perguntas, correspondência exata de substring. Cada linha usa gpt-4o-mini como leitor, incluindo o Knowl — o artigo declara isso para todos os agentes RAG e de memória, então estas são comparações justas. O número do Knowl foi medido aqui; todos os outros números são do artigo MemoryAgentBench, Tabela 2. Sistemas que o artigo não avalia nesta tarefa não são listados.
Desativar a substituição nesse mesmo harness reduz o Knowl para 73, e a diferença se mantém em uma mudança de 40× no tamanho do corpus:
| Contexto | Substituição ATIVADA | DESATIVADA | Diferença |
|---|---|---|---|
| 262K | 90 | 73 | +17 |
| 6K | 94 | 78 | +16 |
As duas seções medem coisas diferentes e não são comparáveis entre si: 98% é recuperação top-1 em 6K sem leitor, 90 é precisão de ponta a ponta em 262K com um. Apenas a segunda é comparável aos sistemas publicados acima. Veja benchmarks para o protocolo, os resultados verificados e o que a tarefa não cobre — incluindo multi-hop, onde Knowl pontua 7 contra um teto de recuperação de 14 pontos.
A substituição é uma correção, não uma exclusão: o item, suas afirmações e seu histórico sobrevivem.
Não é uma maquete — a mesma sequência contra a CLI publicada, gravada a partir de
demo.tape:
O que é armazenado
Cada átomo tem exatamente uma de sete categorias:
| Categoria | Use para |
|---|---|
fact | Verdades estáveis do projeto, convenções e comportamento verificado |
decision | Uma opção selecionada com raciocínio e alternativas |
goal | Um resultado pretendido que orienta o trabalho futuro |
constraint | Uma regra ou limite que deve continuar valendo |
architecture | Como os componentes estão organizados e interagem |
state | Progresso atual, prontidão, bloqueadores ou status operacional |
skill | Um procedimento reutilizável ou descrição de fluxo de trabalho aprendido |
Junto ao conteúdo, cada átomo mantém um status (active, deprecated, rejected, archived,
superseded), um sinalizador de atualidade, confiança, tags, commit de origem, caminhos afetados e evidências
opcionais apontando para arquivos, commits, testes, comandos, URLs ou símbolos de código indexados. Evidências de arquivo e
símbolo ficam desatualizadas por conta própria quando o código se move, que é como um átomo admite que pode estar
desatualizado em vez de afirmar uma versão do repositório que não existe mais.
O que Knowl deliberadamente não armazena são suas conversas. A captura do ciclo de vida registra eventos limitados e resumos — nunca prompts, transcrições, stdout ou variáveis de ambiente. A busca por transcrição bruta existe como um índice opcional, desativado por padrão sobre arquivos que o host já gravou.
→ Referência do modelo de conhecimento
Conectando um agente
|
Claude Code MCP · ciclo de vida · subagentes |
Codex MCP · ciclo de vida · subagentes |
Cursor MCP · ciclo de vida |
Gemini CLI MCP · loop manual |
Claude Desktop MCP · loop manual |
knowl serve expõe o armazenamento via MCP stdio; knowl init o registra para você. O fluxo de trabalho que a
orientação instalada pede que os agentes sigam é curto:
- Consulte a memória com as palavras que nomeiam o assunto antes de ler arquivos do repositório.
- Use um resultado ativo diretamente; inspecione arquivos apenas em caso de ausência, conflito ou resultado desatualizado.
- Armazene descobertas duráveis, metas declaradas e diagnósticos recorrentes conforme avança, e corrija memória contradita em vez de duplicá-la.
Na prática, isso se parece com isto — uma nova sessão, sem contexto, nada colado:
You why did we pick SQLite over Postgres?
Agent → knowl_query "sqlite postgres database choice"
← decision · Use SQLite · active · fresh
"Keeps storage repository-local and simple to operate."
alternatives: PostgreSQL, MongoDB
tags: database, local-first
SQLite keeps the store repository-local and simple to operate.
Postgres and MongoDB were both considered and rejected on that
basis.
O agente respondeu antes de abrir um único arquivo, e sabia as opções que você rejeitou — o que o código não pode informar, porque alternativas rejeitadas não deixam rastro em um código-fonte.
| Host | MCP | Ciclo de vida automático | Subagentes | Notas |
|---|---|---|---|---|
| Claude Code | Sim | Sim | Sim | A orientação de prompt também é instalada |
| Codex | Sim | Sim | Sim | Turnos principais compartilham uma sessão de memória |
| Cursor | Sim | Sim | Não | Finaliza por turno |
| Gemini CLI | Sim | Não | Não | MCP mais o loop de trabalho manual |
| Claude Desktop | Sim | Não | Não | MCP mais o loop de trabalho manual |
Onde hooks estão disponíveis, eles controlam o ciclo de vida da sessão: contexto de inicialização, captura, checkpoints
e finalização acontecem sem que o agente seja solicitado. Onde não estão, knowl task run,
task start, task checkpoint e task finish cobrem o mesmo terreno manualmente.
knowl init grava o registro MCP para cada host que detecta. Para conectar um manualmente, a
entrada é a mesma em todos os lugares:
{
"mcpServers": {
"knowl": { "command": "knowl", "args": ["serve"] }
}
}
Use knowl.cmd como comando no Windows. Codex lê a mesma entrada sob mcp_servers.
→ Ferramentas e recursos MCP · Referência do ciclo de vida
Para que serve o Knowl
Knowl faz um trabalho: manter a verdade de engenharia de um repositório precisa para os agentes que trabalham nele. Não preferências de usuário, não histórico de chat — as decisões, restrições e arquitetura de um código-fonte, e quais delas ainda são verdadeiras hoje.
Três escolhas decorrem disso:
- Tipado, não texto livre. Uma decisão carrega raciocínio e as alternativas que você rejeitou. Uma
restrição é uma regra que deve continuar valendo. Espera-se que um átomo
statefique desatualizado. A recuperação pode classificar com base nessas diferenças; não pode classificar com base em parágrafos em um arquivo de notas. - Governado, não somente de acréscimo. Status, atualidade, proveniência, identidade de conflito e substituição permitem que o armazenamento diga que algo deixou de ser verdade. Essa é toda a diferença entre memória e uma pilha cada vez maior de notas.
- Local ao repositório, não um serviço. O banco de dados fica ao lado do código que descreve. Sem conta, sem egresso, sem fornecedor entre você e seu próprio histórico de projeto.
Knowl deliberadamente não é uma camada de personalização. Não tem opinião sobre seus usuários e não mantém transcrições próprias.
Recursos
Tudo abaixo funciona pela CLI e por qualquer agente conectado via MCP, contra o mesmo banco de dados local. Sem conta, sem servidor, sem chave de API. Cada item vincula à referência completa para o detalhe — e para os limites.
|
♻️ Conhecimento que se corrige Sete tipos de átomos tipados, onde uma gravação sobre o mesmo assunto aposenta seu predecessor em vez de
ficar ao lado dele. Esse único comportamento é a diferença de 90 contra 73.
Evidências anexadas a um arquivo ou símbolo ficam desatualizadas por conta própria quando o código se move.
|
🎯 Recuperação otimizada para agentes Primária por vetores com fallback limitado de BM25, reordenada por atualidade, status e confiança, para que a resposta atual vença em vez da meramente semelhante. O modelo de embeddings é local e opcional — sem ele, você ainda tem recuperação por palavras-chave, e nada sai da máquina.
|
|
⏱️ Trabalho que sobrevive à sessão No Claude Code, Codex e Cursor, os hooks gerenciam inicialização, captura, checkpoints e finalização sem que o agente seja solicitado. Uma finalização limpa destila até oito candidatos duráveis. Estacione um fluxo de trabalho sob uma chave e retome-o em qualquer sessão, de qualquer diretório.
|
🔗 Espaços de trabalho Seu repositório de API aprendeu algo que o repositório de frontend precisa. Vincule-os e uma consulta se expande, enquanto cada repositório mantém seu próprio banco de dados e seu próprio limite de propriedade. Abra um átomo compartilhado por pares na íntegra por ID, ou finalize o trabalho desse repositório daqui nomeando-o na chamada. O conhecimento que um repositório já possui é compartilhado somente quando você o promove.
|
|
📦 Procedimentos reutilizáveis Empacote um procedimento com seus scripts sob
|
💾 Seus dados e como recuperá-los Exportação e importação JSONL com soma de verificação e quatro políticas explícitas para quando o mesmo átomo mudou em dois lugares. A restauração verifica esquema, tamanho, SHA-256 e integridade do SQLite antes de tocar em qualquer coisa e tira um snapshot pré-restauração primeiro.
|
Os comandos que valem a pena conhecer no primeiro dia:
knowl query "auth design" # search project memory
knowl state # the active memory, as a hierarchy
knowl conflicts # items that contradict each other
knowl timeline <item-id> # every version an atom ever had
knowl context --token-budget 1500 # a fixed-size briefing for an agent
knowl pr --since origin/main # knowledge your diff may invalidate
knowl doctor # setup, retrieval, and registration
Conhecimento que se corrige — sete tipos de átomos tipados e uma gravação que aposenta o que substitui
- Sete tipos de átomos — listados acima. Estrutura em vez de um arquivo de anotações que só cresce.
- Substituição automática — uma gravação do mesmo assunto aposenta seu predecessor. Esta é a diferença de 90 vs. 73 acima.
- Identidade de conflito — marque um átomo como exclusivo e o Knowl recusa uma segunda resposta ativa para a
mesma pergunta, em vez de manter ambas silenciosamente.
knowl conflicts - Histórico completo — cada versão que um átomo já teve sobrevive como uma asserção imutável.
knowl timeline <item-id> - Viagem no tempo — pergunte o que o projeto acreditava em uma data passada:
knowl query "auth design" --as-of 2026-01-01T00:00:00Z - Evidências — anexe arquivos, símbolos, commits, testes, comandos ou URLs a um átomo. Evidências de arquivo e símbolo ficam desatualizadas sozinhas quando o código muda.
- Detecção de desvio —
knowl pr --since origin/mainsinaliza conhecimento que seu diff pode ter invalidado, antes de você mesclá-lo. - Inteligência de código — índice incremental Tree-sitter sobre
.ts/.tsx/.js/.jsx, para que evidências possam apontar para localizadoressymbol://, não apenas números de linha.knowl index-code - Gravações seguras contra segredos — toda gravação é verificada quanto a segredos detectados, caminhos sensíveis e conteúdo superdimensionado antes de ser salva. Memória de longo prazo é o último lugar onde uma credencial deveria parar.
Recuperação otimizada para agentes — a resposta atual vence, não apenas a semelhante
- Classificação primária por vetores com fallback limitado de BM25, reordenada por atualidade, status,
confiança e recência — para que a resposta atual vença, não apenas a semelhante. (Este é o
caminho de agente/MCP; um
knowl queryde repositório único da CLI é lexical.) - Funciona offline. O modelo de embeddings é local e opcional; sem ele, você ainda tem recuperação por palavras-chave. A recuperação nunca envia sua consulta para lugar nenhum.
- Cinco predefinições de embeddings incluídas, incluindo uma multilíngue que cobre mais de 200 idiomas, além de
custompara seu próprio modelo ONNX.knowl config set-model <model> - Suporte a identificadores exatos — nomes de arquivo, IDs de item e localizadores
symbol://ainda são encontrados mesmo quando a similaridade semântica é fraca. - Pacotes de contexto com orçamento de tokens — entregue a um agente um briefing de tamanho fixo com restrições fixadas
primeiro, para que regras inegociáveis nunca sejam truncadas:
knowl context --query "auth rollout" --token-budget 1500 - Feedback de uso — agentes relatam se um resultado ajudou, e
knowl accessmostra o que é muito usado, o que está desatualizado e o que continua causando correções.
Trabalho que sobrevive ao fim de uma sessão — hooks, loops de trabalho, bastões de handoff e chaves de retomada
- Ciclo de vida automático no Claude Code, Codex e Cursor — inicialização, captura, checkpoints e finalização acontecem por meio de hooks sem que o agente seja solicitado.
- Loops de trabalho para todo o resto —
knowl task start,checkpoint,finishou envolva um único comando comknowl task run "Run tests" -- npm test. - Promoção no fim da sessão — uma finalização limpa destila até oito candidatos duráveis da
sessão, e um comando que foi bem-sucedido três vezes se torna um átomo
skillque o descreve. - Handoff — deixe um bastão para a próxima sessão neste repositório. Ele é entregue uma vez e depois arquivado.
- Chaves de retomada — estacione um fluxo de trabalho sob uma chave curta que você mantém e retome-o em qualquer sessão,
de qualquer diretório, quantas vezes quiser depois.
knowl resume <key> - Busca de transcrição opcional — desativada por padrão, e desativada significa que nada existe no disco. Ative-a e a prosa de sessões passadas se torna pesquisável, para que uma falha de memória degrade para uma busca mais lenta em vez de amnésia.
Espaços de trabalho: muitos repositórios, uma memória compartilhada — você decide o que cada repositório compartilha
Seu repositório de API aprendeu algo que o repositório de frontend precisa. Vincule-os e uma consulta se expande — enquanto cada repositório mantém seu próprio banco de dados e seu próprio limite de propriedade.
knowl workspace init product # create the workspace
knowl workspace add product # run inside each repo that joins it
# ...or --default-visibility repo to keep its writes private
knowl workspace promote # pick what to share from a list
knowl workspace promote --category decision --apply # or name it outright
Entrar em um espaço de trabalho compartilha o que o repositório grava a partir de então e avisa quando o faz; passe
--default-visibility repo para recusar. O que o repositório já sabe é compartilhado somente quando você o
promove. Resultados de pares são rotulados com o repositório que os possui, e um compartilhado pode ser aberto
na íntegra por ID — sem seu affectedPaths ou evidências, que são resolvidos contra um checkout em que você
não está. Um par ausente ou ilegível é ignorado e divulgado, nunca um motivo para
sua busca local falhar.
Gravar em um repositório irmão é deliberado, não incidental. Um agente nomeia o repositório na chamada
e essa única chamada é executada como aquele repositório — seu armazenamento, sua configuração, suas regras de propriedade, carimbadas como
suas — exatamente como cd lá sempre se comportou para a CLI. Não nomeie nada e um ID estrangeiro
é recusado como antes. De qualquer forma, o conhecimento privado de um repositório permanece privado até ser promovido.
Procedimentos reutilizáveis — habilidades baseadas em arquivos que você pode inspecionar antes de executar
- Habilidades baseadas em arquivos — empacote um procedimento com seus scripts sob
.knowl/skills/e depois inspecione-o antes de ele ser executado.knowl skill list·read·run - Síntese determinística — combine vários átomos em um resumo de arquitetura sem envolvimento de provedor
de IA:
knowl synthesize --scope storage
Seus dados e como recuperá-los — exportação portátil, snapshots verificados e um comando de diagnóstico
- Exportação/importação portátil — JSONL com soma de verificação e quatro políticas de divergência explícitas para quando
o mesmo átomo mudou em dois lugares.
knowl export·knowl import --on-divergence newer - Snapshots verificados —
knowl snapshot creategrava um manifesto de soma de verificação; a restauração verifica versão do esquema, tamanho, SHA-256 e integridade do SQLite antes de tocar em qualquer coisa e tira um snapshot pré-restauração primeiro. - Coleta de lixo que pré-visualiza por padrão e protege qualquer coisa usada recentemente.
knowl gc knowl doctor— um comando que verifica configuração, configurações, integridade, esquema, recuperação, cobertura de vetores, registro de agentes e saúde do espaço de trabalho.- IA opcional — configure um provedor para
knowl aske ingestão de texto bruto. Todos os recursos acima funcionam sem um.
Veja: o visualizador local
knowl view inicia um inspetor somente leitura em 127.0.0.1 com um token de acesso novo por inicialização —
saber a porta não é suficiente para ler qualquer coisa.
knowl view
Pesquise, filtre por categoria, identifique anéis desatualizados, foque uma vizinhança e abra qualquer átomo para ler suas evidências e linha do tempo. O grafo vincula átomos por meio de tags compartilhadas e arestas derivadas de categoria — um auxílio de navegação, não um grafo causal ou de evidências. Ele mostra conteúdo local completo em todos os status, então o vínculo de loopback é o limite de privacidade: não o coloque atrás de um proxy público ou túnel.
Todo o resto
27 ferramentas MCP (mais 3 quando a busca de transcrição está ativa, 1 quando conectado a um espaço de trabalho em nuvem, 1 quando vinculado a um espaço de trabalho local e 1 quando o impacto de mudanças está ativo)
e dois URIs de recurso · a
CLI completa, de knowl status a knowl audit · uma auditoria de integridade somente leitura ·
avaliação de recuperação que você pode executar por conta própria contra a governança verificada e as suítes de
regressão de 500 casos com knowl eval.
→ Referência da CLI · Ferramentas MCP · Benchmarks
Requisitos e dados locais
Node.js 22 ou posterior. Tudo o que o Knowl grava para um projeto fica sob .knowl/, que knowl init
adiciona a .gitignore:
| Caminho | Contém |
|---|---|
.knowl/config.json | Configuração de projeto, busca, segurança, IA e espaço de trabalho |
.knowl/knowl.db | Átomos, asserções, commits de conhecimento, índice de texto completo, feedback, embeddings |
.knowl/skills/ | Pacotes de habilidades baseados em arquivos |
Manifestos de espaço de trabalho ficam fora dos repositórios membros, porque seus caminhos de checkout são específicos da máquina. Exportações e snapshots são gravados somente quando você os solicita.
Documentação
Tudo acima é o resumo. A referência completa é um documento que cobre cada subsistema em profundidade — incluindo as partes que são deliberadamente limitadas, que é geralmente o que você realmente precisa saber.
| Se você quiser saber… | Vá para |
|---|---|
| O que é um átomo e o que cada campo significa | Modelo de conhecimento |
| Como uma consulta é classificada e o que desempata | Recuperação e contexto |
| O que um hook registra e quando | Tarefas, sessões, ciclo de vida |
| Como um átomo percebe que o código mudou | Evidência e deriva |
| Como vários repositórios compartilham memória com segurança | Workspaces |
| Como um procedimento se torna reutilizável | Habilidades e síntese |
| Como exportar, criar snapshot ou restaurar | Portabilidade e manutenção |
| O que o visualizador mostra e seu limite de privacidade | Visualizador local |
| Como as partes se encaixam e onde estão os limites de confiança | Arquitetura |
| Como conectar um host específico | Configuração do agente |
| Como os números desta página foram medidos | Benchmarks |
| Todos os comandos e todas as flags | Referência da CLI |
| Todas as ferramentas e recursos do MCP | Ferramentas MCP |
| O que precisa de um provedor e o que nunca precisa | IA opcional |
| Exatamente o que é gravado no disco | Dados locais |
Contribuindo
Consulte CONTRIBUTING.md para configuração, as verificações a executar antes de um pull request e as convenções que este código-fonte segue. Pede-se que os contribuidores concordem com o Contrato de Licença de Contribuidor uma única vez, no primeiro pull request.
Licença
Knowl é licenciado sob a Apache License 2.0. A Apache-2.0 não concede direitos de marca registrada.