
OpenClaw memory-wiki 知识库维护指南wiki-maintainer 技能实战与源码解析【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw导读本文围绕 OpenClaw 的 wiki-maintainer 技能 展开系统讲解如何在 memory-wiki 插件维护的记忆 Wiki 知识库vault中以确定性页面 受管区块 来源可追溯更新的方式完成知识管理。你将掌握wiki_status、wiki_search、wiki_get、wiki_apply、wiki_lint五个 Agent 工具的选用策略理解openclaw wiki ingest / compile / lint默认维护循环的底层机制以及bridge、unsafe-local两种模式下的导入流程与受管标记managed markers的约定最终能在自己的 OpenClaw 实例中构建出可供 Agent 稳定读写、又不会覆盖人类笔记的自洽知识库。说明wiki-maintainer 技能文件位于 extensions/memory-wiki/skills/wiki-maintainer/SKILL.md本文所有源码引用均以 extensions/memory-wiki 目录内的真实实现为准。一、技能定位在什么场景下使用 wiki-maintainer技能元信息frontmatter给出清晰定义Maintain the OpenClaw memory wiki vault with deterministic pages, managed blocks, and source-backed updates.以确定性页面、受管区块和来源可追溯更新来维护 OpenClaw 记忆 Wiki 知识库。它面向的工作前提是你已经身处一个 memory-wiki vault 之中Use this skill when working inside a memory-wiki vault。与仓库内另一个技能 obsidian-vault-maintainer/SKILL.md 不同wiki-maintainer 关注的是知识库本身的治理纪律何时用哪个工具、何时跑哪条 CLI、哪些内容归插件管理、哪些内容属于人类笔记、如何避免重复实体和证据污染而不是单纯面向 Obsidian 客户端的操作。从插件架构看memory-wiki 与 active memorymemory-core是相互独立的两个插件active memory 继续负责 recall、promotion 与 dreaming而 memory-wiki 将持久知识编译为可导航的 Markdown 知识库附带确定性索引、来源追溯、结构化的 claim/evidence 元数据与可选的 Obsidian CLI 工作流见 extensions/memory-wiki/README.md。二、工具选用优先级先 status再 search后 getSKILL.md 首先给出了一套明确的工具选择纪律其核心是先了解环境再决定检索路径场景首选工具理由刚进入 vault需要了解模式、路径、Obsidian CLI 可用性wiki_status一次性输出 vault mode、scope、renderMode 与 obsidian CLI 探测结果共享记忆工具可用希望一次性跨持久记忆 编译后 Wiki召回memory_searchcorpusall单次召回覆盖 durable memory 与编译后的 wiki需要 Wiki 专属排序/来源追溯或想先定位候选页面wiki_search按标题、路径、id 或正文搜索支持 backend/corpus/mode 参数已经定位到候选页准备编辑或引用前wiki_get按 id 或相对路径精确读取页面内容可指定行范围窄幅归档写 synthesis或元数据更新wiki_apply工具级结构化变更避免自由式 Markdown 手术有意义的更新完成后wiki_lint暴露矛盾、来源缺口与未决问题2.1 wiki_status先摸清 vault 状态SKILL.md 明确要求先wiki_status。其实现位于 src/tool.ts工具描述为检查当前记忆 Wiki 的 vault 模式、健康度与 Obsidian CLI 可用性。其执行前还会触发一次syncImportedSourcesIfNeeded见 src/tool.ts确保导入的来源在状态查询前已完成同步。2.2 memory_searchcorpusall一次召回两个记忆层当 shared 搜索可用时优先使用memory_search且corpusall把 durable memory 与编译后的 wiki 放在一次检索中完成。README 指出当 active memory 插件暴露共享召回能力时Agent 可以先用corpusall单次检索再在需要 Wiki 专属排序或来源追溯时回退到wiki_search/wiki_getextensions/memory-wiki/README.md。2.3 wiki_search → wiki_get先发现、后精读wiki_searchsrc/tool.ts接受query、maxResults、backend、corpus、mode参数wiki_getsrc/tool.ts要求非空lookup页 id 或相对路径并支持fromLine/lineCount精确读取局部内容。SKILL.md 特别强调编辑或引用之前务必先用wiki_get查看精确页面对生成的人物事实people facts要先核实联系方式并要求source-class provenance级别的来源分类追溯——这与下文证据分层的纪律一脉相承。2.4 wiki_apply窄幅变更不要做自由式 Markdown 手术wiki_applysrc/tool.ts的定位是对 synthesis 与页面元数据施加窄幅 Wiki 变更而无需自由式 Markdown 手术。其输入 schemasrc/tool.ts支持四种opcreate_synthesis、update_metadata、synthesis、metadata并接受title、body、lookup、sourceIds、claims、contradictions、questions、confidence、status等字段。值得展开的是claims 载荷WikiClaimSchemasrc/tool.ts允许为每条 claim 附带evidence数组每项证据WikiClaimEvidenceSchemasrc/tool.ts可包含kind、sourceId、path、lines、weight、confidence、privacyTier、updatedAt等字段。这意味着知识库可以存储声明级证据而不仅是页面级散文正是 SKILL.md 中generated people facts need source-class provenance这一要求的实现底座。2.5 wiki_lint信任 vault 之前的最后一道检查wiki_lintsrc/tool.ts返回按类别归类的issuesByCategorycontradictions、open-questions、provenance并统计 error/warning 数量、写出报告文件路径。SKILL.md 要求有意义的更新后运行wiki_lint以便在信任 vault 之前暴露矛盾、来源缺口与未决问题。三、默认维护循环ingest → compile → lintSKILL.md 给出的默认维护循环是三条 CLIopenclaw wiki ingest openclaw wiki compile openclaw wiki lint这三条命令只是 README 所列 CLI 家族中的核心成员。完整命令族包括openclaw wiki status # 查看 vault 状态 openclaw wiki doctor # 审计 vault 设置并给出可操作修复建议 openclaw wiki init # 初始化 vault 目录结构 openclaw wiki ingest ./notes/alpha.md # 将本地文件纳入 sources/ openclaw wiki compile # 刷新生成的 wiki 索引 openclaw wiki lint # 检查 vault 并写出报告 openclaw wiki search alpha # 搜索 openclaw wiki get entity.alpha --from 1 --lines 80 # 按 id 读取指定行范围 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 # 不安全本地模式显式导入私有路径 # Obsidian CLI 辅助 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 作用域 vault openclaw wiki status --agent support openclaw wiki search refund policy --agent support从 src/cli.ts 的实现看这些命令对应明确的 descriptionstatus显示 vault 状态、doctor审计并报告修复项、init初始化布局、compile刷新生成索引、lint检查并写报告、ingest把本地文件纳入 sources、bridge/unsafe-local导入来源、obsidian系列代理官方 Obsidian CLI。3.1 ingest来源进入证据层openclaw wiki ingest把本地文件摄入sources/目录作为知识库的证据层入口。配置项ingest.autoCompile默认true控制摄入后是否自动编译ingest.maxConcurrentJobs默认 1限制并发摄入任务数ingest.allowUrlIngest默认true控制是否允许 URL 摄入见 src/config.ts 的默认值解析。3.2 compile生成确定性索引与机器可读快照openclaw wiki compile是维护循环的中枢。它刷新生成的索引index、在启用render.createBacklinks时写出确定性的## Related区块并在render.createDashboards开启时维护reports/下的问题看板开放问题、矛盾、低置信度页面、过期页面。此外compile 还会把机器可读快照持久化到 OpenClaw 插件状态SQLite中使 Agent/运行时消费方不必解析 Markdown 页面extensions/memory-wiki/README.md。一个重要约束是恢复/编辑 vault 文件后必须先重新 compile否则生命周期刷新会拒绝比已恢复 vault 更新的 SQLite 快照extensions/memory-wiki/README.md。3.3 lint三类问题的结构化暴露openclaw wiki lint的检查类别在工具描述中明确为结构性问题、来源缺口provenance gaps、矛盾contradictions与未决问题open questions。这与 SKILL.md让矛盾、来源缺口和未决问题浮出水面的目标完全对应。四、两种导入模式的纪律bridge 与 unsafe-localSKILL.md 对两种非默认模式给出了严格的触发条件bridge 模式在依赖搜索结果之前若需要拉取最新的公共记忆产物先运行openclaw wiki bridge import。unsafe-local 模式只有当用户明确选择访问私有本地路径时才使用openclaw wiki unsafe-local import。4.1 三种 vault 模式对比模式数据来源依赖适用前提isolated默认自己的 vault 与来源不依赖 memory-core开箱即用bridge通过公共接缝读取公共记忆产物与记忆事件active memory 插件需要纳入 durable memory 内容unsafe-local显式配置的私有本地路径同机逃逸通道用户显式同意实验性、不可移植对应配置见 src/config.ts 的 schema 与默认值解析src/config.tsbridge.enabled默认false其子开关readMemoryArtifacts、indexDreamReports、indexDailyNotes、indexMemoryRoot、followMemoryEvents均默认trueunsafeLocal.allowPrivateMemoryCoreAccess默认falsepaths默认空数组。4.2 配置示例bridge 模式 Agent 作用域// 位于 plugins.entries.memory-wiki.config { vaultMode: bridge, vault: { scope: agent, path: ~/.openclaw/wiki, }, bridge: { enabled: true, readMemoryArtifacts: true, }, obsidian: { useOfficialCli: false, }, }在 agent 作用域下vault.path是父目录OpenClaw 会追加规范化后的 agent id如support解析为~/.openclaw/wiki/support默认mainagent 使用state-dir/wiki/mainstate 目录默认~/.openclaw可由OPENCLAW_STATE_DIR覆盖extensions/memory-wiki/README.md。bridge 模式下agent vault 只导入agentIds包含该 agent 的公共记忆产物extensions/memory-wiki/README.md。配置校验superRefinesrc/config.ts会拒绝两种非法组合vault.scopeagent与vaultModeunsafe-local组合vault.scopeagent与obsidian.useOfficialClitrue组合。另外README 明确提示作用域切换不会复制或拆分已有页面需要自行备份并按需迁移agent 路径只是同进程内的知识边界并非操作系统级安全边界extensions/memory-wiki/README.md。4.3 完整配置参考isolated 默认形态{ vaultMode: isolated, vault: { scope: global, // 或 agent path: ~/.openclaw/wiki/main, renderMode: obsidian, // 或 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, // 或 local corpus: wiki, // 或 memory | all }, context: { includeCompiledDigestPrompt: false, // 开启后向记忆提示段落追加紧凑的编译摘要快照 }, render: { preserveHumanBlocks: true, createBacklinks: true, // 写出带 sources/backlinks/related pages 的受管 ## Related 区块 createDashboards: true, }, }配置默认值解析集中在 src/config.ts默认vaultModeisolated、vault.scopeglobal、renderModenative、search.backendshared、search.corpuswiki。注意默认renderMode为native而上面示例显式设为obsidian——这与 SKILL.md 最后一条当 vault render mode 为 obsidian 时保留 Obsidian 友好的 wikilink的条件相呼应。五、受管区块managed blocks与人类笔记的共存约定SKILL.md 中有一条贯穿全局的硬性规则Keep generated sections inside managed markers. Do not overwrite human note blocks.生成的区块必须待在受管标记内不得覆盖人类笔记区块。5.1 标记体系从源码中可以看到真实的受管标记常量索引区块!-- openclaw:wiki:index:start --/!-- openclaw:wiki:index:end --src/vault.ts相关链接区块!-- openclaw:wiki:related:start --/!-- openclaw:wiki:related:end --src/markdown-links.ts原始来源声明!-- openclaw:wiki:raw-source --src/markdown.ts人类笔记区块!-- openclaw:human:start --/!-- openclaw:human:end --见 vault 初始化生成的 WIKI.md 模板src/vault.ts索引页的生成正是通过replaceManagedMarkdownBlock在起始/结束标记之间替换内容src/vault.ts查询层也按标记正则剥离## Related区块src/query.ts。5.2 渲染层面的保护开关render.preserveHumanBlocks默认true控制生成时是否保留人类笔记区块。初始化生成的AGENTS.md模板src/vault.ts用四句话固化契约生成的区块归插件所有Treat generated blocks as plugin-owned人类笔记保存在受管标记之外Preserve human notes outside managed markers优先来源可溯的 claim避免 wiki 到 wiki 的引用循环Prefer source-backed claims over wiki-to-wiki citation loops优先把关键信念写成带证据的结构化claims而不是只埋在散文里Prefer structuredclaimswith evidence over burying key beliefs only in prose。5.3 原始来源的豁免通道未受管的原始 Markdown 可以放在sources/下且不带 OpenClaw 页面 frontmatter只需在页面正文顶部附近加入!-- openclaw:wiki:raw-source --即可退出 wiki 页面元数据与新鲜度 lintextensions/memory-wiki/README.md。这与 SKILL.md原始来源是证据、wiki 页面不能成为新主张的唯一事实来源的原则互为补充。六、证据分层原始来源 记忆产物 编译页面SKILL.md 的另外两条纪律共同构成知识库的证据金字塔Treat raw sources, memory artifacts, and daily notes as evidence. Do not let wiki pages become the only source of truth for new claims.把原始来源、记忆产物、每日笔记视为证据不要让 wiki 页面成为新主张的唯一事实来源。When creating or refreshing indexes, preserve Obsidian-friendly wikilinks if the vault render mode isobsidian.创建或刷新索引时若 render mode 为obsidian保留 Obsidian 友好的 wikilink。这一分层在 README 中同样被反复强调wiki 页面是编译产物不是终极事实来源extensions/memory-wiki/README.md。WIKI.md 模板的 Architecture 段落也写明原始来源是证据层wiki 页面是面向人类的综合层编译后的查询与提示快照存放在 OpenClaw 插件状态而非 vault 文件中src/vault.ts。因此维护者应遵循的写作姿势是新主张必须回指原始来源、记忆产物或每日笔记中的证据wiki 页面只做综合与索引。这正解释了 SKILL.md 为何要求对生成的人物事实做 source-class provenance 核实——WikiClaimEvidence中的kind字段正是承载证据来源类别的位置。七、页面身份稳定性更新优于新建SKILL.md 明确要求Keep page identity stable. Favor updating existing entities and concepts over spawning duplicates with slightly different names.保持页面身份稳定优先更新既有实体与概念避免用略有差异的名字制造重复页面。这一条看似是编辑习惯实则与整套确定性设计绑定确定性索引deterministic indexes依赖稳定的页面 idwiki_get的lookup按 id 或相对路径定位## Related区块按 source ids 关联邻近页面。若不断用近似名称新建页面索引、反向链接和 dashboard 都会产生碎片化噪音最终削弱 Agent 检索的确定性。配合wiki_lint的 provenance/矛盾检查可以在重复实体失控前及时暴露问题。八、Gateway RPC 与 Agent 作用域视角补充对于多 Agent 部署memory-wiki 通过 Gateway RPC 暴露同样一组能力读方法wiki.status、wiki.doctor、wiki.search、wiki.get、wiki.obsidian.status、wiki.obsidian.search写方法wiki.init、wiki.compile、wiki.ingest、wiki.lint、wiki.bridge.import、wiki.unsafeLocal.import、wiki.apply、wiki.obsidian.open、wiki.obsidian.command、wiki.obsidian.dailyextensions/memory-wiki/README.md。agent 作用域下vault 相关的 RPC 需携带agentId多 Agent 配置中缺失或未知 id 会失败——这与 SKILL.md先wiki_status理解 vault 模式/路径的建议在 CLI 侧--agent参数保持一致。九、维护者快速自查清单将 SKILL.md 的全部要点收敛为一张可执行清单适合在任何一次 vault 维护会话中自检进入 vault 后先运行wiki_status确认 mode / path / Obsidian CLI 可用性共享记忆可用时优先memory_searchcorpusall一次召回需要 Wiki 排序/来源追溯再切wiki_search→wiki_get编辑或引用前用wiki_get查看精确页面人物联系方式先核实生成事实标注 source-class provenance窄幅变更走wiki_applysynthesis / metadata带结构化claims与证据不做自由式 Markdown 手术有意义的更新后运行wiki_lint处理 contradictions / provenance gaps / open questions默认维护循环openclaw wiki ingest→openclaw wiki compile→openclaw wiki lintbridge 模式依赖搜索结果前先openclaw wiki bridge importunsafe-local 仅在用户显式同意私有本地路径访问时使用生成内容只写进受管标记!-- openclaw:wiki:index:* --、!-- openclaw:wiki:related:* --绝不覆盖!-- openclaw:human:* --区块新主张必须回指原始来源/记忆产物/每日笔记wiki 页面不是唯一事实来源优先更新既有实体/概念不制造近似名称的重复页面render mode 为obsidian时索引创建/刷新保留 Obsidian 友好的 wikilink。结语wiki-maintainer 技能的价值不在于提供新命令而在于把 memory-wiki 插件的能力组织成一套可执行的治理纪律先wiki_status探明环境、按需组合memory_search/wiki_search/wiki_get完成检索、用wiki_apply做窄幅变更、以ingest → compile → lint作为默认维护循环同时用受管标记和证据分层守住插件生成与人类笔记、以及编译页面与原始来源之间的边界。理解这些约定背后的源码src/tool.ts、src/cli.ts、src/config.ts、src/vault.ts、src/markdown.ts你就能把 OpenClaw 的记忆 Wiki 从会写文件的插件升级为可被 Agent 稳定信任的知识基础设施。【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考