mirror of
https://github.com/hansjone/oclaw.git
synced 2026-10-11 08:10:48 +08:00
重构主控编排与运行时预热链路,统一工作区提示词/专家调度协议并补齐 wiki 记忆注入与写回闭环。
同时收敛启动与运维脚本默认行为(含 wiki worker)、更新 Admin 可观测性与相关测试,降低首轮时延并提高运行稳定性。 Made-with: Cursor
This commit is contained in:
parent
4a23b715a2
commit
dbbe3add6a
14438 changed files with 2693620 additions and 2546 deletions
177
openclaw/extensions/memory-wiki/README.md
Normal file
177
openclaw/extensions/memory-wiki/README.md
Normal file
|
|
@ -0,0 +1,177 @@
|
|||
# @openclaw/memory-wiki
|
||||
|
||||
Persistent wiki compiler and Obsidian-friendly knowledge vault for **OpenClaw**.
|
||||
|
||||
This plugin is separate from the active memory plugin. The active memory plugin still handles recall, promotion, and dreaming. `memory-wiki` compiles durable knowledge into a navigable markdown vault with deterministic indexes, provenance, structured claim/evidence metadata, and optional Obsidian CLI workflows.
|
||||
|
||||
When the active memory plugin exposes shared recall, agents can use `memory_search` with `corpus=all` to search durable memory and the compiled wiki in one pass, then fall back to `wiki_search` / `wiki_get` when wiki-specific ranking or provenance matters.
|
||||
|
||||
## Modes
|
||||
|
||||
- `isolated`: own vault, own sources, no dependency on `memory-core`
|
||||
- `bridge`: reads public memory artifacts and memory events through public seams
|
||||
- `unsafe-local`: explicit same-machine escape hatch for private local paths
|
||||
|
||||
Default mode is `isolated`.
|
||||
|
||||
## Config
|
||||
|
||||
Put config under `plugins.entries.memory-wiki.config`:
|
||||
|
||||
```json5
|
||||
{
|
||||
vaultMode: "isolated",
|
||||
|
||||
vault: {
|
||||
path: "~/.openclaw/wiki/main",
|
||||
renderMode: "obsidian", // or "native"
|
||||
},
|
||||
|
||||
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", // or "local"
|
||||
corpus: "wiki", // or "memory" | "all"
|
||||
},
|
||||
|
||||
context: {
|
||||
includeCompiledDigestPrompt: false, // opt in to append a compact compiled digest snapshot to memory prompt sections
|
||||
},
|
||||
|
||||
render: {
|
||||
preserveHumanBlocks: true,
|
||||
createBacklinks: true, // writes managed ## Related blocks with sources, backlinks, and related pages
|
||||
createDashboards: true,
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
## Vault shape
|
||||
|
||||
The plugin initializes a vault like this:
|
||||
|
||||
```text
|
||||
<vault>/
|
||||
AGENTS.md
|
||||
WIKI.md
|
||||
index.md
|
||||
inbox.md
|
||||
entities/
|
||||
concepts/
|
||||
syntheses/
|
||||
sources/
|
||||
reports/
|
||||
_attachments/
|
||||
_views/
|
||||
.openclaw-wiki/
|
||||
```
|
||||
|
||||
Generated content stays inside managed blocks. Human note blocks are preserved.
|
||||
|
||||
Key beliefs can live in structured `claims` frontmatter with per-claim evidence, confidence, and status. Compile also emits machine-readable digests under `.openclaw-wiki/cache/` so agent/runtime consumers do not have to scrape markdown pages.
|
||||
|
||||
When `render.createBacklinks` is enabled, compile adds deterministic `## Related` blocks to pages. Those blocks list source pages, pages that reference the current page, and nearby pages that share the same source ids.
|
||||
|
||||
When `render.createDashboards` is enabled, compile also maintains report dashboards under `reports/` for open questions, contradictions, low-confidence pages, and stale pages.
|
||||
|
||||
## CLI
|
||||
|
||||
```bash
|
||||
openclaw wiki status
|
||||
openclaw wiki doctor
|
||||
openclaw wiki init
|
||||
openclaw wiki ingest ./notes/alpha.md
|
||||
openclaw wiki compile
|
||||
openclaw wiki lint
|
||||
openclaw wiki search "alpha"
|
||||
openclaw wiki get entity.alpha --from 1 --lines 80
|
||||
|
||||
openclaw wiki apply synthesis "Alpha Summary" \
|
||||
--body "Short synthesis body" \
|
||||
--source-id source.alpha
|
||||
|
||||
openclaw wiki apply metadata entity.alpha \
|
||||
--source-id source.alpha \
|
||||
--status review \
|
||||
--question "Still active?"
|
||||
|
||||
openclaw wiki bridge import
|
||||
openclaw wiki unsafe-local import
|
||||
|
||||
openclaw wiki obsidian status
|
||||
openclaw wiki obsidian search "alpha"
|
||||
openclaw wiki obsidian open syntheses/alpha-summary.md
|
||||
openclaw wiki obsidian command workspace:quick-switcher
|
||||
openclaw wiki obsidian daily
|
||||
```
|
||||
|
||||
## Agent tools
|
||||
|
||||
- `wiki_status`
|
||||
- `wiki_lint`
|
||||
- `wiki_apply`
|
||||
- `wiki_search`
|
||||
- `wiki_get`
|
||||
|
||||
The plugin also registers a non-exclusive memory corpus supplement, so shared `memory_search` / `memory_get` flows can reach the wiki when the active memory plugin supports corpus selection.
|
||||
|
||||
`wiki_apply` accepts structured `claims` payloads for synthesis and metadata updates, so the wiki can store claim-level evidence instead of only page-level prose.
|
||||
|
||||
When `context.includeCompiledDigestPrompt` is enabled, the memory prompt supplement also appends a compact snapshot from `.openclaw-wiki/cache/agent-digest.json`. Legacy prompt assembly sees that automatically, and non-legacy context engines can pick it up when they explicitly consume memory prompt supplements via `buildActiveMemoryPromptSection(...)`.
|
||||
|
||||
## Gateway RPC
|
||||
|
||||
Read methods:
|
||||
|
||||
- `wiki.status`
|
||||
- `wiki.doctor`
|
||||
- `wiki.search`
|
||||
- `wiki.get`
|
||||
- `wiki.obsidian.status`
|
||||
- `wiki.obsidian.search`
|
||||
|
||||
Write methods:
|
||||
|
||||
- `wiki.init`
|
||||
- `wiki.compile`
|
||||
- `wiki.ingest`
|
||||
- `wiki.lint`
|
||||
- `wiki.bridge.import`
|
||||
- `wiki.unsafeLocal.import`
|
||||
- `wiki.apply`
|
||||
- `wiki.obsidian.open`
|
||||
- `wiki.obsidian.command`
|
||||
- `wiki.obsidian.daily`
|
||||
|
||||
## Notes
|
||||
|
||||
- `unsafe-local` is intentionally experimental and non-portable.
|
||||
- Bridge mode reads the active memory plugin through public seams only.
|
||||
- Wiki pages are compiled artifacts, not the ultimate source of truth. Keep provenance attached to raw sources, memory artifacts, and daily notes.
|
||||
- The compiled agent digests in `.openclaw-wiki/cache/agent-digest.json` and `.openclaw-wiki/cache/claims.jsonl` are the stable machine-facing view of the wiki.
|
||||
- Obsidian CLI support requires the official `obsidian` CLI to be installed and available on `PATH`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue