Skip to main content
memory-wiki é um plugin integrado que compila conhecimento durável em uma wiki navegável: páginas determinísticas, alegações estruturadas com evidências, proveniência, painéis e resumos legíveis por máquina. Ele não substitui o plugin de Active Memory. Recuperação, promoção, indexação e Dreaming continuam sob responsabilidade do backend de memória configurado (memory-core, QMD, Honcho etc.). O memory-wiki fica ao lado dele e compila o conhecimento em uma camada de wiki mantida. Regra prática:
  • memory_search para uma recuperação ampla em todos os corpora configurados
  • wiki_search / wiki_get quando você quiser classificação específica da wiki, proveniência ou estrutura de crenças em nível de página
  • memory_search corpus=all para abranger as duas camadas em uma única chamada, quando o plugin de Active Memory oferecer suporte à seleção de corpus
Uma configuração comum com prioridade local: QMD como backend de Active Memory para recuperação e memory-wiki no modo bridge para páginas sintetizadas duráveis. Consulte o exemplo de QMD + modo bridge em Configuração. Se o modo bridge relatar zero artefatos exportados, o plugin de Active Memory não está expondo entradas públicas para a ponte no momento. Execute primeiro openclaw wiki doctor e depois confirme se o plugin de Active Memory oferece suporte a artefatos públicos.

Modos do cofre

  • isolated (padrão): cofre próprio, fontes próprias, sem dependência do plugin de Active Memory. Use para um repositório de conhecimento selecionado e autocontido.
  • bridge: lê artefatos públicos de memória e logs de eventos do plugin de Active Memory por meio de interfaces públicas do SDK de plugins. Use para compilar os artefatos exportados pelo plugin de memória sem acessar componentes internos privados do plugin.
  • unsafe-local: escape explícito na mesma máquina para caminhos locais privados. Intencionalmente experimental e não portátil; use somente quando compreender o limite de confiança e precisar especificamente de acesso ao sistema de arquivos local que o modo bridge não consegue fornecer.
O modo e o escopo do cofre são escolhas separadas:
  • vaultMode escolhe de onde vêm as entradas da wiki.
  • vault.scope escolhe se todos os agentes usam um único cofre ou se cada agente recebe um cofre filho.
vault.scope: "global" é o padrão e preserva o comportamento existente de cofre único. Use vault.scope: "agent" com o modo isolated ou bridge quando os agentes não puderem compartilhar páginas da wiki, resumos compilados, resultados de busca ou gravações. O escopo por agente não pode ser combinado com o modo unsafe-local, pois esses caminhos privados configurados não são entradas pertencentes ao agente. A validação da configuração rejeita essa combinação. O modo bridge pode indexar, conforme cada opção de configuração bridge.*:
  • artefatos de memória exportados (indexMemoryRoot)
  • notas diárias (indexDailyNotes)
  • relatórios de Dreaming (indexDreamReports)
  • logs de eventos de memória (followMemoryEvents)
Quando o modo bridge está ativo e bridge.readMemoryArtifacts está habilitado, openclaw wiki status, openclaw wiki doctor e openclaw wiki bridge import são encaminhados pelo Gateway em execução para que vejam o mesmo contexto do plugin de Active Memory que a memória dos agentes e do runtime. Se a ponte estiver desabilitada ou as leituras de artefatos estiverem desativadas, esses comandos manterão o comportamento local/offline.

Estrutura do cofre

O conteúdo gerenciado permanece dentro dos blocos gerados; os blocos de notas humanas são preservados durante a regeneração.
  • sources/: material bruto importado e páginas respaldadas pelos modos bridge/unsafe-local
  • entities/: coisas duráveis, pessoas, sistemas, projetos, objetos
  • concepts/: ideias, abstrações, padrões, políticas (também o destino das importações de OKF)
  • syntheses/: resumos compilados e consolidações mantidas
  • reports/: painéis gerados

Importações do Open Knowledge Format

Importa um pacote descompactado do Open Knowledge Format para páginas de conceitos da wiki. É uma boa opção quando um catálogo de dados, rastreador de documentação ou agente de enriquecimento já produz OKF: mantenha o OKF como artefato portátil de intercâmbio e deixe o memory-wiki transformá-lo em páginas de conceitos nativas do OpenClaw e resumos compilados.
  • arquivos .md não reservados são documentos de conceitos
  • cada conceito importado exige um campo type não vazio no frontmatter; a ausência de type produz um aviso missing-type e o arquivo é ignorado
  • valores desconhecidos de type são aceitos como conceitos genéricos
  • index.md e log.md são reservados e nunca são importados como conceitos
  • links Markdown quebrados ou externos permanecem inalterados
As páginas importadas são niveladas em concepts/, permitindo que os fluxos existentes de compilação, busca, obtenção e painéis as reconheçam sem uma segunda árvore de wiki. Cada página mantém o ID original do conceito OKF, o caminho de origem, type, resource, tags, o carimbo de data e hora e todo o frontmatter do produtor. Os links internos do OKF são reescritos para as páginas de conceitos geradas na wiki e também emitem entradas estruturadas em relationships com kind: okf-link.

Alegações estruturadas e evidências

As páginas contêm frontmatter estruturado de claims, não apenas texto livre. Cada alegação pode incluir id, text, status, confidence, evidence[] e updatedAt. Cada entrada de evidência pode incluir kind, sourceId, path, lines, weight, confidence, privacyTier, note e updatedAt. Isso faz com que a wiki funcione como uma camada de crenças, não como um depósito passivo de notas. As alegações podem ser acompanhadas, pontuadas, contestadas e resolvidas com base nas fontes.

Metadados de entidades voltados para agentes

As páginas de entidades contêm metadados genéricos de roteamento utilizáveis para pessoas, equipes, sistemas, projetos ou qualquer outro tipo de entidade:
  • entityType: por exemplo, person, team, system, project
  • canonicalId: chave de identidade estável entre aliases e importações
  • aliases: nomes, identificadores ou rótulos que apontam para a mesma página
  • privacyTier: string de formato livre; public é tratado como dispensando revisão, enquanto qualquer outro valor (por exemplo, local-private, sensitive, confirm-before-use) é sinalizado em reports/privacy-review.md
  • bestUsedFor / notEnoughFor: dicas compactas de roteamento
  • lastRefreshedAt: carimbo de data e hora da atualização da fonte, separado do horário de edição da página
  • personCard: cartão opcional de roteamento específico da pessoa (identificadores, redes sociais, e-mails, fuso horário, área, temas para consulta, temas a evitar, confiança, nível de privacidade)
  • relationships: conexões tipadas para páginas relacionadas (destino, tipo, peso, confiança, tipo de evidência, nível de privacidade, nota)
Para uma wiki de pessoas, comece por reports/person-agent-directory.md e depois abra a página da pessoa com wiki_get antes de usar dados de contato ou fatos inferidos.

Pipeline de compilação

A compilação lê as páginas da wiki, normaliza resumos e emite artefatos estáveis voltados para máquinas em:
  • .openclaw-wiki/cache/agent-digest.json
  • .openclaw-wiki/cache/claims.jsonl
Os agentes e o código do runtime leem esses resumos em vez de extrair informações do Markdown. A saída compilada também viabiliza a indexação inicial da wiki para busca/obtenção, a resolução de IDs de alegações de volta às páginas proprietárias, suplementos compactos de prompts e a geração de relatórios.

Painéis e relatórios de integridade

Quando render.createDashboards está habilitado, a compilação mantém painéis em reports/:

Busca e recuperação

Dois backends de busca:
  • shared: usa o fluxo compartilhado de busca de memória quando disponível
  • local: busca a wiki localmente
Três corpora: wiki, memory, all.
  • wiki_search / wiki_get usam resumos compilados como primeira etapa quando possível
  • IDs de alegações são resolvidos para a página proprietária
  • alegações contestadas/desatualizadas/atuais influenciam a classificação
  • rótulos de proveniência são preservados nos resultados
Modos de busca (parâmetro --mode / mode da ferramenta): Quando um resultado corresponde a uma alegação estruturada, wiki_search retorna matchedClaimId, matchedClaimStatus, matchedClaimConfidence, evidenceKinds e evidenceSourceIds em sua carga útil de detalhes. A saída de texto inclui linhas compactas Alegação: e Evidência: quando disponíveis.

Ferramentas para agentes

O plugin também registra um complemento não exclusivo para o corpus de memória, portanto memory_search e memory_get compartilhados podem acessar a wiki quando o plugin de memória ativo oferece suporte à seleção de corpus.

Comportamento de prompt e contexto

Quando context.includeCompiledDigestPrompt está ativado, as seções de prompt de memória acrescentam um snapshot compilado e compacto de agent-digest.json: somente as páginas principais, somente as alegações principais, contagem de contradições, contagem de perguntas e qualificadores de confiança/atualidade. Isso é opcional porque altera o formato do prompt; é relevante principalmente para mecanismos de contexto ou montagem de prompts que consomem explicitamente complementos de memória.

Configuração

Coloque a configuração em plugins.entries.memory-wiki.config:
Principais opções:

Cofres por agente

Defina vault.scope como agent para fornecer uma wiki separada a cada agente configurado. Nesse escopo, vault.path é um diretório pai, e o OpenClaw acrescenta o id normalizado do agente:
Isso resulta em ~/.openclaw/wiki/support e ~/.openclaw/wiki/marketing. Se vault.path for omitido no escopo de agente, o diretório pai usará ~/.openclaw/wiki por padrão. Portanto, o agente main padrão mantém o caminho existente ~/.openclaw/wiki/main. As ferramentas do agente, os resumos compilados de prompt e o complemento da wiki exposto por memory_search / memory_get resolvem o cofre com base no contexto do agente ativo. Para chamadas de CLI e Gateway em uma configuração com vários agentes configurados, informe explicitamente o agente com openclaw wiki --agent <agentId> ... ou com o agentId da solicitação do Gateway. Um único agente configurado permanece como padrão quando nenhum id é informado. No modo de ponte, as importações com escopo de agente aceitam um artefato público de memória somente quando seus agentIds incluem o agente selecionado. Artefatos pertencentes a outro agente, sem metadados de propriedade ou com proprietário desconhecido são ignorados. O escopo global mantém o comportamento existente de artefatos compartilhados.
Alterar vault.scope não copia nem divide um cofre existente. No escopo de agente, um vault.path configurado explicitamente torna-se um diretório pai; portanto, mova ou importe deliberadamente as páginas existentes antes de migrar agentes de produção. Faça primeiro um backup do cofre.Os cofres por agente são um limite de conhecimento no mesmo processo, não um limite de segurança do sistema operacional. Plugins e ferramentas sem sandbox com acesso ao sistema de arquivos do host ainda podem ler o diretório de outro agente. Use o isolamento em sandbox ou perfis separados do Gateway quando os agentes não confiarem uns nos outros.

Exemplo: QMD + modo de ponte

Use esta configuração quando quiser o QMD para recuperação e o memory-wiki como uma camada de conhecimento mantida. Cada camada permanece focada: o QMD mantém notas brutas, exportações de sessões e coleções adicionais pesquisáveis, enquanto o memory-wiki compila entidades estáveis, alegações, painéis e páginas de fontes.
Isso mantém o QMD responsável pela recuperação da memória ativa, o memory-wiki focado em páginas compiladas e painéis, e o formato do prompt inalterado até que você ative intencionalmente os prompts de resumo compilado.

CLI

Consulte CLI: wiki para obter a referência completa dos comandos, incluindo wiki okf import, wiki apply metadata, wiki unsafe-local import, wiki chatgpt import / wiki chatgpt rollback e o conjunto completo de subcomandos wiki obsidian.

Suporte ao Obsidian

Quando vault.renderMode é obsidian, o plugin grava Markdown compatível com o Obsidian e pode, opcionalmente, usar a CLI oficial obsidian para verificar o status, pesquisar no cofre, abrir uma página, invocar um comando e acessar diretamente a nota diária. Isso é opcional; a wiki continua funcionando no modo nativo sem o Obsidian. Os cofres com escopo de agente ainda podem usar Markdown compatível com o Obsidian, mas a validação da configuração rejeita obsidian.useOfficialCli: true com vault.scope: "agent". A configuração atual obsidian.vaultName é global e não permite selecionar um cofre distinto do Obsidian para cada agente. Em vez disso, use as ferramentas da wiki e as operações da CLI ou mantenha uma wiki operada pelo Obsidian no escopo global.

Fluxo de trabalho recomendado

1

Mantenha o plugin de memória ativo para recuperação

A recuperação, a promoção e o Dreaming permanecem sob responsabilidade do backend de memória configurado.
2

Ative o memory-wiki

Comece com o modo isolated, a menos que queira explicitamente o modo de ponte.
3

Use wiki_search / wiki_get quando a proveniência for importante

Prefira-os a memory_search quando quiser classificação específica da wiki ou uma estrutura de crenças no nível da página.
4

Use wiki_apply para sínteses restritas ou atualizações de metadados

Evite editar manualmente blocos gerados e gerenciados.
5

Execute wiki_lint após alterações significativas

Detecta contradições, perguntas em aberto e lacunas de proveniência.
6

Ative os painéis para visualizar conteúdo desatualizado e contradições

Defina render.createDashboards: true (padrão).

Documentação relacionada