Plugin guides
Wiki de memória
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.
| Camada | Responsável por |
|---|---|
| Plugin de Active Memory | Recuperação, busca semântica, promoção, Dreaming, runtime de memória |
memory-wiki |
Páginas compiladas da wiki, sínteses ricas em proveniência, painéis, busca/obtenção/aplicação na wiki |
Regra prática:
memory_searchpara uma recuperação ampla em todos os corpora configuradoswiki_search/wiki_getquando você quiser classificação específica da wiki, proveniência ou estrutura de crenças em nível de páginamemory_search corpus=allpara 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 modobridgenão consegue fornecer.
O modo e o escopo do cofre são escolhas separadas:
vaultModeescolhe de onde vêm as entradas da wiki.vault.scopeescolhe 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
<vault>/ AGENTS.md WIKI.md index.md inbox.md entities/ concepts/ syntheses/ sources/ reports/ _attachments/ _views/ .openclaw-wiki/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 modosbridge/unsafe-localentities/: coisas duráveis, pessoas, sistemas, projetos, objetosconcepts/: ideias, abstrações, padrões, políticas (também o destino das importações de OKF)syntheses/: resumos compilados e consolidações mantidasreports/: painéis gerados
Importações do Open Knowledge Format
openclaw wiki okf import ./bundles/ga4Importa 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
.mdnão reservados são documentos de conceitos - cada conceito importado exige um campo
typenão vazio no frontmatter; a ausência detypeproduz um avisomissing-typee o arquivo é ignorado - valores desconhecidos de
typesão aceitos como conceitos genéricos index.mdelog.mdsã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,projectcanonicalId: chave de identidade estável entre aliases e importaçõesaliases: nomes, identificadores ou rótulos que apontam para a mesma páginaprivacyTier: string de formato livre;publicé tratado como dispensando revisão, enquanto qualquer outro valor (por exemplo,local-private,sensitive,confirm-before-use) é sinalizado emreports/privacy-review.mdbestUsedFor/notEnoughFor: dicas compactas de roteamentolastRefreshedAt: carimbo de data e hora da atualização da fonte, separado do horário de edição da páginapersonCard: 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.
Exemplo de página de entidade
pageType: entityentityType: personid: entity.example-personcanonicalId: maintainer.example-personaliases:- Alex- example-handleprivacyTier: local-privatebestUsedFor:- Roteamento do ecossistema de exemplonotEnoughFor:- aprovação jurídicalastRefreshedAt: "2026-04-29T00:00:00.000Z"personCard:handles: - "@example-handle"socials: - "https://x.example/example-handle"emails: - alex@example.comtimezone: America/Chicagolane: Ecossistema de exemploaskFor: - Perguntas sobre a implantação de exemploavoidAskingFor: - decisões de faturamento não relacionadasconfidence: 0.8privacyTier: confirm-before-userelationships:- targetId: entity.other-person targetTitle: Outra Pessoa kind: collaborates-with confidence: 0.7 evidenceKind: discrawl-statclaims:- id: claim.example.routing text: Alex é útil para o roteamento do ecossistema de exemplo. status: supported confidence: 0.9 evidence: - kind: maintainer-whois sourceId: source.maintainers privacyTier: local-privatePipeline 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/:
| Relatório | Acompanha |
|---|---|
reports/open-questions.md |
páginas com perguntas não resolvidas |
reports/contradictions.md |
agrupamentos de notas contraditórias |
reports/low-confidence.md |
páginas e alegações de baixa confiança |
reports/claim-health.md |
alegações sem evidências estruturadas |
reports/stale-pages.md |
páginas desatualizadas ou com atualização desconhecida |
reports/person-agent-directory.md |
cartões de roteamento de pessoas/entidades |
reports/relationship-graph.md |
conexões estruturadas entre relacionamentos |
reports/provenance-coverage.md |
cobertura das classes de evidências |
reports/privacy-review.md |
níveis de privacidade não públicos que exigem revisão antes do uso |
Busca e recuperação
Dois backends de busca:
shared: usa o fluxo compartilhado de busca de memória quando disponívellocal: busca a wiki localmente
Três corpora: wiki, memory, all.
wiki_search/wiki_getusam 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):
| Modo | Prioriza |
|---|---|
auto |
padrão equilibrado |
find-person |
entidades semelhantes a pessoas, aliases, identificadores, redes sociais, IDs canônicos |
route-question |
cartões de agentes, dicas de temas para consulta/melhor uso e contexto de relacionamentos |
source-evidence |
páginas de fontes e metadados de evidências estruturadas |
raw-claim |
alegações estruturadas correspondentes; retorna metadados de alegações/evidências |
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
| Ferramenta | Finalidade |
|---|---|
wiki_status |
modo e escopo atuais do cofre, agente resolvido, integridade, disponibilidade da CLI do Obsidian |
wiki_search |
pesquisa páginas da wiki e, quando configurado, o corpus de memória compartilhada; aceita mode para busca de pessoas, roteamento de perguntas, evidências de fontes ou análise detalhada de alegações brutas |
wiki_get |
lê uma página da wiki por id/caminho, recorrendo ao corpus de memória compartilhada quando a pesquisa compartilhada está ativada e a busca não encontra resultados |
wiki_apply |
alterações restritas de síntese/metadados sem edição livre da página |
wiki_lint |
verificações estruturais, lacunas de proveniência, contradições, perguntas em aberto |
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:
{ plugins: { entries: { "memory-wiki": { enabled: true, config: { vaultMode: "isolated", vault: { scope: "global", path: "~/.openclaw/wiki/main", renderMode: "obsidian", }, obsidian: { enabled: true, useOfficialCli: true, vaultName: "OpenClaw Wiki", openAfterWrites: false, }, bridge: { enabled: false, readMemoryArtifacts: true, indexDreamReports: true, indexDailyNotes: true, indexMemoryRoot: true, followMemoryEvents: true, }, unsafeLocal: { allowPrivateMemoryCoreAccess: false, paths: [], }, ingest: { autoCompile: true, maxConcurrentJobs: 1, allowUrlIngest: true, }, search: { backend: "shared", corpus: "wiki", }, context: { includeCompiledDigestPrompt: false, }, render: { preserveHumanBlocks: true, createBacklinks: true, createDashboards: true, }, }, }, }, },}Principais opções:
| Chave | Valores / padrão | Observações |
|---|---|---|
vaultMode |
isolated (padrão), bridge, unsafe-local |
escolhe o comportamento de entrada e integração |
vault.scope |
global (padrão), agent |
um cofre compartilhado ou um cofre secundário por agente |
vault.path |
padrão global ~/.openclaw/wiki/main |
cofre exato no escopo global; o diretório pai no escopo de agente usa ~/.openclaw/wiki por padrão |
vault.renderMode |
native (padrão), obsidian |
|
bridge.readMemoryArtifacts |
padrão true |
importa artefatos públicos do plugin de memória ativo |
bridge.followMemoryEvents |
padrão true |
inclui logs de eventos no modo de ponte |
unsafeLocal.allowPrivateMemoryCoreAccess |
padrão false |
obrigatório para executar importações unsafe-local |
unsafeLocal.paths |
padrão [] |
caminhos locais explícitos a importar no modo unsafe-local |
search.backend |
shared (padrão), local |
|
search.corpus |
wiki (padrão), memory, all |
|
context.includeCompiledDigestPrompt |
padrão false |
acrescenta o snapshot compacto do resumo do agente selecionado às seções de prompt de memória |
render.createBacklinks |
padrão true |
gera blocos relacionados determinísticos |
render.createDashboards |
padrão true |
gera páginas de painéis |
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:
{ agents: { list: [{ id: "support" }, { id: "marketing" }], }, plugins: { entries: { "memory-wiki": { enabled: true, config: { vaultMode: "bridge", vault: { scope: "agent", path: "~/.openclaw/wiki", }, bridge: { enabled: true, readMemoryArtifacts: true, }, }, }, }, },}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.
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.
{ memory: { backend: "qmd", }, plugins: { entries: { "memory-wiki": { enabled: true, config: { vaultMode: "bridge", bridge: { enabled: true, readMemoryArtifacts: true, indexDreamReports: true, indexDailyNotes: true, indexMemoryRoot: true, followMemoryEvents: true, }, search: { backend: "shared", corpus: "all", }, context: { includeCompiledDigestPrompt: false, }, }, }, }, },}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
openclaw wiki statusopenclaw wiki doctoropenclaw wiki initopenclaw wiki ingest ./notes/alpha.mdopenclaw wiki compileopenclaw wiki lintopenclaw wiki search "alpha"openclaw wiki get entity.alphaopenclaw wiki apply synthesis "Alpha Summary" --body "..." --source-id source.alphaopenclaw wiki bridge importopenclaw wiki obsidian statusConsulte 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
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.
Ative o memory-wiki
Comece com o modo isolated, a menos que queira explicitamente o modo de ponte.
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.
Use wiki_apply para sínteses restritas ou atualizações de metadados
Evite editar manualmente blocos gerados e gerenciados.
Execute wiki_lint após alterações significativas
Detecta contradições, perguntas em aberto e lacunas de proveniência.
Ative os painéis para visualizar conteúdo desatualizado e contradições
Defina render.createDashboards: true (padrão).