Plugin guides
Wiki pamięci
memory-wiki to wbudowany plugin, który kompiluje trwałą wiedzę w
przeglądalną wiki: deterministyczne strony, ustrukturyzowane twierdzenia z dowodami,
pochodzenie, pulpity oraz skróty w formacie czytelnym maszynowo.
Nie zastępuje on pluginu aktywnej pamięci. Przywoływanie, promowanie, indeksowanie i
Dreaming pozostają w gestii skonfigurowanego backendu pamięci
(memory-core, QMD, Honcho itp.). memory-wiki działa obok niego i kompiluje
wiedzę w utrzymywaną warstwę wiki.
| Warstwa | Odpowiada za |
|---|---|
| Plugin aktywnej pamięci | Przywoływanie, wyszukiwanie semantyczne, promowanie, Dreaming, środowisko wykonawcze pamięci |
memory-wiki |
Skompilowane strony wiki, syntezy z bogatymi informacjami o pochodzeniu, pulpity, wyszukiwanie/pobieranie/stosowanie wiki |
Praktyczna reguła:
memory_searchdo jednego szerokiego przebiegu przywoływania we wszystkich skonfigurowanych korpusachwiki_search/wiki_get, gdy potrzebujesz rankingu właściwego dla wiki, informacji o pochodzeniu lub struktury przekonań na poziomie stronymemory_search corpus=all, aby objąć obie warstwy jednym wywołaniem, gdy plugin aktywnej pamięci obsługuje wybór korpusu
Typowa konfiguracja lokalna: QMD jako backend aktywnej pamięci do przywoływania oraz
memory-wiki w trybie bridge do obsługi trwałych, syntetyzowanych stron. Zobacz
przykład QMD + tryb mostu w sekcji Konfiguracja.
Jeśli tryb mostu zgłasza zero wyeksportowanych artefaktów, plugin aktywnej pamięci
nie udostępnia obecnie publicznych danych wejściowych mostu. Najpierw uruchom openclaw wiki doctor,
a następnie potwierdź, że plugin aktywnej pamięci obsługuje publiczne artefakty.
Tryby magazynu
isolated(domyślny): własny magazyn, własne źródła, bez zależności od pluginu aktywnej pamięci. Użyj go do samodzielnego, starannie zarządzanego repozytorium wiedzy.bridge: odczytuje publiczne artefakty pamięci i dzienniki zdarzeń z pluginu aktywnej pamięci przez publiczne mechanizmy SDK pluginów. Użyj go do kompilowania artefaktów eksportowanych przez plugin pamięci bez sięgania do jego prywatnych elementów wewnętrznych.unsafe-local: jawne obejście przeznaczone dla prywatnych ścieżek lokalnych na tej samej maszynie. Celowo eksperymentalne i nieprzenośne; używaj go tylko wtedy, gdy rozumiesz granicę zaufania i potrzebujesz dostępu do lokalnego systemu plików, którego tryb mostu nie może zapewnić.
Tryb magazynu i zakres magazynu to odrębne ustawienia:
vaultModeokreśla, skąd pochodzą dane wejściowe wiki.vault.scopeokreśla, czy wszyscy agenci korzystają z jednego magazynu, czy każdy agent otrzymuje magazyn podrzędny.
vault.scope: "global" jest ustawieniem domyślnym i zachowuje dotychczasowe
działanie jednego magazynu. Użyj vault.scope: "agent" z trybem isolated lub bridge, gdy
agenci nie mogą współdzielić stron wiki, skompilowanych skrótów, wyników wyszukiwania ani zapisów.
Zakresu agenta nie można łączyć z trybem unsafe-local, ponieważ skonfigurowane
prywatne ścieżki nie są danymi wejściowymi należącymi do agenta. Walidacja konfiguracji odrzuca
taką kombinację.
Tryb mostu może indeksować zgodnie z przełącznikami konfiguracji bridge.*:
- wyeksportowane artefakty pamięci (
indexMemoryRoot) - notatki dzienne (
indexDailyNotes) - raporty Dreaming (
indexDreamReports) - dzienniki zdarzeń pamięci (
followMemoryEvents)
Gdy tryb mostu jest aktywny i włączono bridge.readMemoryArtifacts,
polecenia openclaw wiki status, openclaw wiki doctor oraz openclaw wiki bridge import są kierowane przez działający Gateway, dzięki czemu widzą ten sam kontekst aktywnego pluginu
pamięci co pamięć agenta/środowiska wykonawczego. Jeśli most jest wyłączony lub odczyt
artefaktów jest wyłączony, polecenia te zachowują działanie lokalne/offline.
Układ magazynu
<vault>/ AGENTS.md WIKI.md index.md inbox.md entities/ concepts/ syntheses/ sources/ reports/ _attachments/ _views/ .openclaw-wiki/Zarządzana zawartość pozostaje wewnątrz generowanych bloków; bloki notatek użytkownika są zachowywane podczas ponownego generowania.
sources/: zaimportowane materiały źródłowe oraz strony oparte na trybie bridge/unsafe-localentities/: trwałe elementy, osoby, systemy, projekty, obiektyconcepts/: idee, abstrakcje, wzorce, zasady (również miejsce docelowe importów OKF)syntheses/: skompilowane podsumowania i utrzymywane zestawieniareports/: generowane pulpity
Importy Open Knowledge Format
openclaw wiki okf import ./bundles/ga4Importuje rozpakowany pakiet Open Knowledge Format do stron pojęć wiki. Jest to dobre
rozwiązanie, gdy katalog danych, robot indeksujący dokumentację lub agent wzbogacający dane już
generuje OKF: zachowaj OKF jako przenośny artefakt wymiany, a memory-wiki
przekształci go w natywne dla OpenClaw strony pojęć i skompilowane skróty.
- niezastrzeżone pliki
.mdsą dokumentami pojęć - każde importowane pojęcie wymaga niepustego pola frontmatter
type; braktypepowoduje ostrzeżeniemissing-type, a plik jest pomijany - nieznane wartości
typesą akceptowane jako ogólne pojęcia index.mdilog.mdsą zastrzeżone i nigdy nie są importowane jako pojęcia- uszkodzone lub zewnętrzne łącza Markdown pozostają bez zmian
Zaimportowane strony są umieszczane bezpośrednio w concepts/, dzięki czemu istniejące procesy
kompilowania, wyszukiwania, pobierania i generowania pulpitów widzą je bez tworzenia drugiego drzewa wiki. Każda strona zachowuje
oryginalny identyfikator pojęcia OKF, ścieżkę źródłową, type, resource, tags, znacznik czasu
oraz pełny frontmatter producenta. Wewnętrzne łącza OKF są przepisywane tak, aby wskazywały wygenerowane
strony pojęć wiki, a także tworzą ustrukturyzowane wpisy relationships z
kind: okf-link.
Ustrukturyzowane twierdzenia i dowody
Strony zawierają ustrukturyzowany frontmatter claims, a nie tylko tekst swobodny. Każde
twierdzenie może zawierać id, text, status, confidence, evidence[] oraz
updatedAt. Każdy wpis dowodu może zawierać kind, sourceId, path,
lines, weight, confidence, privacyTier, note oraz updatedAt.
Dzięki temu wiki działa jak warstwa przekonań, a nie bierny zbiór notatek. Twierdzenia można śledzić, oceniać, kwestionować i rozstrzygać na podstawie źródeł.
Metadane encji przeznaczone dla agentów
Strony encji zawierają ogólne metadane routingu, których można używać dla osób, zespołów, systemów, projektów lub dowolnych innych typów encji:
entityType: na przykładperson,team,system,projectcanonicalId: stabilny klucz tożsamości używany w aliasach i importachaliases: nazwy, identyfikatory lub etykiety wskazujące tę samą stronęprivacyTier: ciąg znaków o dowolnej postaci;publicjest traktowane jako niewymagające przeglądu, a każda inna wartość (na przykładlocal-private,sensitive,confirm-before-use) jest oznaczana wreports/privacy-review.mdbestUsedFor/notEnoughFor: zwięzłe wskazówki dotyczące routingulastRefreshedAt: znacznik czasu odświeżenia źródła, niezależny od czasu edycji stronypersonCard: opcjonalna karta routingu właściwa dla osoby (identyfikatory, profile społecznościowe, adresy e-mail, strefa czasowa, obszar, sprawy, o które warto pytać, sprawy, o które nie należy pytać, poziom pewności, poziom prywatności)relationships: typowane krawędzie prowadzące do powiązanych stron (cel, rodzaj, waga, poziom pewności, rodzaj dowodu, poziom prywatności, uwaga)
W przypadku wiki osób zacznij od reports/person-agent-directory.md, a następnie otwórz
stronę osoby za pomocą wiki_get, zanim użyjesz danych kontaktowych lub wywnioskowanych
faktów.
Przykład strony encji
pageType: entityentityType: personid: entity.example-personcanonicalId: maintainer.example-personaliases:- Alex- example-handleprivacyTier: local-privatebestUsedFor:- Przekierowywanie w przykładowym ekosystemienotEnoughFor:- zatwierdzanie prawnelastRefreshedAt: "2026-04-29T00:00:00.000Z"personCard:handles: - "@example-handle"socials: - "https://x.example/example-handle"emails: - alex@example.comtimezone: America/Chicagolane: Przykładowy ekosystemaskFor: - Pytania dotyczące przykładowego wdrożeniaavoidAskingFor: - niepowiązane decyzje rozliczenioweconfidence: 0.8privacyTier: confirm-before-userelationships:- targetId: entity.other-person targetTitle: Inna osoba kind: collaborates-with confidence: 0.7 evidenceKind: discrawl-statclaims:- id: claim.example.routing text: Alex jest pomocny przy przekierowywaniu w przykładowym ekosystemie. status: supported confidence: 0.9 evidence: - kind: maintainer-whois sourceId: source.maintainers privacyTier: local-privateProces kompilowania
Kompilowanie odczytuje strony wiki, normalizuje podsumowania i generuje stabilne artefakty przeznaczone dla maszyn w:
.openclaw-wiki/cache/agent-digest.json.openclaw-wiki/cache/claims.jsonl
Agenci i kod środowiska wykonawczego odczytują te skróty zamiast analizować Markdown. Skompilowane dane wyjściowe zasilają również pierwszy etap indeksowania wiki na potrzeby wyszukiwania/pobierania, wyszukiwanie twierdzeń według identyfikatora i wskazywanie stron, do których należą, zwięzłe uzupełnienia promptów oraz generowanie raportów.
Pulpity i raporty o stanie
Gdy włączono render.createDashboards, kompilowanie utrzymuje pulpity w
reports/:
| Raport | Śledzi |
|---|---|
reports/open-questions.md |
strony z nierozstrzygniętymi pytaniami |
reports/contradictions.md |
klastry uwag o sprzecznościach |
reports/low-confidence.md |
strony i twierdzenia o niskim poziomie pewności |
reports/claim-health.md |
twierdzenia bez ustrukturyzowanych dowodów |
reports/stale-pages.md |
nieaktualną lub nieznaną świeżość |
reports/person-agent-directory.md |
karty routingu osób/encji |
reports/relationship-graph.md |
ustrukturyzowane krawędzie relacji |
reports/provenance-coverage.md |
pokrycie klas dowodów |
reports/privacy-review.md |
niepubliczne poziomy prywatności wymagające przeglądu przed użyciem |
Wyszukiwanie i pobieranie
Dwa backendy wyszukiwania:
shared: używa współdzielonego procesu wyszukiwania w pamięci, gdy jest dostępnylocal: przeszukuje wiki lokalnie
Trzy korpusy: wiki, memory, all.
wiki_search/wiki_getużywają skompilowanych skrótów jako pierwszego etapu, gdy jest to możliwe- identyfikatory twierdzeń wskazują stronę, do której należą
- kwestionowane/nieaktualne/świeże twierdzenia wpływają na ranking
- etykiety pochodzenia są zachowywane w wynikach
Tryby wyszukiwania (parametr --mode / parametr narzędzia mode):
| Tryb | Wzmacnia |
|---|---|
auto |
zrównoważone ustawienie domyślne |
find-person |
encje przypominające osoby, aliasy, identyfikatory, profile społecznościowe, identyfikatory kanoniczne |
route-question |
karty agentów, wskazówki spraw, o które warto pytać/najlepszych zastosowań, kontekst relacji |
source-evidence |
strony źródłowe i metadane ustrukturyzowanych dowodów |
raw-claim |
pasujące ustrukturyzowane twierdzenia; zwraca metadane twierdzeń/dowodów |
Gdy wynik pasuje do ustrukturyzowanego twierdzenia, wiki_search zwraca
matchedClaimId, matchedClaimStatus, matchedClaimConfidence,
evidenceKinds oraz evidenceSourceIds w szczegółowym ładunku. Tekstowe dane wyjściowe
zawierają zwięzłe wiersze Claim: i Evidence:, gdy są dostępne.
Narzędzia agentów
| Narzędzie | Przeznaczenie |
|---|---|
wiki_status |
bieżący tryb i zakres magazynu, rozpoznany agent, stan działania, dostępność CLI Obsidian |
wiki_search |
przeszukuje strony wiki oraz, po skonfigurowaniu, korpus współdzielonej pamięci; przyjmuje mode do wyszukiwania osób, kierowania pytań, uzyskiwania dowodów źródłowych lub analizy surowych twierdzeń |
wiki_get |
odczytuje stronę wiki według identyfikatora lub ścieżki, a gdy wyszukiwanie współdzielone jest włączone i nie znajdzie wyniku, korzysta z korpusu współdzielonej pamięci |
wiki_apply |
wykonuje ograniczone zmiany syntezy lub metadanych bez swobodnej ingerencji w stronę |
wiki_lint |
przeprowadza kontrole strukturalne oraz wykrywa luki w pochodzeniu informacji, sprzeczności i otwarte pytania |
Wtyczka rejestruje również niewyłączny dodatkowy korpus pamięci, dzięki czemu
współdzielone memory_search i memory_get mogą uzyskiwać dostęp do wiki, gdy
aktywna wtyczka pamięci obsługuje wybór korpusu.
Zachowanie promptu i kontekstu
Gdy opcja context.includeCompiledDigestPrompt jest włączona, sekcje pamięci
w prompcie są uzupełniane o zwięzły, skompilowany obraz z pliku
agent-digest.json: tylko najważniejsze strony, tylko najważniejsze twierdzenia,
liczbę sprzeczności, liczbę pytań oraz kwalifikatory pewności i aktualności.
Jest to funkcja opcjonalna, ponieważ zmienia strukturę promptu; ma znaczenie
głównie dla silników kontekstu lub mechanizmów składania promptów, które jawnie
wykorzystują uzupełnienia pamięci.
Konfiguracja
Umieść konfigurację w 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, }, }, }, }, },}Najważniejsze przełączniki:
| Klucz | Wartości / wartość domyślna | Uwagi |
|---|---|---|
vaultMode |
isolated (domyślnie), bridge, unsafe-local |
wybiera sposób obsługi danych wejściowych i integracji |
vault.scope |
global (domyślnie), agent |
jeden współdzielony magazyn lub osobny magazyn podrzędny dla każdego agenta |
vault.path |
globalna wartość domyślna ~/.openclaw/wiki/main |
dokładna ścieżka magazynu w zakresie globalnym; katalog nadrzędny w zakresie agenta ma domyślną wartość ~/.openclaw/wiki |
vault.renderMode |
native (domyślnie), obsidian |
|
bridge.readMemoryArtifacts |
domyślnie true |
importuje publiczne artefakty aktywnej wtyczki pamięci |
bridge.followMemoryEvents |
domyślnie true |
uwzględnia dzienniki zdarzeń w trybie pomostowym |
unsafeLocal.allowPrivateMemoryCoreAccess |
domyślnie false |
wymagane do wykonywania importów unsafe-local |
unsafeLocal.paths |
domyślnie [] |
jawne ścieżki lokalne do zaimportowania w trybie unsafe-local |
search.backend |
shared (domyślnie), local |
|
search.corpus |
wiki (domyślnie), memory, all |
|
context.includeCompiledDigestPrompt |
domyślnie false |
dołącza zwięzły obraz skrótu wybranego agenta do sekcji pamięci w prompcie |
render.createBacklinks |
domyślnie true |
generuje deterministyczne bloki powiązanych treści |
render.createDashboards |
domyślnie true |
generuje strony pulpitów |
Magazyny poszczególnych agentów
Ustaw vault.scope na agent, aby każdy skonfigurowany agent miał osobną wiki.
W tym zakresie vault.path jest katalogiem nadrzędnym, a OpenClaw dołącza
znormalizowany identyfikator agenta:
{ 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, }, }, }, }, },}Wynikowe ścieżki to ~/.openclaw/wiki/support oraz
~/.openclaw/wiki/marketing. Jeśli vault.path zostanie pominięte w zakresie
agenta, domyślnym katalogiem nadrzędnym jest ~/.openclaw/wiki. Domyślny agent
main zachowuje więc istniejącą ścieżkę ~/.openclaw/wiki/main.
Narzędzia agenta, skompilowane skróty promptu oraz uzupełnienie wiki udostępniane
przez memory_search / memory_get wybierają magazyn na podstawie kontekstu
aktywnego agenta. W przypadku wywołań CLI i Gateway w konfiguracji z wieloma
agentami jawnie podaj agenta za pomocą openclaw wiki --agent <agentId> ...
lub pola agentId w żądaniu Gateway. Jeśli skonfigurowano tylko jednego agenta,
pozostaje on domyślny, gdy nie podano identyfikatora.
W trybie pomostowym importy w zakresie agenta przyjmują publiczny artefakt
pamięci tylko wtedy, gdy jego agentIds zawiera wybranego agenta. Artefakty
należące do innego agenta, pozbawione metadanych właściciela lub mające
nieznanego właściciela są pomijane. Zakres globalny zachowuje dotychczasowe
zachowanie współdzielonych artefaktów.
Przykład: QMD i tryb pomostowy
Użyj tej konfiguracji, jeśli chcesz stosować QMD do przywoływania informacji,
a memory-wiki jako utrzymywaną warstwę wiedzy. Każda warstwa zachowuje własny
zakres odpowiedzialności: QMD umożliwia przeszukiwanie surowych notatek,
eksportów sesji i dodatkowych kolekcji, natomiast memory-wiki kompiluje
stabilne encje, twierdzenia, pulpity i strony źródłowe.
{ 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, }, }, }, }, },}Dzięki temu QMD odpowiada za przywoływanie informacji z aktywnej pamięci,
memory-wiki koncentruje się na skompilowanych stronach i pulpitach, a struktura
promptu pozostaje niezmieniona, dopóki świadomie nie włączysz skompilowanych
skrótów w promptach.
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 statusPełny opis poleceń, w tym wiki okf import, wiki apply metadata,
wiki unsafe-local import, wiki chatgpt import / wiki chatgpt rollback
oraz pełny zestaw podpoleceń wiki obsidian, znajdziesz w sekcji
CLI: wiki.
Obsługa Obsidian
Gdy vault.renderMode ma wartość obsidian, wtyczka zapisuje Markdown
przystosowany do Obsidian i może opcjonalnie używać oficjalnego CLI obsidian
do sprawdzania stanu, przeszukiwania magazynu, otwierania strony, wywoływania
polecenia oraz przechodzenia do notatki dziennej. Jest to opcjonalne; wiki nadal
działa w trybie natywnym bez Obsidian.
Magazyny w zakresie agenta również mogą używać formatu Markdown przystosowanego
do Obsidian, ale walidacja konfiguracji odrzuca połączenie
obsidian.useOfficialCli: true z vault.scope: "agent". Bieżące ustawienie
obsidian.vaultName jest globalne i nie może wybierać osobnego magazynu
Obsidian dla każdego agenta. Zamiast tego używaj narzędzi wiki i operacji CLI
albo pozostaw wiki obsługiwaną przez Obsidian w zakresie globalnym.
Zalecany przepływ pracy
Zachowaj aktywną wtyczkę pamięci do przywoływania informacji
Przywoływanie, promowanie i Dreaming pozostają odpowiedzialnością skonfigurowanego mechanizmu pamięci.
Włącz memory-wiki
Zacznij od trybu isolated, chyba że świadomie chcesz używać trybu pomostowego.
Gdy ważne jest pochodzenie informacji, używaj wiki_search / wiki_get
Preferuj je zamiast memory_search, jeśli potrzebujesz rankingu właściwego dla wiki lub struktury przekonań na poziomie strony.
Używaj wiki_apply do ograniczonych syntez lub aktualizacji metadanych
Unikaj ręcznego edytowania zarządzanych, generowanych bloków.
Po istotnych zmianach uruchamiaj wiki_lint
Wykrywa sprzeczności, otwarte pytania i luki w pochodzeniu informacji.
Włącz pulpity, aby uwidocznić nieaktualne informacje i sprzeczności
Ustaw render.createDashboards: true (wartość domyślna).