Skip to content

memory-wiki 是 OpenClaw 自带的编译知识库插件,与主动记忆插件(如 QMD)协同工作,将持久化记忆编译为带有结构化主张和溯源信息的 wiki 页面。支持 isolated(独立仓库)、bridge(桥接读取 active memory 公开构件)和 unsafe-local(本地文件)三种模式。通过 wiki_searchwiki_getwiki_lint 等工具让智能体检索结构化知识,并自动生成仪表板报告(如矛盾、低置信度、过时页面)。配置位于 plugins.entries.memory-wiki.config,运行 openclaw wiki doctor 可检查健康状态。

OpenClaw memory-wiki 编译知识库插件配置与用法

memory-wiki 是 OpenClaw 的打包插件,将持久化记忆编译成一个可导航的知识仓库。

不取代主动记忆插件。主动记忆插件(例如 memory-core、QMD、Honcho)仍负责召回、提升、索引和梦境。memory-wiki 位于其旁侧,将可靠的知识编译成确定性的 wiki 页面,包含结构化主张、溯源、仪表板和机器可读摘要。

当你希望记忆更像一个维护良好的知识层而不是一堆 Markdown 文件时,使用本插件。

它增加了什么

  • 专用的 wiki 仓库,页面布局确定
  • 结构化主张和证据元数据,不仅限于散文
  • 页面级别的溯源、置信度、矛盾和未解决问题
  • 编译后的摘要供智能体/运行时消费
  • wiki 原生搜索/获取/应用/检查工具
  • 可选的桥接模式,从主动记忆插件导入公开构件
  • 可选的 Obsidian 友好渲染模式和 CLI 集成

与记忆插件的分工

负责
主动记忆插件(memory-core、QMD、Honcho 等)召回、语义搜索、提升、梦境、记忆运行时
memory-wiki编译的 wiki 页面、包含溯源的合成摘要、仪表板、wiki 专属搜索/获取/应用

如果主动记忆插件公开了共享召回构件,OpenClaw 可以使用 memory_search corpus=all 在一次调用中搜索两层。

当需要 wiki 特定的排序、溯源或直接页面访问时,请使用 wiki 原生工具。

推荐的混合模式

本地优先设置的强默认组合是:

  • QMD 作为主动记忆后端,用于召回和广泛语义搜索
  • memory-wikibridge 模式运行,用于持久化的合成知识页面

这个分工让每层保持专注:

  • QMD 保存原始笔记、会话导出和额外集合,供搜索使用
  • memory-wiki 编译稳定的实体、主张、仪表板和源页面

实用规则:

  • 需要一次广泛的召回时用 memory_search
  • 需要溯源感知的 wiki 结果时用 wiki_searchwiki_get
  • 需要跨越两层共享搜索时用 memory_search corpus=all

如果桥接模式报告零个导出构件,说明主动记忆插件当前尚未公开桥接输入。先运行 openclaw wiki doctor,然后确认主动记忆插件支持公开构件。

当桥接模式启用且 bridge.readMemoryArtifacts 开启时,openclaw wiki statusopenclaw wiki doctoropenclaw wiki bridge import 会通过运行中的 Gateway 读取。这使得 CLI 桥接检查与运行时记忆插件上下文保持一致。如果桥接禁用或构件读取关闭,这些命令保持本地/离线行为。

仓库模式

memory-wiki 支持三种仓库模式:

isolated

独立仓库,自有来源,不依赖 memory-core

当你希望 wiki 成为独立策划的知识存储时使用。

bridge

通过公开的插件 SDK 接口从主动记忆插件读取公开的记忆构件和事件。

当你希望 wiki 编译和整理记忆插件导出的构件,而不深入私有插件内部时使用。

桥接模式可以索引:

  • 导出的记忆构件
  • 梦境报告
  • 每日笔记
  • 记忆根文件
  • 记忆事件日志

unsafe-local

本地私有路径的显式同机逃生口。

本模式故意设计为实验性和不可移植的。仅在你理解信任边界且确实需要桥接模式无法提供的本地文件系统访问时使用。

仓库布局

插件初始化后的仓库结构如下:

text
<vault>/
  AGENTS.md
  WIKI.md
  index.md
  inbox.md
  entities/
  concepts/
  syntheses/
  sources/
  reports/
  _attachments/
  _views/
  .openclaw-wiki/

托管内容保持在生成的块内,人工笔记块被保留。

主要页面分组:

  • sources/:导入的原始材料和桥接支持的页面
  • entities/:持久化的事物、人员、系统、项目和对象
  • concepts/:想法、抽象概念、模式和政策
  • syntheses/:编译的摘要和维护的汇总
  • reports/:生成的仪表板

结构化主张与证据

页面可以携带结构化的 claims frontmatter,而不仅仅是自由文本。

每个主张可以包含:

  • id
  • text
  • status
  • confidence
  • evidence[]
  • updatedAt

证据条目可以包含:

  • kind
  • sourceId
  • path
  • lines
  • weight
  • confidence
  • privacyTier
  • note
  • updatedAt

这使得 wiki 更像一个信念层而不是被动的笔记堆。主张可以被追踪、评分、质疑并回溯到来源。

智能体使用的实体元数据

实体页面还可以携带供智能体使用的路由元数据。这是通用的 frontmatter,因此适用于人员、团队、系统、项目或任何其他实体类型。

常见字段:

  • entityType:例如 personteamsystemproject
  • canonicalId:跨别名和导入的稳定身份键
  • aliases:应解析到同一页面的名称、句柄或标签
  • privacyTierpubliclocal-privatesensitiveconfirm-before-use
  • bestUsedFor / notEnoughFor:紧凑的路由提示
  • lastRefreshedAt:来源刷新时间戳,独立于页面编辑时间
  • personCard:可选的人员专属路由卡片,包含句柄、社交账号、邮箱、时区、领域、建议询问、避免询问、置信度和隐私级别
  • relationships:到相关页面的类型化边,包含目标、种类、权重、置信度、证据种类、隐私Tier和备注

对于人员wiki,智能体通常应先打开 reports/person-agent-directory.md,然后使用 wiki_get 打开人员页面,再使用联系信息或推断的事实。

示例:

yaml
pageType: entity
entityType: person
id: entity.brad-groux
canonicalId: maintainer.brad-groux
aliases:
  - Brad
  - bgroux
privacyTier: local-private
bestUsedFor:
  - Microsoft Teams and Azure routing
notEnoughFor:
  - legal approval
lastRefreshedAt: "2026-04-29T00:00:00.000Z"
personCard:
  handles:
    - "@bgroux"
  socials:
    - "https://x.example/bgroux"
  emails:
    - brad@example.com
  timezone: America/Chicago
  lane: Microsoft ecosystem
  askFor:
    - Teams rollout questions
  avoidAskingFor:
    - unrelated billing decisions
  confidence: 0.8
  privacyTier: confirm-before-use
relationships:
  - targetId: entity.alice
    targetTitle: Alice
    kind: collaborates-with
    confidence: 0.7
    evidenceKind: discrawl-stat
claims:
  - id: claim.brad.teams
    text: Brad is useful for Microsoft Teams routing.
    status: supported
    confidence: 0.9
    evidence:
      - kind: maintainer-whois
        sourceId: source.maintainers
        privacyTier: local-private

编译管道

编译步骤读取 wiki 页面,规范化摘要,并在以下位置生成稳定的机器可读构件:

  • .openclaw-wiki/cache/agent-digest.json
  • .openclaw-wiki/cache/claims.jsonl

这些摘要用于让智能体和运行时代码无需解析 Markdown 页面。

编译输出还用于:

  • 搜索/获取流程的首次 wiki 索引
  • 主张 ID 回溯到所属页面
  • 紧凑的提示补充
  • 报告/仪表板生成

仪表板与健康报告

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

这些报告跟踪的内容包括:

  • 矛盾注释簇
  • 竞争主张簇
  • 缺少结构化证据的主张
  • 低置信度页面和主张
  • 过时或未知新鲜度的页面
  • 有待解决问题的页面
  • 人员/实体路由卡片
  • 结构化关系边
  • 证据类覆盖
  • 需要审查后才能使用的非公开隐私级别

搜索与检索

memory-wiki 支持两种搜索后端:

  • shared:使用共享记忆搜索流程(如果可用)
  • local:本地搜索 wiki

还支持三种语料库:

  • wiki
  • memory
  • all

重要行为:

  • wiki_searchwiki_get 尽可能使用编译摘要作为首次筛选
  • 主张 ID 可以回溯到所属页面
  • 争议/过时/新鲜的主张影响排序
  • 溯源标签可以保留在结果中
  • 搜索模式可以偏向人员查找、问题路由、来源证据或原始主张

实用规则:

  • 需要一次广泛的召回时用 memory_search corpus=all
  • 当关心 wiki 特有的排序、溯源或页面级信念结构时用 wiki_search + wiki_get

搜索模式:

  • auto:均衡默认
  • find-person:提升人员类实体、别名、句柄、社交账号和规范 ID
  • route-question:提升智能体卡片、ask-for 提示、best-used-for 提示和关系上下文
  • source-evidence:提升源页面和结构化证据元数据
  • raw-claim:提升匹配的结构化主张,并在结果中返回主张/证据元数据

当结果匹配结构化主张时,wiki_search 可以在 detail 负载中返回 matchedClaimIdmatchedClaimStatusmatchedClaimConfidenceevidenceKindsevidenceSourceIds。文本输出还包括紧凑的 Claim:Evidence: 行(如果可用)。

智能体工具

插件注册了以下工具:

  • wiki_status
  • wiki_search
  • wiki_get
  • wiki_apply
  • wiki_lint

作用:

  • wiki_status:当前仓库模式、健康状态、Obsidian CLI 可用性
  • wiki_search:搜索 wiki 页面,如果配置了共享记忆语料库也可搜索;接受 mode 参数进行人员查找、问题路由、来源证据或原始主张深入
  • wiki_get:通过 id/path 读取 wiki 页面,或回退到共享记忆语料库
  • wiki_apply:进行窄范围的合成/元数据变更,无需自由形式的页面手术
  • wiki_lint:结构检查、溯源缺口、矛盾、未解决问题

插件还注册了一个非独占的记忆语料库补充,因此当主动记忆插件支持语料库选择时,共享的 memory_searchmemory_get 可以访问 wiki。

提示与上下文行为

context.includeCompiledDigestPrompt 启用时,记忆提示部分会附加一个紧凑的编译快照(来自 agent-digest.json)。

该快照故意设计得小巧且高信号:

  • 仅顶部页面
  • 仅顶部主张
  • 矛盾计数
  • 问题计数
  • 置信度/新鲜度修饰符

这是可选加入的,因为它会改变提示形状,并且主要对显式消费记忆补充的上下文引擎或遗留提示组装有用。

配置

配置放在 plugins.entries.memory-wiki.config

json5
{
  plugins: {
    entries: {
      "memory-wiki": {
        enabled: true,
        config: {
          vaultMode: "isolated",
          vault: {
            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,
          },
          ingest: {
            autoCompile: true,
            maxConcurrentJobs: 1,
            allowUrlIngest: true,
          },
          search: {
            backend: "shared",
            corpus: "wiki",
          },
          context: {
            includeCompiledDigestPrompt: false,
          },
          render: {
            preserveHumanBlocks: true,
            createBacklinks: true,
            createDashboards: true,
          },
        },
      },
    },
  },
}

关键开关:

  • vaultModeisolatedbridgeunsafe-local
  • vault.renderModenativeobsidian
  • bridge.readMemoryArtifacts:导入主动记忆插件公开构件
  • bridge.followMemoryEvents:在桥接模式中包含事件日志
  • search.backendsharedlocal
  • search.corpuswikimemoryall
  • context.includeCompiledDigestPrompt:附加紧凑摘要快照到记忆提示部分
  • render.createBacklinks:生成确定性相关块
  • render.createDashboards:生成仪表板页面

示例:QMD + bridge 模式

当你希望 QMD 处理召回、memory-wiki 用于维护的知识层时使用:

json5
{
  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

memory-wiki 也暴露了顶层 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
openclaw wiki apply synthesis "Alpha Summary" --body "..." --source-id source.alpha
openclaw wiki bridge import
openclaw wiki obsidian status

完整的命令参考见 CLI: wiki

Obsidian 支持

vault.renderModeobsidian 时,插件会写入 Obsidian 友好的 Markdown,并可选择性使用官方 obsidian CLI。

支持的工作流包括:

  • 状态探测
  • 仓库搜索
  • 打开页面
  • 调用 Obsidian 命令
  • 跳转到每日笔记

这是可选的。wiki 在本地模式下无需 Obsidian 也能正常工作。

推荐工作流

  1. 保留主动记忆插件用于召回/提升/梦境。
  2. 启用 memory-wiki
  3. isolated 模式开始,除非你明确需要桥接模式。
  4. 需要溯源时使用 wiki_search / wiki_get
  5. 使用 wiki_apply 进行窄范围合成或元数据更新。
  6. 在有意义的变更后运行 wiki_lint
  7. 如果你希望看到过时/矛盾可见性,请开启仪表板。

相关文档

常见问题

memory-wiki 和 active memory 插件有什么区别?

active memory 插件(如 QMD、memory-core)负责记忆的召回、语义搜索、提升和梦境;memory-wiki 则将这些记忆编译成结构化的 wiki 页面,提供溯源、主张元数据和仪表板。两者可以协同工作,分别处理不同层。

如何开启 bridge 模式读取 active memory 构件?

在配置中将 vaultMode 设为 "bridge",并设置 bridge.enabled: true。确保主动记忆插件支持公开构件,然后运行 openclaw wiki doctor 确认。如果构件数为零,表示主动记忆插件当前未导出公开输入。

wiki_search 命令怎么用?

wiki_search 是智能体工具,也可通过 CLI 使用(openclaw wiki search "关键词")。它支持模式参数(mode)来调整排序偏向,例如 find-person 提升人员查找结果。结果会包含结构化主张和溯源信息。