Plugin guides
Вікі пам’яті
memory-wiki — це вбудований Plugin, який компілює довготривалі знання в
зручну для навігації вікі: детерміновані сторінки, структуровані твердження з доказами,
походження даних, панелі огляду та машиночитні дайджести.
Він не замінює Plugin активної пам’яті. Пригадування, просування, індексування та
Dreaming залишаються у віданні налаштованого бекенда пам’яті
(memory-core, QMD, Honcho тощо). memory-wiki працює поруч із ним і компілює
знання в підтримуваний шар вікі.
| Шар | Відповідає за |
|---|---|
| Plugin активної пам’яті | Пригадування, семантичний пошук, просування, Dreaming, середовище виконання пам’яті |
memory-wiki |
Скомпільовані вікісторінки, синтези з докладним походженням даних, панелі огляду, пошук/отримання/застосування вікі |
Практичне правило:
memory_searchдля одного широкого проходу пригадування всіма налаштованими корпусамиwiki_search/wiki_get, коли потрібні специфічні для вікі ранжування, походження даних або структура переконань на рівні сторінкиmemory_search corpus=all, щоб охопити обидва шари одним викликом, якщо Plugin активної пам’яті підтримує вибір корпусу
Поширене налаштування з пріоритетом локальної роботи: QMD як бекенд активної пам’яті для пригадування та
memory-wiki у режимі bridge для довготривалих синтезованих сторінок. Див.
приклад QMD + режиму мосту в розділі Конфігурація.
Якщо режим мосту повідомляє про нуль експортованих артефактів, Plugin активної пам’яті
наразі не надає загальнодоступних вхідних даних мосту. Спочатку виконайте openclaw wiki doctor,
а потім переконайтеся, що Plugin активної пам’яті підтримує загальнодоступні артефакти.
Режими сховища
isolated(типово): власне сховище, власні джерела, без залежності від Plugin активної пам’яті. Використовуйте для самодостатнього впорядкованого сховища знань.bridge: зчитує загальнодоступні артефакти пам’яті та журнали подій із Plugin активної пам’яті через загальнодоступні інтерфейси SDK плагінів. Використовуйте для компіляції експортованих артефактів Plugin пам’яті без доступу до його приватної внутрішньої реалізації.unsafe-local: явний аварійний механізм для приватних локальних шляхів на тій самій машині. Навмисно експериментальний і непереносний; використовуйте лише тоді, коли розумієте межу довіри й вам потрібен саме доступ до локальної файлової системи, якого не може надати режим мосту.
Режим і область сховища — це окремі параметри:
vaultModeвизначає, звідки надходять вхідні дані вікі.vault.scopeвизначає, чи всі агенти використовують одне сховище, чи кожен агент отримує дочірнє сховище.
vault.scope: "global" є типовим значенням і зберігає наявну
поведінку з одним сховищем. Використовуйте vault.scope: "agent" із режимом
isolated або bridge, коли агенти не повинні спільно використовувати вікісторінки,
скомпільовані дайджести, результати пошуку чи записи.
Область агента не можна поєднувати з режимом unsafe-local, оскільки налаштовані
приватні шляхи не є вхідними даними, що належать агенту. Перевірка конфігурації відхиляє
таке поєднання.
Режим мосту може індексувати залежно від перемикачів конфігурації bridge.*:
- експортовані артефакти пам’яті (
indexMemoryRoot) - щоденні нотатки (
indexDailyNotes) - звіти Dreaming (
indexDreamReports) - журнали подій пам’яті (
followMemoryEvents)
Коли режим мосту активний і bridge.readMemoryArtifacts увімкнено,
openclaw wiki status, openclaw wiki doctor та openclaw wiki bridge import спрямовуються через запущений Gateway, тому вони бачать той самий контекст
активного Plugin пам’яті, що й пам’ять агента/середовища виконання. Якщо міст вимкнено
або читання артефактів неактивне, ці команди зберігають локальну/офлайн-поведінку.
Структура сховища
<vault>/ AGENTS.md WIKI.md index.md inbox.md entities/ concepts/ syntheses/ sources/ reports/ _attachments/ _views/ .openclaw-wiki/Керований вміст залишається всередині згенерованих блоків; блоки нотаток, створені людьми, зберігаються під час повторного генерування.
sources/: імпортовані необроблені матеріали та сторінки, що підтримуються мостом абоunsafe-localentities/: довготривалі сутності, люди, системи, проєкти, об’єктиconcepts/: ідеї, абстракції, шаблони, політики (також місце призначення для імпорту OKF)syntheses/: скомпільовані зведення та підтримувані узагальненняreports/: згенеровані панелі огляду
Імпорт Open Knowledge Format
openclaw wiki okf import ./bundles/ga4Імпортуйте розпакований пакет Open Knowledge Format у сторінки концепцій вікі. Це добре
підходить, коли каталог даних, сканер документації або агент збагачення вже
створює OKF: зберігайте OKF як переносний артефакт обміну, а memory-wiki
перетворить його на нативні для OpenClaw сторінки концепцій і скомпільовані дайджести.
- незарезервовані файли
.mdє документами концепцій - кожна імпортована концепція потребує непорожнього поля
typeу frontmatter; відсутнійtypeспричиняє попередженняmissing-type, а файл пропускається - невідомі значення
typeприймаються як загальні концепції index.mdіlog.mdзарезервовані та ніколи не імпортуються як концепції- пошкоджені або зовнішні Markdown-посилання залишаються без змін
Імпортовані сторінки розміщуються в плоскій структурі в concepts/, щоб наявні процеси компіляції, пошуку, отримання та
створення панелей огляду бачили їх без другого дерева вікі. Кожна сторінка зберігає
початковий ідентифікатор концепції OKF, шлях до джерела, type, resource, tags, часову позначку
та повний frontmatter виробника. Внутрішні посилання OKF переписуються на згенеровані
сторінки концепцій вікі, а також створюють структуровані записи relationships із
kind: okf-link.
Структуровані твердження та докази
Сторінки містять структурований frontmatter claims, а не лише довільний текст. Кожне
твердження може містити id, text, status, confidence, evidence[] і
updatedAt. Кожен запис доказу може містити kind, sourceId, path,
lines, weight, confidence, privacyTier, note і updatedAt.
Завдяки цьому вікі працює як шар переконань, а не пасивне звалище нотаток. Твердження можна відстежувати, оцінювати, оскаржувати та зіставляти з джерелами.
Метадані сутностей для агентів
Сторінки сутностей містять загальні метадані маршрутизації, придатні для людей, команд, систем, проєктів або будь-яких інших типів сутностей:
entityType: наприклад,person,team,system,projectcanonicalId: стабільний ключ ідентичності для псевдонімів та імпортівaliases: імена, облікові назви або мітки, що відповідають тій самій сторінціprivacyTier: рядок довільного формату;publicвважається таким, що не потребує перевірки, а будь-яке інше значення (наприклад,local-private,sensitive,confirm-before-use) позначається уreports/privacy-review.mdbestUsedFor/notEnoughFor: стислі підказки щодо маршрутизаціїlastRefreshedAt: часова позначка оновлення джерела, окрема від часу редагування сторінкиpersonCard: необов’язкова картка маршрутизації для конкретної особи (облікові назви, соціальні мережі, електронні адреси, часовий пояс, напрям, із чим звертатися, із чим не звертатися, упевненість, рівень приватності)relationships: типізовані зв’язки з пов’язаними сторінками (ціль, тип, вага, упевненість, тип доказу, рівень приватності, нотатка)
Для вікі людей почніть із reports/person-agent-directory.md, а потім відкрийте
сторінку особи за допомогою wiki_get, перш ніж використовувати контактні дані або виведені
факти.
Приклад сторінки сутності
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-privateКонвеєр компіляції
Компіляція зчитує вікісторінки, нормалізує зведення та створює стабільні артефакти для машинного використання в:
.openclaw-wiki/cache/agent-digest.json.openclaw-wiki/cache/claims.jsonl
Агенти та код середовища виконання читають ці дайджести замість аналізу Markdown. Скомпільований результат також забезпечує початкове індексування вікі для пошуку/отримання, пошук сторінок-власників за ідентифікаторами тверджень, компактні доповнення до запитів і створення звітів.
Панелі огляду та звіти про стан
Коли render.createDashboards увімкнено, компіляція підтримує панелі огляду в
reports/:
| Звіт | Відстежує |
|---|---|
reports/open-questions.md |
сторінки з невирішеними питаннями |
reports/contradictions.md |
кластери нотаток про суперечності |
reports/low-confidence.md |
сторінки та твердження з низькою впевненістю |
reports/claim-health.md |
твердження без структурованих доказів |
reports/stale-pages.md |
застарілу або невідому актуальність |
reports/person-agent-directory.md |
картки маршрутизації людей/сутностей |
reports/relationship-graph.md |
структуровані зв’язки |
reports/provenance-coverage.md |
охоплення класів доказів |
reports/privacy-review.md |
непублічні рівні приватності, що потребують перевірки перед використанням |
Пошук і отримання
Два бекенди пошуку:
shared: використовує спільний процес пошуку в пам’яті, коли він доступнийlocal: шукає у вікі локально
Три корпуси: wiki, memory, all.
wiki_search/wiki_getза можливості використовують скомпільовані дайджести для першого проходу- ідентифікатори тверджень зіставляються зі сторінкою-власником
- оскаржені/застарілі/актуальні твердження впливають на ранжування
- мітки походження даних зберігаються в результатах
Режими пошуку (параметр --mode / параметр інструмента mode):
| Режим | Підвищує пріоритет |
|---|---|
auto |
збалансований типовий режим |
find-person |
сутності, подібні до людей, псевдоніми, облікові назви, соціальні мережі, канонічні ідентифікатори |
route-question |
картки агентів, підказки «із чим звертатися»/«для чого найкраще використовувати», контекст зв’язків |
source-evidence |
сторінки джерел і метадані структурованих доказів |
raw-claim |
відповідні структуровані твердження; повертає метадані тверджень/доказів |
Коли результат відповідає структурованому твердженню, wiki_search повертає
matchedClaimId, matchedClaimStatus, matchedClaimConfidence,
evidenceKinds і evidenceSourceIds у корисному навантаженні деталей. Текстовий результат
за наявності містить стислі рядки Claim: і Evidence:.
Інструменти агентів
| Інструмент | Призначення |
|---|---|
wiki_status |
поточний режим і область сховища, визначений агент, стан, доступність CLI Obsidian |
wiki_search |
пошук сторінок вікі та, якщо налаштовано, спільного корпусу пам’яті; приймає mode для пошуку особи, маршрутизації запитань, доказів із джерел або детального перегляду необроблених тверджень |
wiki_get |
читання сторінки вікі за ідентифікатором або шляхом із переходом до спільного корпусу пам’яті, якщо ввімкнено спільний пошук і пошук не дав результатів |
wiki_apply |
вузькоспрямовані зміни синтезованого вмісту або метаданих без довільного редагування сторінки |
wiki_lint |
перевірки структури, прогалин у походженні даних, суперечностей і відкритих запитань |
Plugin також реєструє невиключне доповнення до корпусу пам’яті, тому спільні
memory_search і memory_get можуть звертатися до вікі, якщо активний Plugin
пам’яті підтримує вибір корпусу.
Поведінка запиту й контексту
Коли ввімкнено context.includeCompiledDigestPrompt, до розділів запиту пам’яті
додається компактний скомпільований знімок із agent-digest.json: лише
найважливіші сторінки, лише найважливіші твердження, кількість суперечностей,
кількість запитань, уточнення щодо впевненості й актуальності. Цю функцію
потрібно вмикати явно, оскільки вона змінює структуру запиту; вона переважно
важлива для рушіїв контексту або механізмів формування запитів, які явно
використовують доповнення пам’яті.
Конфігурація
Розмістіть конфігурацію в 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, }, }, }, }, },}Основні перемикачі:
| Ключ | Значення / типове значення | Примітки |
|---|---|---|
vaultMode |
isolated (типово), bridge, unsafe-local |
визначає поведінку введення та інтеграції |
vault.scope |
global (типово), agent |
одне спільне сховище або окреме дочірнє сховище для кожного агента |
vault.path |
глобально типово ~/.openclaw/wiki/main |
точний шлях до глобального сховища; для області агента батьківський шлях типово ~/.openclaw/wiki |
vault.renderMode |
native (типово), obsidian |
|
bridge.readMemoryArtifacts |
типово true |
імпортувати загальнодоступні артефакти активного Plugin пам’яті |
bridge.followMemoryEvents |
типово true |
включати журнали подій у режимі мосту |
unsafeLocal.allowPrivateMemoryCoreAccess |
типово false |
обов’язково для запуску імпорту unsafe-local |
unsafeLocal.paths |
типово [] |
явні локальні шляхи для імпорту в режимі unsafe-local |
search.backend |
shared (типово), local |
|
search.corpus |
wiki (типово), memory, all |
|
context.includeCompiledDigestPrompt |
типово false |
додавати компактний знімок дайджесту вибраного агента до розділів запиту пам’яті |
render.createBacklinks |
типово true |
створювати детерміновані блоки пов’язаних матеріалів |
render.createDashboards |
типово true |
створювати сторінки панелей огляду |
Сховища для окремих агентів
Установіть для vault.scope значення agent, щоб надати кожному налаштованому
агенту окрему вікі. У цій області vault.path є батьківським каталогом, а
OpenClaw додає нормалізований ідентифікатор агента:
{ 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, }, }, }, }, },}У результаті утворюються шляхи ~/.openclaw/wiki/support і
~/.openclaw/wiki/marketing. Якщо vault.path не вказано в області агента,
типовим батьківським каталогом буде ~/.openclaw/wiki. Тому типовий агент
main зберігає наявний шлях ~/.openclaw/wiki/main.
Інструменти агента, скомпільовані дайджести запитів і доповнення вікі, доступне
через memory_search / memory_get, визначають сховище з контексту активного
агента. Для викликів CLI і Gateway у конфігурації з кількома налаштованими
агентами явно вкажіть агента за допомогою openclaw wiki --agent <agentId> ...
або agentId у запиті Gateway. Якщо ідентифікатор не вказано, єдиний
налаштований агент залишається типовим.
У режимі мосту імпорт в області агента приймає загальнодоступний артефакт
пам’яті лише тоді, коли його agentIds містить вибраного агента. Артефакти, що
належать іншому агенту, не мають метаданих власника або мають невідомого
власника, пропускаються. Глобальна область зберігає наявну поведінку спільних
артефактів.
Приклад: QMD + режим мосту
Використовуйте цю конфігурацію, якщо вам потрібен QMD для пригадування, а
memory-wiki — для підтримуваного шару знань. Кожен шар зберігає свою
спеціалізацію: QMD забезпечує пошук у необроблених нотатках, експортованих
сеансах і додаткових колекціях, а memory-wiki компілює стабільні сутності,
твердження, панелі огляду та сторінки джерел.
{ 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, }, }, }, }, },}Так QMD продовжує керувати пригадуванням з активної пам’яті, memory-wiki
зосереджується на скомпільованих сторінках і панелях огляду, а структура запиту
не змінюється, доки ви навмисно не ввімкнете запити зі скомпільованим
дайджестом.
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 statusПовний довідник команд, зокрема wiki okf import, wiki apply metadata,
wiki unsafe-local import, wiki chatgpt import / wiki chatgpt rollback і
повний набір підкоманд wiki obsidian, див. у розділі
CLI: вікі.
Підтримка Obsidian
Коли vault.renderMode має значення obsidian, Plugin записує Markdown,
сумісний з Obsidian, і за бажанням може використовувати офіційний CLI
obsidian для перевірки стану, пошуку в сховищі, відкриття сторінки, виклику
команди та переходу до щоденної нотатки. Це необов’язково; вікі продовжує
працювати в нативному режимі без Obsidian.
Сховища для окремих агентів також можуть використовувати Markdown, сумісний з
Obsidian, але перевірка конфігурації відхиляє поєднання
obsidian.useOfficialCli: true із vault.scope: "agent". Поточне налаштування
obsidian.vaultName є глобальним і не може вибирати окреме сховище Obsidian
для кожного агента. Натомість використовуйте інструменти вікі та операції CLI
або залиште вікі під керуванням Obsidian у глобальній області.
Рекомендований робочий процес
Збережіть активний Plugin пам’яті для пригадування
Пригадування, просування та Dreaming залишаються у віданні налаштованого бекенда пам’яті.
Увімкніть memory-wiki
Почніть із режиму isolated, якщо вам явно не потрібен режим мосту.
Використовуйте wiki_search / wiki_get, коли важливе походження даних
Надавайте їм перевагу над memory_search, коли потрібне ранжування, специфічне
для вікі, або структура переконань на рівні сторінки.
Використовуйте wiki_apply для вузькоспрямованого синтезу або оновлення метаданих
Уникайте ручного редагування керованих згенерованих блоків.
Запускайте wiki_lint після суттєвих змін
Виявляє суперечності, відкриті запитання та прогалини в походженні даних.
Увімкніть панелі огляду для відстеження застарілих даних і суперечностей
Установіть render.createDashboards: true (типово).