Plugin guides
Wiki de memoria
memory-wiki es un plugin incluido que compila conocimiento duradero en una
wiki navegable: páginas deterministas, afirmaciones estructuradas con evidencias,
procedencia, paneles y resúmenes legibles por máquinas.
No sustituye al plugin de memoria activa. La recuperación, la promoción, la indexación y
Dreaming siguen siendo responsabilidad del backend de memoria que esté configurado
(memory-core, QMD, Honcho, etc.). memory-wiki se sitúa junto a él y compila
el conocimiento en una capa wiki mantenida.
Active el plugin antes de utilizar su CLI, sus herramientas o su integración en tiempo de ejecución:
openclaw plugins enable memory-wikiopenclaw gateway restart| Capa | Responsabilidad |
|---|---|
| Plugin de memoria activa | Recuperación, búsqueda semántica, promoción, Dreaming y entorno de memoria |
memory-wiki |
Páginas wiki compiladas, síntesis con procedencia detallada, paneles y búsqueda/obtención/aplicación en la wiki |
Regla práctica:
memory_searchpara una pasada amplia de recuperación en todos los corpus configuradoswiki_search/wiki_getcuando se necesiten clasificación específica de la wiki, procedencia o una estructura de creencias a nivel de páginamemory_search corpus=allpara abarcar ambas capas en una sola llamada, cuando el plugin de memoria activa admita la selección de corpus
Una configuración habitual con prioridad local: QMD como backend de memoria activa para la recuperación y
memory-wiki en modo bridge para páginas sintetizadas duraderas. Consulte el
ejemplo de QMD + modo puente en Configuración.
Si el modo puente informa de cero artefactos exportados, el plugin de memoria activa
no está exponiendo actualmente entradas públicas para el puente. Ejecute primero openclaw wiki doctor
y después confirme que el plugin de memoria activa admite artefactos públicos.
Modos del almacén
isolated(predeterminado): almacén propio, fuentes propias, sin dependencia del plugin de memoria activa. Utilícelo para un repositorio de conocimiento seleccionado y autónomo.bridge: lee artefactos públicos de memoria y registros de eventos del plugin de memoria activa mediante interfaces públicas del SDK de plugins. Utilícelo para compilar los artefactos exportados por el plugin de memoria sin acceder a sus componentes internos privados.unsafe-local: vía de escape explícita para rutas locales privadas en la misma máquina. Es deliberadamente experimental y no portátil; utilícela únicamente cuando se comprenda el límite de confianza y se necesite específicamente un acceso al sistema de archivos local que el modo puente no pueda proporcionar.
El modo y el ámbito del almacén son elecciones independientes:
vaultModeelige de dónde proceden las entradas de la wiki.vault.scopeelige si todos los agentes utilizan un único almacén o si cada agente recibe un almacén secundario.
vault.scope: "global" es el valor predeterminado y conserva el comportamiento existente de almacén único.
Utilice vault.scope: "agent" con el modo isolated o bridge cuando
los agentes no deban compartir páginas wiki, resúmenes compilados, resultados de búsqueda ni escrituras.
El ámbito de agente no puede combinarse con el modo unsafe-local porque esas rutas
privadas configuradas no son entradas propiedad del agente. La validación de la configuración rechaza esta
combinación.
El modo puente puede indexar, según la opción de configuración bridge.*:
- artefactos de memoria exportados (
indexMemoryRoot) - notas diarias (
indexDailyNotes) - informes de Dreaming (
indexDreamReports) - registros de eventos de memoria (
followMemoryEvents)
Cuando el modo puente está activo y bridge.readMemoryArtifacts está habilitado,
openclaw wiki status, openclaw wiki doctor y openclaw wiki bridge import se enrutan a través del Gateway en ejecución para que vean el mismo contexto del plugin de memoria activa
que la memoria del agente o del entorno de ejecución. Si el puente está deshabilitado o la
lectura de artefactos está desactivada, esos comandos conservan su comportamiento local/sin conexión.
Estructura del almacén
<vault>/ AGENTS.md WIKI.md index.md inbox.md entities/ concepts/ syntheses/ sources/ reports/ _attachments/ _views/ .openclaw-wiki/El contenido administrado permanece dentro de bloques generados; los bloques de notas humanas se conservan entre regeneraciones.
sources/: material sin procesar importado y páginas respaldadas por el puente o por rutas locales no segurasentities/: elementos duraderos, personas, sistemas, proyectos y objetosconcepts/: ideas, abstracciones, patrones y políticas (también es el destino de las importaciones de OKF)syntheses/: resúmenes compilados y recopilaciones mantenidasreports/: paneles generados
Importaciones de Open Knowledge Format
openclaw wiki okf import ./bundles/ga4Importe un paquete descomprimido de Open Knowledge Format en páginas de conceptos de la wiki. Resulta
adecuado cuando un catálogo de datos, un rastreador de documentación o un agente de enriquecimiento ya
produce OKF: conserve OKF como artefacto portátil de intercambio y permita que memory-wiki
lo convierta en páginas de conceptos nativas de OpenClaw y resúmenes compilados.
- los archivos
.mdno reservados son documentos de conceptos - cada concepto importado requiere un campo de frontmatter
typeno vacío; si faltatype, se genera una advertenciamissing-typey se omite el archivo - los valores
typedesconocidos se aceptan como conceptos genéricos index.mdylog.mdestán reservados y nunca se importan como conceptos- los enlaces Markdown rotos o externos se dejan sin cambios
Las páginas importadas se aplanan bajo concepts/ para que los flujos existentes de compilación, búsqueda, obtención y
paneles puedan utilizarlas sin un segundo árbol de wiki. Cada página conserva el
ID original del concepto de OKF, la ruta de origen, type, resource, tags, la marca temporal
y todo el frontmatter del productor. Los enlaces internos de OKF se reescriben para apuntar a las
páginas de conceptos generadas en la wiki y también emiten entradas relationships estructuradas con
kind: okf-link.
Afirmaciones estructuradas y evidencias
Las páginas contienen frontmatter claims estructurado, no solo texto libre. Cada
afirmación puede incluir id, text, status, confidence, evidence[] y
updatedAt. Cada entrada de evidencia puede incluir kind, sourceId, path,
lines, weight, confidence, privacyTier, note y updatedAt.
Esto hace que la wiki se comporte como una capa de creencias, no como un depósito pasivo de notas. Las afirmaciones pueden rastrearse, puntuarse, cuestionarse y resolverse hasta sus fuentes.
Metadatos de entidades para agentes
Las páginas de entidades contienen metadatos genéricos de enrutamiento que pueden utilizarse para personas, equipos, sistemas, proyectos o cualquier otro tipo de entidad:
entityType: por ejemplo,person,team,system,projectcanonicalId: clave de identidad estable entre alias e importacionesaliases: nombres, identificadores o etiquetas que se resuelven en la misma páginaprivacyTier: cadena de formato libre;publicse considera que no requiere revisión y cualquier otro valor (por ejemplo,local-private,sensitive,confirm-before-use) se marca enreports/privacy-review.mdbestUsedFor/notEnoughFor: indicaciones compactas de enrutamientolastRefreshedAt: marca temporal de actualización de la fuente, independiente de la hora de edición de la páginapersonCard: tarjeta opcional de enrutamiento específica de una persona (identificadores, redes sociales, correos electrónicos, zona horaria, área, temas que consultar, temas que evitar consultar, confianza y nivel de privacidad)relationships: aristas tipadas hacia páginas relacionadas (destino, tipo, peso, confianza, tipo de evidencia, nivel de privacidad y nota)
Para una wiki de personas, comience con reports/person-agent-directory.md y después abra
la página de la persona con wiki_get antes de utilizar datos de contacto o hechos
inferidos.
Ejemplo de página de entidad
pageType: entityentityType: personid: entity.example-personcanonicalId: maintainer.example-personaliases:- Alex- example-handleprivacyTier: local-privatebestUsedFor:- Enrutamiento del ecosistema de ejemplonotEnoughFor:- aprobación legallastRefreshedAt: "2026-04-29T00:00:00.000Z"personCard:handles: - "@example-handle"socials: - "https://x.example/example-handle"emails: - [email protected]timezone: America/Chicagolane: Ecosistema de ejemploaskFor: - Preguntas sobre el despliegue de ejemploavoidAskingFor: - decisiones de facturación no relacionadasconfidence: 0.8privacyTier: confirm-before-userelationships:- targetId: entity.other-person targetTitle: Otra persona kind: collaborates-with confidence: 0.7 evidenceKind: discrawl-statclaims:- id: claim.example.routing text: Alex resulta útil para el enrutamiento del ecosistema de ejemplo. status: supported confidence: 0.9 evidence: - kind: maintainer-whois sourceId: source.maintainers privacyTier: local-privatePipeline de compilación
La compilación lee las páginas de la wiki, normaliza los resúmenes y conserva una instantánea destinada a máquinas en el estado SQLite compartido de plugins de OpenClaw. El código del entorno de ejecución utiliza la instantánea del propietario administrada por el ciclo de vida para cargar SQLite durante la preparación asíncrona de instrucciones; el ensamblaje síncrono de instrucciones nunca extrae contenido de Markdown ni lee archivos de caché. La salida compilada también permite la indexación inicial de la wiki para la búsqueda y obtención, la resolución de identificadores de afirmaciones hasta sus páginas propietarias, los complementos compactos de instrucciones y la generación de informes.
Las ediciones de fuentes y las restauraciones del almacén solo pasan a estar disponibles para las máquinas después de la siguiente compilación. Al reiniciar o actualizar el ciclo de vida del plugin, se compara la publicación de compilación encadenada causalmente del almacén con SQLite y se rechaza una instantánea procedente de un estado más reciente que se haya revertido. Un compilador iniciado antes de la reversión no puede publicar sobre el predecesor restaurado. La preparación de instrucciones no sondea el almacén ni instala observadores de archivos. Después de la cuarentena por reversión, una compilación en el proceso en ejecución elimina al propietario inmediatamente; un proceso de compilación independiente requiere actualizar el ciclo de vida del plugin para que el daemon pueda confirmar la nueva publicación duradera. Las cachés compiladas pueden reconstruirse: las filas de caché anteriores a las épocas de publicación se consideran fallos de caché y se sustituyen en la siguiente compilación; no se migran.
Paneles e informes de estado
Cuando render.createDashboards está habilitado, la compilación mantiene paneles en
reports/:
| Informe | Rastrea |
|---|---|
reports/open-questions.md |
páginas con preguntas sin resolver |
reports/contradictions.md |
grupos de notas contradictorias |
reports/low-confidence.md |
páginas y afirmaciones de baja confianza |
reports/claim-health.md |
afirmaciones sin evidencias estructuradas |
reports/stale-pages.md |
vigencia obsoleta o desconocida |
reports/person-agent-directory.md |
tarjetas de enrutamiento de personas y entidades |
reports/relationship-graph.md |
aristas de relaciones estructuradas |
reports/provenance-coverage.md |
cobertura de clases de evidencia |
reports/privacy-review.md |
niveles de privacidad no públicos que requieren revisión antes de su uso |
Búsqueda y recuperación
Dos backends de búsqueda:
shared: utiliza el flujo compartido de búsqueda en memoria cuando está disponiblelocal: busca localmente en la wiki
Tres corpus: wiki, memory, all.
wiki_search/wiki_getutilizan resúmenes compilados como primera pasada cuando es posible- los identificadores de afirmaciones se resuelven hasta la página propietaria
- las afirmaciones cuestionadas, obsoletas o vigentes influyen en la clasificación
- las etiquetas de procedencia se conservan en los resultados
Modos de búsqueda (parámetro --mode / herramienta mode):
| Modo | Potencia |
|---|---|
auto |
valor predeterminado equilibrado |
find-person |
entidades similares a personas, alias, identificadores, redes sociales, identificadores canónicos |
route-question |
fichas de agentes, indicaciones sobre qué preguntar y para qué se recomienda su uso, contexto de relaciones |
source-evidence |
páginas de origen y metadatos de evidencia estructurada |
raw-claim |
afirmaciones estructuradas coincidentes; devuelve metadatos de afirmaciones y evidencias |
Cuando un resultado coincide con una afirmación estructurada, wiki_search devuelve
matchedClaimId, matchedClaimStatus, matchedClaimConfidence,
evidenceKinds y evidenceSourceIds en la carga de detalles. La salida de texto
incluye líneas compactas de Claim: y Evidence: cuando están disponibles.
Herramientas del agente
| Herramienta | Propósito |
|---|---|
wiki_status |
modo y ámbito actuales de la bóveda, agente resuelto, estado, disponibilidad de la CLI de Obsidian |
wiki_search |
busca páginas de la wiki y, cuando está configurado, en el corpus de memoria compartida; acepta mode para buscar personas, dirigir preguntas, obtener evidencias de origen o examinar afirmaciones sin procesar |
wiki_get |
lee una página de la wiki por identificador o ruta y recurre al corpus de memoria compartida cuando la búsqueda compartida está habilitada y no se encuentra el elemento buscado |
wiki_apply |
mutaciones específicas de síntesis o metadatos sin modificar páginas de forma libre |
wiki_lint |
comprobaciones estructurales, lagunas de procedencia, contradicciones, preguntas abiertas |
El Plugin también registra un complemento no exclusivo del corpus de memoria, por lo que las
funciones compartidas memory_search y memory_get pueden acceder a la wiki cuando el Plugin de Active Memory
admite la selección de corpus.
Comportamiento de las instrucciones y el contexto
Cuando context.includeCompiledDigestPrompt está habilitado, las secciones de instrucciones de memoria
añaden una instantánea compilada y compacta del estado del Plugin: solo las páginas
principales, solo las afirmaciones principales, número de contradicciones, número de preguntas y
calificadores de confianza y vigencia. Esta función es opcional porque cambia la estructura de las instrucciones;
resulta principalmente relevante para los motores de contexto o el ensamblaje de instrucciones que
consumen explícitamente complementos de memoria.
Configuración
Coloque la configuración en 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, }, }, }, }, },}Opciones principales:
| Clave | Valores / valor predeterminado | Notas |
|---|---|---|
vaultMode |
isolated (predeterminado), bridge, unsafe-local |
elige el comportamiento de entrada e integración |
vault.scope |
global (predeterminado), agent |
una bóveda compartida o una bóveda secundaria por agente |
vault.path |
valor predeterminado global ~/.openclaw/wiki/main |
bóveda exacta globalmente; el directorio principal del ámbito del agente se establece de forma predeterminada en ~/.openclaw/wiki |
vault.renderMode |
native (predeterminado), obsidian |
|
bridge.readMemoryArtifacts |
valor predeterminado true |
importa artefactos públicos del Plugin de Active Memory activo |
bridge.followMemoryEvents |
valor predeterminado true |
incluye registros de eventos en el modo puente |
unsafeLocal.allowPrivateMemoryCoreAccess |
valor predeterminado false |
necesario para ejecutar importaciones de unsafe-local |
unsafeLocal.paths |
valor predeterminado [] |
rutas locales explícitas que se deben importar en el modo unsafe-local |
search.backend |
shared (predeterminado), local |
|
search.corpus |
wiki (predeterminado), memory, all |
|
context.includeCompiledDigestPrompt |
valor predeterminado false |
añade la instantánea compacta del resumen del agente seleccionado a las secciones de instrucciones de memoria |
render.createBacklinks |
valor predeterminado true |
genera bloques relacionados deterministas |
render.createDashboards |
valor predeterminado true |
genera páginas de paneles |
Bóvedas por agente
Establezca vault.scope en agent para proporcionar una wiki independiente a cada agente configurado.
En este ámbito, vault.path es un directorio principal y OpenClaw añade el
identificador normalizado del 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, }, }, }, }, },}Esto se resuelve como ~/.openclaw/wiki/support y
~/.openclaw/wiki/marketing. Si se omite vault.path en el ámbito del agente, el
directorio principal se establece de forma predeterminada en ~/.openclaw/wiki. Por tanto, el agente main predeterminado conserva
la ruta existente ~/.openclaw/wiki/main.
Las herramientas del agente, los resúmenes de instrucciones compilados y el complemento de la wiki expuesto mediante
memory_search / memory_get resuelven la bóveda a partir del contexto del agente activo.
Para las llamadas de la CLI y del Gateway en una configuración con varios agentes configurados, indique
el agente explícitamente mediante openclaw wiki --agent <agentId> ... o el valor agentId de la
solicitud del Gateway. Un único agente configurado sigue siendo el predeterminado cuando no se
proporciona ningún identificador.
En el modo puente, las importaciones con ámbito de agente solo aceptan un artefacto público de memoria cuando
su agentIds incluye al agente seleccionado. Se omiten los artefactos que pertenecen a otro agente,
que no tienen metadatos de propiedad o cuyo propietario es desconocido. El ámbito global
mantiene el comportamiento existente de artefactos compartidos.
Ejemplo: QMD + modo puente
Use esta configuración cuando quiera utilizar QMD para la recuperación y memory-wiki como una capa de
conocimiento mantenida. Cada capa mantiene su enfoque: QMD permite buscar notas sin procesar, exportaciones
de sesiones y colecciones adicionales, mientras que memory-wiki compila
entidades estables, afirmaciones, paneles y páginas de origen.
{ 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, }, }, }, }, },}Esto mantiene a QMD a cargo de la recuperación de Active Memory, a memory-wiki centrado en
las páginas compiladas y los paneles, y la estructura de las instrucciones sin cambios hasta que se
habiliten intencionadamente las instrucciones con resúmenes compilados.
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 obtener la referencia completa de los comandos, incluidos
wiki okf import, wiki apply metadata, wiki unsafe-local import,
wiki chatgpt import / wiki chatgpt rollback y el conjunto completo de subcomandos
wiki obsidian.
Compatibilidad con Obsidian
Cuando vault.renderMode es obsidian, el Plugin escribe Markdown compatible con Obsidian
y puede utilizar opcionalmente la CLI oficial obsidian para consultar el estado,
buscar en la bóveda, abrir una página, invocar un comando y acceder a la
nota diaria. Esto es opcional; la wiki continúa funcionando en modo nativo sin
Obsidian.
Las bóvedas con ámbito de agente pueden seguir utilizando Markdown compatible con Obsidian, pero la validación de la
configuración rechaza obsidian.useOfficialCli: true con vault.scope: "agent".
La configuración actual obsidian.vaultName es global y no puede seleccionar una bóveda de
Obsidian distinta para cada agente. En su lugar, use las herramientas de la wiki y las operaciones de la CLI,
o mantenga una wiki gestionada mediante Obsidian en el ámbito global.
Flujo de trabajo recomendado
Mantener el plugin de memoria activo para la recuperación
La recuperación, la promoción y Dreaming siguen siendo responsabilidad del backend de memoria configurado.
Habilitar memory-wiki
Comience con el modo isolated, salvo que se desee explícitamente el modo puente.
Usar wiki_search / wiki_get cuando importe la procedencia
Se deben preferir frente a memory_search cuando se desee una clasificación específica de la wiki o una estructura de creencias a nivel de página.
Usar wiki_apply para síntesis acotadas o actualizaciones de metadatos
Evite editar manualmente los bloques generados administrados.
Ejecutar wiki_lint después de cambios significativos
Detecta contradicciones, preguntas abiertas y carencias de procedencia.
Activar los paneles para visualizar contenido obsoleto y contradicciones
Establezca render.createDashboards: true (valor predeterminado).