Plugin guides
Wiki della memoria
memory-wiki è un plugin incluso che compila conoscenze persistenti in una
wiki navigabile: pagine deterministiche, affermazioni strutturate corredate di prove,
provenienza, dashboard e riepiloghi leggibili dalle macchine.
Non sostituisce il plugin di memoria attiva. Il recupero, la promozione, l'indicizzazione e
il Dreaming restano sotto la responsabilità del backend di memoria configurato
(memory-core, QMD, Honcho e così via). memory-wiki opera al suo fianco e compila
le conoscenze in un livello wiki mantenuto.
| Livello | Responsabilità |
|---|---|
| Plugin di memoria attiva | Recupero, ricerca semantica, promozione, Dreaming, runtime della memoria |
memory-wiki |
Pagine wiki compilate, sintesi ricche di provenienza, dashboard, ricerca/lettura/applicazione della wiki |
Regola pratica:
memory_searchper un'unica ricerca ampia in tutti i corpora configuratiwiki_search/wiki_getquando servono classificazione specifica della wiki, provenienza o struttura delle convinzioni a livello di paginamemory_search corpus=allper includere entrambi i livelli in una sola chiamata, quando il plugin di memoria attiva supporta la selezione del corpus
Una configurazione comune incentrata sull'esecuzione locale: QMD come backend di memoria attiva per il recupero e
memory-wiki in modalità bridge per pagine sintetizzate persistenti. Consulta
l'esempio QMD + modalità bridge nella sezione Configurazione.
Se la modalità bridge segnala zero artefatti esportati, il plugin di memoria attiva
non sta attualmente esponendo input bridge pubblici. Esegui prima openclaw wiki doctor,
quindi verifica che il plugin di memoria attiva supporti gli artefatti pubblici.
Modalità del vault
isolated(predefinita): vault e origini propri, senza dipendenze dal plugin di memoria attiva. Usala per un archivio di conoscenze curato e autosufficiente.bridge: legge gli artefatti pubblici della memoria e i registri degli eventi dal plugin di memoria attiva attraverso le interfacce pubbliche dell'SDK dei plugin. Usala per compilare gli artefatti esportati dal plugin di memoria senza accedere ai suoi componenti interni privati.unsafe-local: via di fuga esplicita sulla stessa macchina per percorsi locali privati. Intenzionalmente sperimentale e non portabile; usala solo se comprendi il confine di attendibilità e ti serve specificamente un accesso al file system locale che la modalità bridge non può fornire.
La modalità e l'ambito del vault sono scelte separate:
vaultModedetermina la provenienza degli input della wiki.vault.scopedetermina se tutti gli agenti usano un unico vault o se ogni agente dispone di un vault figlio.
vault.scope: "global" è l'impostazione predefinita e mantiene il comportamento
esistente con un singolo vault. Usa vault.scope: "agent" con la modalità
isolated o bridge quando gli agenti non devono condividere pagine wiki,
riepiloghi compilati, risultati di ricerca o scritture.
L'ambito agente non può essere combinato con la modalità unsafe-local, perché i
percorsi privati configurati non sono input di proprietà dell'agente. La convalida
della configurazione rifiuta questa combinazione.
La modalità bridge può indicizzare, in base alle opzioni di configurazione bridge.*:
- gli artefatti di memoria esportati (
indexMemoryRoot) - le note giornaliere (
indexDailyNotes) - i rapporti del Dreaming (
indexDreamReports) - i registri degli eventi della memoria (
followMemoryEvents)
Quando la modalità bridge è attiva e bridge.readMemoryArtifacts è abilitato,
openclaw wiki status, openclaw wiki doctor e openclaw wiki bridge import vengono instradati attraverso il Gateway in esecuzione, affinché vedano lo
stesso contesto del plugin di memoria attiva usato dalla memoria dell'agente/runtime.
Se il bridge è disabilitato o la lettura degli artefatti è disattivata, questi
comandi mantengono il comportamento locale/offline.
Struttura del vault
<vault>/ AGENTS.md WIKI.md index.md inbox.md entities/ concepts/ syntheses/ sources/ reports/ _attachments/ _views/ .openclaw-wiki/Il contenuto gestito rimane all'interno dei blocchi generati; i blocchi di note umane vengono mantenuti durante le rigenerazioni.
sources/: materiale grezzo importato e pagine basate su bridge/unsafe-localentities/: elementi persistenti, persone, sistemi, progetti, oggetticoncepts/: idee, astrazioni, schemi, criteri (anche destinazione delle importazioni OKF)syntheses/: riepiloghi compilati e aggregazioni mantenutereports/: dashboard generate
Importazioni Open Knowledge Format
openclaw wiki okf import ./bundles/ga4Importa un pacchetto Open Knowledge Format estratto nelle pagine dei concetti
della wiki. È una buona soluzione quando un catalogo dati, un crawler di
documentazione o un agente di arricchimento produce già OKF: mantieni OKF come
artefatto di scambio portabile e lascia che memory-wiki lo trasformi in pagine
di concetti native di OpenClaw e in riepiloghi compilati.
- i file
.mdnon riservati sono documenti di concetti - ogni concetto importato richiede un campo frontmatter
typenon vuoto; setypeè assente, viene generato un avvisomissing-typee il file viene ignorato - i valori
typesconosciuti sono accettati come concetti generici index.mdelog.mdsono riservati e non vengono mai importati come concetti- i collegamenti Markdown non validi o esterni vengono lasciati invariati
Le pagine importate vengono appiattite sotto concepts/, in modo che i flussi
esistenti di compilazione, ricerca, lettura e dashboard possano utilizzarle senza
un secondo albero wiki. Ogni pagina mantiene l'ID originale del concetto OKF, il
percorso di origine, type, resource, tags, il timestamp e il frontmatter
completo del produttore. I collegamenti OKF interni vengono riscritti verso le
pagine dei concetti wiki generate e producono anche voci relationships
strutturate con kind: okf-link.
Affermazioni strutturate e prove
Le pagine contengono frontmatter claims strutturato, non soltanto testo libero.
Ogni affermazione può includere id, text, status, confidence, evidence[]
e updatedAt. Ogni voce di prova può includere kind, sourceId, path,
lines, weight, confidence, privacyTier, note e updatedAt.
In questo modo la wiki si comporta come un livello di convinzioni, non come un deposito passivo di note. Le affermazioni possono essere monitorate, valutate, contestate e ricondotte alle origini per la risoluzione.
Metadati delle entità destinati agli agenti
Le pagine delle entità contengono metadati generici di instradamento utilizzabili per persone, team, sistemi, progetti o qualsiasi altro tipo di entità:
entityType: per esempioperson,team,system,projectcanonicalId: chiave di identità stabile tra alias e importazionialiases: nomi, handle o etichette che rimandano alla stessa paginaprivacyTier: stringa in formato libero;publicè considerato esente da revisione, mentre qualsiasi altro valore (per esempiolocal-private,sensitive,confirm-before-use) viene segnalato inreports/privacy-review.mdbestUsedFor/notEnoughFor: indicazioni compatte per l'instradamentolastRefreshedAt: timestamp di aggiornamento dell'origine, distinto dall'ora di modifica della paginapersonCard: scheda di instradamento facoltativa specifica per una persona (handle, social, email, fuso orario, area, richieste appropriate, richieste da evitare, attendibilità, livello di privacy)relationships: collegamenti tipizzati a pagine correlate (destinazione, tipo, peso, attendibilità, tipo di prova, livello di privacy, nota)
Per una wiki di persone, inizia da reports/person-agent-directory.md, quindi
apri la pagina della persona con wiki_get prima di usare dati di contatto o
fatti dedotti.
Esempio di pagina di un'entità
pageType: entityentityType: personid: entity.example-personcanonicalId: maintainer.example-personaliases:- Alex- example-handleprivacyTier: local-privatebestUsedFor:- Example ecosystem routingnotEnoughFor:- legal approvallastRefreshedAt: "2026-04-29T00:00:00.000Z"personCard:handles: - "@example-handle"socials: - "https://x.example/example-handle"emails: - alex@example.comtimezone: America/Chicagolane: Example ecosystemaskFor: - Example rollout questionsavoidAskingFor: - unrelated billing decisionsconfidence: 0.8privacyTier: confirm-before-userelationships:- targetId: entity.other-person targetTitle: Other Person kind: collaborates-with confidence: 0.7 evidenceKind: discrawl-statclaims:- id: claim.example.routing text: Alex is useful for example-ecosystem routing. status: supported confidence: 0.9 evidence: - kind: maintainer-whois sourceId: source.maintainers privacyTier: local-privatePipeline di compilazione
La compilazione legge le pagine della wiki, normalizza i riepiloghi e genera artefatti stabili destinati alle macchine in:
.openclaw-wiki/cache/agent-digest.json.openclaw-wiki/cache/claims.jsonl
Gli agenti e il codice di runtime leggono questi riepiloghi invece di analizzare il Markdown. L'output compilato alimenta inoltre l'indicizzazione wiki di primo passaggio per ricerca/lettura, la risoluzione degli ID delle affermazioni verso le pagine proprietarie, integrazioni compatte per i prompt e la generazione dei rapporti.
Dashboard e rapporti sullo stato
Quando render.createDashboards è abilitato, la compilazione mantiene le
dashboard in reports/:
| Rapporto | Elementi monitorati |
|---|---|
reports/open-questions.md |
pagine con domande irrisolte |
reports/contradictions.md |
gruppi di note contraddittorie |
reports/low-confidence.md |
pagine e affermazioni con scarsa attendibilità |
reports/claim-health.md |
affermazioni prive di prove strutturate |
reports/stale-pages.md |
pagine obsolete o con aggiornamento sconosciuto |
reports/person-agent-directory.md |
schede di instradamento di persone/entità |
reports/relationship-graph.md |
collegamenti strutturati tra relazioni |
reports/provenance-coverage.md |
copertura delle classi di prova |
reports/privacy-review.md |
livelli di privacy non pubblici da esaminare prima dell'uso |
Ricerca e recupero
Due backend di ricerca:
shared: usa il flusso di ricerca condiviso della memoria, quando disponibilelocal: cerca localmente nella wiki
Tre corpora: wiki, memory, all.
wiki_search/wiki_getusano, quando possibile, i riepiloghi compilati come primo passaggio- gli ID delle affermazioni rimandano alla pagina proprietaria
- le affermazioni contestate/obsolete/aggiornate influenzano la classificazione
- le etichette di provenienza vengono mantenute nei risultati
Modalità di ricerca (parametro --mode / mode dello strumento):
| Modalità | Elementi favoriti |
|---|---|
auto |
impostazione predefinita bilanciata |
find-person |
entità simili a persone, alias, handle, profili social, ID canonici |
route-question |
schede degli agenti, indicazioni sulle richieste appropriate/sull'uso ottimale, contesto delle relazioni |
source-evidence |
pagine di origine e metadati delle prove strutturate |
raw-claim |
affermazioni strutturate corrispondenti; restituisce metadati di affermazioni/prove |
Quando un risultato corrisponde a un'affermazione strutturata, wiki_search
restituisce matchedClaimId, matchedClaimStatus, matchedClaimConfidence,
evidenceKinds ed evidenceSourceIds nel payload dei dettagli. L'output testuale
include righe compatte Claim: ed Evidence: quando disponibili.
Strumenti per gli agenti
| Strumento | Scopo |
|---|---|
wiki_status |
modalità e ambito attuali del vault, agente risolto, stato di integrità, disponibilità della CLI di Obsidian |
wiki_search |
cerca nelle pagine wiki e, quando configurato, nel corpus di memoria condiviso; accetta mode per cercare persone, instradare domande, ottenere prove dalle fonti o esaminare affermazioni grezze |
wiki_get |
legge una pagina wiki per id/percorso, ripiegando sul corpus di memoria condiviso quando la ricerca condivisa è abilitata e la consultazione non produce risultati |
wiki_apply |
modifiche mirate a sintesi/metadati senza interventi liberi sulle pagine |
wiki_lint |
controlli strutturali, lacune nella provenienza, contraddizioni, domande aperte |
Il plugin registra anche un'integrazione non esclusiva del corpus di memoria, così le funzioni condivise
memory_search e memory_get possono accedere alla wiki quando il plugin di memoria attivo
supporta la selezione del corpus.
Comportamento di prompt e contesto
Quando context.includeCompiledDigestPrompt è abilitato, le sezioni del prompt di memoria
aggiungono un'istantanea compilata e compatta da agent-digest.json: solo le pagine
principali, solo le affermazioni principali, numero di contraddizioni, numero di domande,
qualificatori di attendibilità/aggiornamento. Questa funzionalità è facoltativa perché modifica la struttura del prompt; è rilevante soprattutto
per i motori di contesto o per la composizione dei prompt che utilizzano esplicitamente le
integrazioni della memoria.
Configurazione
Inserisci la configurazione in 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, }, }, }, }, },}Opzioni principali:
| Chiave | Valori / predefinito | Note |
|---|---|---|
vaultMode |
isolated (predefinito), bridge, unsafe-local |
sceglie il comportamento di input e integrazione |
vault.scope |
global (predefinito), agent |
un vault condiviso oppure un vault secondario per ciascun agente |
vault.path |
valore globale predefinito ~/.openclaw/wiki/main |
vault globale esatto; la directory padre per l'ambito agente è per impostazione predefinita ~/.openclaw/wiki |
vault.renderMode |
native (predefinito), obsidian |
|
bridge.readMemoryArtifacts |
predefinito true |
importa gli artefatti pubblici del plugin di memoria attivo |
bridge.followMemoryEvents |
predefinito true |
include i registri degli eventi in modalità bridge |
unsafeLocal.allowPrivateMemoryCoreAccess |
predefinito false |
necessario per eseguire importazioni unsafe-local |
unsafeLocal.paths |
predefinito [] |
percorsi locali espliciti da importare in modalità unsafe-local |
search.backend |
shared (predefinito), local |
|
search.corpus |
wiki (predefinito), memory, all |
|
context.includeCompiledDigestPrompt |
predefinito false |
aggiunge alle sezioni del prompt di memoria l'istantanea compatta del riepilogo dell'agente selezionato |
render.createBacklinks |
predefinito true |
genera blocchi correlati deterministici |
render.createDashboards |
predefinito true |
genera pagine di dashboard |
Vault per agente
Imposta vault.scope su agent per assegnare a ogni agente configurato una wiki separata.
In questo ambito, vault.path è una directory padre e OpenClaw aggiunge l'id
normalizzato dell'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, }, }, }, }, },}Questo produce ~/.openclaw/wiki/support e
~/.openclaw/wiki/marketing. Se vault.path viene omesso nell'ambito agente, la
directory padre predefinita è ~/.openclaw/wiki. L'agente main predefinito mantiene quindi
il percorso esistente ~/.openclaw/wiki/main.
Gli strumenti dell'agente, i riepiloghi compilati del prompt e l'integrazione wiki esposta tramite
memory_search / memory_get risolvono il vault dal contesto dell'agente attivo.
Per le chiamate CLI e Gateway in una configurazione con più agenti, specifica
esplicitamente l'agente con openclaw wiki --agent <agentId> ... oppure con
agentId nella richiesta Gateway. Quando non viene fornito alcun id, un singolo agente configurato
rimane quello predefinito.
In modalità bridge, le importazioni con ambito agente accettano un artefatto di memoria pubblico solo quando
il relativo agentIds include l'agente selezionato. Gli artefatti appartenenti a un altro agente,
privi di metadati di proprietà o con un proprietario sconosciuto vengono ignorati. L'ambito globale
mantiene il comportamento esistente per gli artefatti condivisi.
Esempio: QMD + modalità bridge
Usa questa configurazione quando vuoi QMD per il recupero e memory-wiki come livello di
conoscenza gestito. Ogni livello rimane focalizzato sul proprio compito: QMD mantiene ricercabili
le note grezze, le esportazioni delle sessioni e le raccolte aggiuntive, mentre memory-wiki compila
entità stabili, affermazioni, dashboard e pagine delle fonti.
{ 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, }, }, }, }, },}Questo mantiene QMD responsabile del recupero della memoria attiva, memory-wiki concentrato sulle
pagine compilate e sulle dashboard e la struttura del prompt invariata finché non abiliti
intenzionalmente i prompt con riepiloghi compilati.
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 statusConsulta CLI: wiki per il riferimento completo dei comandi, inclusi
wiki okf import, wiki apply metadata, wiki unsafe-local import,
wiki chatgpt import / wiki chatgpt rollback e l'intero insieme di sottocomandi wiki obsidian.
Supporto per Obsidian
Quando vault.renderMode è obsidian, il plugin scrive Markdown compatibile con Obsidian
e può facoltativamente usare la CLI ufficiale obsidian per verificare lo stato,
cercare nel vault, aprire una pagina, richiamare un comando e passare alla
nota giornaliera. Questa funzionalità è facoltativa; la wiki continua a funzionare in modalità nativa senza
Obsidian.
I vault con ambito agente possono comunque usare Markdown compatibile con Obsidian, ma la convalida della
configurazione rifiuta obsidian.useOfficialCli: true con vault.scope: "agent".
L'impostazione attuale obsidian.vaultName è globale e non può selezionare un vault
Obsidian distinto per ciascun agente. Usa invece gli strumenti wiki e le operazioni della CLI,
oppure mantieni nell'ambito globale una wiki gestita tramite Obsidian.
Flusso di lavoro consigliato
Mantieni il plugin di memoria attiva per il recupero
Il recupero, la promozione e il Dreaming rimangono sotto la responsabilità del backend di memoria configurato.
Abilita memory-wiki
Inizia con la modalità isolated, a meno che tu non voglia esplicitamente la modalità bridge.
Usa wiki_search / wiki_get quando la provenienza è importante
Preferiscili a memory_search quando desideri un ordinamento specifico della wiki o una struttura delle convinzioni a livello di pagina.
Usa wiki_apply per sintesi mirate o aggiornamenti dei metadati
Evita di modificare manualmente i blocchi generati e gestiti.
Esegui wiki_lint dopo modifiche significative
Rileva contraddizioni, domande aperte e lacune nella provenienza.
Abilita le dashboard per rendere visibili informazioni obsolete e contraddizioni
Imposta render.createDashboards: true (predefinito).