Skip to main content

Wiki 知识库

Myrm 提供编译型知识库(Wiki)——不是让 Agent 解读的一堆 markdown 技能。专用引擎负责编译、索引、检索、审核与维护。同一工作流适用于本地 WebUITauri 桌面SaaS 云端

概念防膨胀治理、输出预算与沙箱原生 Git 快照

在摄入长篇专著、复杂技术文档或上百篇资料时,传统大模型编译常导致概念爆炸(生成数百个琐碎零散的无意义子页面)或上下文溢出。Myrm 构筑了多层防御屏障:

按智能体隔离的 Wiki

每个智能体可有独立 Wiki 库。在 设置 → Wiki 使用 智能体范围 下拉(或从智能体横幅打开 /settings/wiki?agentId=<id>)。统计、编译、维护与导入均作用于所选智能体。 诚实边界(Agent Scope SSOT v2 落地前): 队列 Tab 与 ingest SSE 会随所选智能体立即切换;若在 待审词条 Tab 内切换下拉,在 scope 全链路重载完成前请刷新页面或切 Tab,避免误把 A 库草稿批准进 B 库——这是下一版 scope 硬化要闭合的 P0 风险。 工件 存入 Wiki 与聊天入库会使用当前会话的 agent id,避免误写入默认库。

记忆 + Wiki 统一检索

智能体配置中同时启用 Wiki 与 Memory 时,Myrm 挂载 knowledge_recall_toolcorpus=all)— 一次工具调用同时检索长期记忆与该智能体 Wiki。记忆命中会写入 citedMemoryIds 供 UI 展示;Wiki 命中在工具结果文本中返回。 默认智能体已开启 Memory;在 智能体配置 → 内置工具 中打开 Wiki 即可走统一检索路径。

会话级即时挂载与跨库联邦检索(KnowledgePickerPopover)

除了在智能体设置中静态配置专属知识库外,Myrm 支持在单次对话中按需临时外挂与联合检索多个私有知识库

知识库全生命周期治理工作台(WikiGovernanceWorkbench)

知识库随时间持续沉淀极易面临知识老化(Knowledge Decay)、过时规范误导智能体问答的隐患。Myrm 在 设置 → Wiki → 概览 顶部原生提供全生命周期治理工作台:

Memory 引用按钮(刷新不丢)

当助手召回语义/情节记忆时,已完成消息的操作栏会显示 Memory N 按钮。打开 Sheet 可查看影响回答的记忆(类型、分数、命名空间、跳回来源会话)。 引用会写入数据库刷新页面后仍在 — 不依赖仅 SSE 的临时状态。

打开 Wiki 设置

  1. 进入 设置 → Wiki 知识库 (Wiki)
  2. 使用标签页:
    • 概览 — 用途、统计、编译/维护操作、即席查询。
    • 词条管理 (Concepts) — 文件夹树、CRUD、拖放、分屏 Markdown 实时预览编辑
    • 待审编辑 — LLM 草稿的人工审批/驳回与实时预览修改
    • 队列 — 文档摄取流水线状态。

分屏 Markdown 实时预览编辑器与草稿守卫

词条管理(Compiled Truth / Advanced 标签)以及 待审编辑(Pending Edits 编辑态)中,Myrm 提供 Typora 级分屏 Markdown 写作体验

编译过程实时可见(需打开 Settings Wiki 页)

在浏览器或桌面端 设置 → Wiki 页面保持打开时:
实时推送仅在 Settings Wiki 页 EventSource 连接期间生效;关闭设置页即停止 SSE——这是 GUI 范围内的可见性设计,不是后台守护进程。Hermes SKILL / OpenClaw 纯 MD 文件夹等竞品无等价 Queue 面板 + compile 中树 badge live。

外部来源同步(Settings 概览)

设置 → 知识库 → 概览 → 外部来源 可将收藏邮件与 RSS 定时或手动拉入 wiki/raw/ 零 LLM pull: 拉取 Gmail/RSS 不调用对话模型。仅当配置了模型且开启 同步后自动编译 时才会消耗 LLM。 定时任务: 稍后读知识内化 蓝图每日运行(第二大脑预设常搭配 知识库晨间摘要知识库自动维护)。Router 任务 __wiki_source_sync____wiki_maintain__:{structural|full} 在服务端执行,不挂载 Agent 工具 — 安全、确定性自动化。 可观测性: 卡片展示上次同步时间、新增/跳过/失败计数,以及首条错误(如 Gmail label not found)。
诚实边界: Gmail 标签与 Drive 文件夹 ID 均需手动输入,无标签下拉或 Drive Picker。请在 Gmail 中创建同名标签(预设默认 ReadLater)。若已连接 Google 但缺少 Drive 只读 scope,卡片会显示重连提示google_drive_authorized: false)。不支持 OneDrive(无 Microsoft OAuth 基建)。配错会在同步结果中显示,不会静默忽略。
测试(2026-07-30): gdrive 3 + gmail/rss/status/oauth 12 + state/config/defaults/blueprint/hygiene/second_brain 15 + gmail_html 2 = 32 pytest 通过(mock Gmail/Drive API;本轮未跑 Chrome MCP)。 回归测试(2026-07-29 复测): Harness 6 raw_gate + 48 persistence/raw security + 21 apply/canonical + Server 9 wiki_apply/import raw_gate + 40 obsidian_adapter pytest(分批 ~18s)。本轮未跑浏览器 MCP E2E。

编译期演变合成(CCSP)

编译 Wiki 时,Step 2.5 会在常规文章生成之后运行 编译期矛盾合成(CCSP) 实时计数: ingest SSE 推送 synthesis_pending_count;保持 Settings → Wiki 打开时 Overview 可静默刷新。 相对 OpenClaw 的差异化: OpenClaw 写 reports/contradictions.md 并依赖 CLI 跟进。Myrm 把同等 intelligence 放在 Settings 待审队列 + GUI 筛选 + 双向 Timeline — 更贴合 Article 8「请你决定哪条定义优先」。 诚实边界: 仅 cross-concept(同 batch 同名 merge 跳过)。这是 Wiki 编译合成,与 Memory ConflictCard 通知是不同链路。 测试(2026-07-29): Harness 8 + 12 + Server 2 = 22 passed。本轮未跑浏览器 MCP E2E。

在树中管理词条

词条管理
  • 新建文件夹 — 选择可选父文件夹(根或嵌套),命名。
  • 重命名 / 删除 — 悬停行;删除显示完整路径及将移除的条目数。
  • 拖放 — 在父级间移动文件夹或词条(服务端更新链接引用)。
  • 详情面板 — 选中词条查看富渲染内容(Mermaid 图表、KaTeX 数学公式、GFM 表格、代码语法高亮、暗色模式),或切换到原始 Markdown 编辑。
  • 四 Tab 编辑(Edit) — 经 POST /wiki/apply 窄写(非整页 PUT):
    • Compiled Truth — 仅 patch ## Compiled Truth 区块。
    • Timeline — 只追加条目;重复行会 toast 跳过。
    • Metadata — Settings 路径下 replace tags/aliases(Agent merge 走不同 caller 门禁)。
    • Advanced — 整页 replace;仅 Settingscaller=settings)。Agent/聊天不可用此 op。
每次保存携带页 租约if_match = 上次 content_hash)。若其他 Tab/客户端已先改页,会 toast 页冲突 — 请刷新后重试。

词条重命名与别名重定向治理(Canonical Rename & Alias Redirect)

在传统笔记系统(Hermes、OpenClaw、Codex、Pi)中,重命名或移动文件会导致全库引用的双链失效断裂(File-based Memory Rot)。Myrm 内置企业级链接治理与重构引擎:
  • 永久 Canonical ID 固化与别名继承:重命名或移动概念笔记时,_inject_rename_metadata 自动固化不变的 canonical_id,并将旧 slug 自动沉淀为 Frontmatter 中的 aliasessupersedes 历史链。无论是使用旧 slug 还是别名搜索,系统都能精准解析至当前最新实体。
  • 全库双链与 Markdown 链接原子无损重写refactor 引擎自动精准扫描全库,无损更新双链 [[slug|别名]](保持原展示别名不变),并智能解析标准 Markdown 链接的 #anchor 锚点进行安全拆装重写,杜绝 404 死链。
  • 增量 DAG 依赖图与 FTS 索引刷新:概念移动后仅增量刷新相关概念与 wiki_edges 拓扑,无需耗时重建全库索引。
  • 真实浏览器 E2E 持久化验证:在页面多次刷新与深链跳转下,引用的凭证与 依据 按钮在前端 DOM 与全局 store 中 100% 稳定挂载。

受控写入面(POST /wiki/apply

所有 Wiki 变更统一走 POST /wiki/apply?caller=settings | agent | chat)。 写时去重: canonical_id 与 alias 索引在创建时拒绝近义重复页(HTTP 409 canonical_conflict)。存入 Wiki 时若同主题笔记已存在,会友好 toast 而非静默重复建页。 诚实边界: Agent wiki_apply_tool 仍为 CSV 形参、不自动 if_match;Settings GUI 与 Save to Wiki 路径已完整。

Raw 证据层闸门(导入与 ingest)

稳定路径写入 wiki/raw/ 经 harness publish_raw 闸门 — 与 concept 层 POST /wiki/apply(#12+#13)互补。 诚实边界: timestamp/uuid 路径(research、artifact、会话归档)故意不 gate;无专用 Raw 审计页,可读 wiki/log.md

归档安全治理(敏感内容)

所有 durable Wiki 写入共享 harness 持久化扫描 SSOT(core/security/persistence/content_scan.py): 诚实边界: 尚无安全统计面板;Settings/chat 导入 injection 仅 warn;agent wiki_ingest 拦截高置信 injection。Agent 被拦路径以工具错误呈现,无 Settings 弹窗。

Raw 语料去重治理(#7)

导入或批量 ingest 后,Myrm 用 SQLite 治理库(.raw_dedup.db)对 wiki/raw/三层指纹 扫描: 设置 → Wiki → Duplicate Review(重复审阅) 展示未决组:tier 徽章、并排 diff 片段、组级操作:
  • Trash / exclude / defer / dismiss — 消解重复且保留审计轨迹
  • Vault hygiene 恢复 — raw 证据移动后重新锚定编译页
编译硬闸门: 仍有未决 exactnormalized 组时,编译返回 409 — 须先处理重复再跑 LLM 编译。 自动化: 导入后自动扫描;可选 Cron blueprint wiki_dedup 做定期 hygiene。 测试: 67 项定向 pytest(Harness corpus_dedup 27 + Server dedup_runner/API 40)+ Chrome E2E(seed fixture → Duplicate Review Tab → exact 组面板)。 诚实边界: near 层不做大规模 LSH;dismiss 不可撤销;Turn1 无 Agent 侧去重工具。 对比竞品: Hermes llm-wiki / OpenClaw / deer-flow / LobsterAI / CoPaw / jiuwenclaw — 均无 raw 层三级去重 + GUI 审阅 + 编译闸门闭环;Obsidian 插件仅本地重复检测,不与 Agent vault 编译集成。
Wiki 文件在磁盘上仍为纯 Markdown。Obsidian 等编辑器可打开同一库;Myrm 在其上增加索引、检索与 GUI 管理。

知识消费闭环

Wiki 不是「写完就忘」的死水。Myrm 用 12 条代码级路径 把知识库和 Agent 连起来(无需像 OpenWiki 那样手工维护 AGENTS.md):
  • 六工具自动挂载 — 在智能体配置中启用 Wiki 后,ingest / compile / query / maintain / apply 随对话可用。
  • Evidence Card 精准行号凭证与冲突透出wiki_query 在检索上下文动态注入行号锚点([Evidence Card: source: path#Lxx-Lyy | status | confidence]),强制模型事实附带精准行级凭证、冲突双向并陈(disagree -> show both)且未记载内容诚实拒答,彻底根除模型行号幻觉与常识脑补。
  • 大文件上传引导 — 上传 PDF 等大文档时,系统自动注入「先 wiki_ingest 再 wiki_query」指令,避免整文件塞进 prompt。
  • Deep Research 入库 — 深度研究报告经共享 archiver 写入同一 Wiki 库并触发编译。
  • 聊天一键保存 — 任意助手消息可「存入 Wiki」,带来源 frontmatter。
  • 压缩后会话笔记归档 — 上下文压缩完成时,会话笔记自动归档到 Wiki(在摘要持久化之后触发,而非每次 note 保存)。
  • 设置页即席查询 — 概览标签直接问 Wiki、编译、维护,并展示库健康状态。

Memory → Wiki 自动桥接

在智能体配置中启用 Wiki 后,四条自动入库路径经统一 publish_raw 写入同一 vault(Roadmap #16 — 无独立 per-source 开关): 安全与门控: 全部路径经 #15 归档安全(凭证拒收/脱敏)与 #14 raw gate(稳定路径禁止 silent overwrite)。enable_wiki 为智能体级总开关 — Settings 无 per-source 开关。 召回方向: Wiki 内容通过 knowledge_recall_tool(corpus=wiki|all) 按需 pull 进对话(Wiki+Memory 双开时)— 非 OpenClaw 式每轮 push digest。 测试: 37 项定向 pytest(Harness 18 + Server 19,2026-07)。

换 embedding → 一键重建向量索引

设置 → 模型 更换 embedding 模型或分块策略后,旧向量可能失效。请在 设置 → Wiki → 概览 使用 重建向量索引 超长 embed fail-loud: 强制分块后仍超模型窗口时,编译会 暂停 并标记 embed-window 违规(非 silent drop)。重建 API 返回 errors[],Settings 面板列出失败项便于修复。 对比竞品: OpenClaw / Hermes / deer-flow / LobsterAI / CoPaw / jiuwenclaw 均无 Settings GUI 换 embedding 后全库 wiki 向量重建。 测试: 34 项定向 pytest(2026-08)。

Wiki 与 Memory 写入边界

智能体同时启用 Wiki 与 Memory 时,Myrm 防止长文污染紧凑记忆: 对比 Hermes: 扁平 MEMORY.md 2200 字符上限 — 无编译型 Wiki 与 corpus=all 统一检索。 测试: 25 项定向 pytest(Harness wiki boundary 模块,2026-07)。

Karpathy 认知地图三件套(index / log / hot)+ SCHEMA

编译、维护、导入或审批后,引擎确定性维护 vault 根目录定向文件(零额外 LLM 成本): Query 定向(W36): FTS 无直接匹配时,零 LLM wiki query 前缀同时包含 近期库上下文hot.md)与 近期活动日志log.md,有界)— 回答能反映最近变更,且注入 agent 全局 system prompt。 编译 index 种子(#32): LLM 概念抽取时注入 index.md 已有目录,新页面复用已建立概念名,减少重复词条。 与竞品差异(诚实):
  • 强于 Molio:hot/log 仅在 wiki 查询路径使用,注入 agent 全局 system prompt → prompt cache 更安全
  • 强于 Hippocampus:事件驱动刷新,非每会话盲注 hot
  • 强于 Hermes llm-wiki:自动 SCHEMA + Cron 维护 + query log 定向 — Hermes 依赖 SKILL 手工 lint 与扫 log
  • 不做:Molio 式 LLM 重写 hot(token/幻觉成本);全局 middleware hot(破坏 cache);Hermes 完整 tag taxonomy 写入 SCHEMA(GUI-first 用户 ROI 低)
Settings 概览 自动展示三件套就绪状态;无需 CLI。

统一 Vault 路径

所有 Wiki 数据位于同一工作区下的单一库目录。设置页、REST API、Agent 工具、存入 Wiki、Deep Research 与压缩归档共用该路径;启动时自动迁移旧路径。 设置 → Wiki → 概览 中,统计信息随页面打开自动加载,并显示:
  • 知识库已就绪 — Wiki 目录存在且可写。
  • 旧库已迁移 — 历史路径已合并到当前库。
  • 知识目录 / 活动日志 / 近期上下文 — Karpathy 式三件套(index.mdlog.mdhot.md)是否在编译、导入或审阅后已构建并保持新鲜。
无需再依赖 CLI「doctor」式自检,产品内即可确认库状态。

Project 工作区(file-centric SSOT)vs Wiki 导入

两条路径,按场景选择: 竞品迁移完成后,用 Migration Result vault 绑定卡片,首条对话即指向真实 vault,无需手动建 Project。 单次任务 scope(不建 Project):消息输入框 文件夹图标WorkspaceDirPicker)绑定本会话目录。

在对话中引用 Wiki(@wiki:)

在聊天输入框中键入 @wiki: 即可实时搜索 Wiki 词条并自动补全。选择词条后,其编译内容将注入当前消息上下文:
  • @wiki:关键词 — 下拉列表仅显示匹配的 Wiki 词条(模糊匹配词条名)。
  • 选择词条 — 输入框变为 @wiki:词条名 加可移除标签,与 @staged@diff 操作方式一致。
  • Agent 接收 词条内容在 <mentioned_files> XML 块中,确保回答精确引用知识库。
  • 组合引用@wiki:项目架构 @staged 同时发送 Wiki 文章和 Git 暂存变更。
  • 普通 @ 搜索 — 输入 @关键词(不带 wiki: 前缀)显示 Agent、Wiki 词条和文件的混合列表。
精确、按需地控制 Agent 使用哪些知识 — 无需依赖自动检索或提示工程。

将聊天消息存入 Wiki

任意已完成的助手消息,在消息操作栏用 Compound to Wiki(书本图标):
  1. 在树选择器中选文件名与可选目标文件夹。
  2. 确认 — 前端仅传 source_chatsource_message;服务端从数据库补全 Q&A 与可信度信号(不接受客户端正文)。
  3. 草稿进入 设置 → Wiki → 待审编辑不会直接写入 vault。
  4. 审核通过后入库;可拒绝或内联编辑。同一消息重复 staging 返回 409,可跳转待审列表。
  5. 无痕会话隐藏按钮;API 直调返回 403
未经验证的回答在待审 draft 中带 coverage 免责声明。聊天侧禁止绕过该路径直调 create_note(HTTP 403)。

溯源闭环

每条知识都保留指向来源精确消息的溯源链
  • 对话 → raw — 通过 Compound to Wiki 保存的消息,以及会话结束时自动归档的长回答,都会把 source_chat(可用时含 source_message)写入 raw 文件的 YAML frontmatter。
  • raw → 编译词条 — 编译器在重生成文章时保留溯源;若 LLM 输出丢失该字段会自动回填;首次编译时从词条关联的 raw 源文件提取溯源(仅当所有来源一致时才注入,避免合并词条出现误导性的单一来源)。
  • 词条 → 对话跳转 — 概念详情面板与待审列表提供 「来源对话」 链接:有 source_message 时深链到精确消息?highlight=…),没有则降级为对话本身;来源对话被删除时展示自然的空状态而不是死链。
  • Raw 闸门加固 — raw 发布闸门拒绝路径穿越(..、盘符前缀、超长路径),溯源永远不会成为文件系统逃逸向量。
这条溯源链在 agent 知识库产品中是独一无二的:竞品至多提供线程级跳转(deer-flow)、有行级数据但无 UI(openclaw/jiuwenclaw)、或仅有 session_id 而无任何跳转(CoPaw)。没有任何一家在 UI 里把知识条目链接到对话中的精确消息。

页面类型契约(frontmatter type

每条 Wiki 页面必须在 YAML frontmatter 中声明 页面类型。在编译、待审批准、以及 Linter 维护时代码级强制,而非仅靠 prompt 建议。 允许值: sourceentityconceptcomparisonoverviewquestionsession(与 Google OKF 兼容的子集)。 诚实边界: 待审 draft 已含完整 Q&A,批准后才写入 vault。Settings Advanced 整页 replace 未硬拦截 frontmatter — 下次 Maintain 时 Linter 自愈。 闭环:对话 → 一键 staging → 人工审核 → 可检索知识

检索与维护

  • 查询 Wiki(概览标签)— 自然语言问答走 零 LLM 检索路径:从认知 index、sidecar 摘要、FTS5 与关键词种子出发,经有预算的 best-first 图扩展收敛后,组装 L0/L1/L2 片段与声明/证据卡片。
  • 检索模式(概览 → 查询 Wiki)— 可选 综合检索(索引、目录与文章均衡召回)或 声明优先(优先含 frontmatter claims 与关联证据的概念;无匹配时自动回退综合检索)。OpenClaw 有类似 raw-claim 但仅 CLI;Myrm 在 Settings 下拉即可切换。
  • 引用可信度 — 回答卡片展示 claim 文本、evidence 路径与 snapshot_status,便于判断引用内容是否仍与 vault 磁盘一致。
  • 证据引用 Drawer(Closure v2) — Chat 或 Settings 点 citation chip:展示 claim 状态 badge(仅 contested/unsupported 降噪)、编译置信度百分比(显式设置时)与 raw 摘录;检索侧 fresh supported claim 优先于 stale contested。
  • Settings 检索路径 trace — Query 结果下方卡片展示 index 命中、seeds、sidecar 目录与最终概念,便于排障「为何命中这条」。
  • 编译 / 维护 — 增量编译、并发批量摄入(Semaphore 限流并行处理,多文档编译提速约40%)、视觉化指导(编译器自动引导 LLM 在合适位置产出 Mermaid 图表、GFM 表格和代码块,提升信息密度)与 linter 驱动健康修复(断链、漂移、孤立概念/桥接节点知识盲区检测等)。
  • 维护模式(#31) — Settings 概览 → 维护 可选 Structural(快扫 lint + type 修复 + blocked raw 清理)或 Full(额外漂移检测与 backlink 刷新)。Cron 蓝图 wiki_maintain 经 router __wiki_maintain__:{mode} 定时执行相同模式;第二大脑 preset 在稍后读与晨间 delta 之外新增 周末 03:00 full maintain 闹钟。此外新增 wiki_vault_weekly_health(知识库每周健康巡检 · 只列不修) 蓝图(默认周日 18:00),以零修改原则生成分类体检清单(断链/陈旧/格式异常)与 /settings/knowledge 治理深链。
  • 结构健康 Stats(Overview 页)— 零 LLM 扫描:markdown 断链、Obsidian [[wikilink]] 断链(路径 + 唯一 title 别名)、缺 frontmatter type;amber badge 在编译、导入、词条编辑、待审审批、文件夹删除后即时刷新;Harness CI 跑 4 case 检索回归门。无需 CLI wiki lint
  • 图书馆 / Brain 视图 — 3D 知识图谱与词条探索(因部署而异)。
  • 知识图谱 — 编译器自动抽取概念及其关联关系,构建加权边图谱(直接链接 + 来源重叠 + 共同邻居三维权重)。LPA 社区检测自动将相关概念分组;盲区分析高亮孤立节点和跨领域桥接概念。
  • 智能上下文回忆 — 开始新对话时,Agent 自动根据当前话题检索相关记忆和知识,无需手动指引文档。
  • 矛盾检测 — Claim Graph 追踪 contradiction_statusCONTRADICTED_BY 关系。巩固流程自动标记冲突事实,交由人工审核而非静默覆盖。
  • 联邦检索 — 当存在多个 Wiki 命名空间或发布目录时,查询自动跨源检索并以 RRF 排序合并结果,确保全面覆盖无需手动切换范围。

从 Obsidian 导入

Myrm 提供专用 Obsidian Vault 导入器,完整保留笔记、标签和图片:
  1. 设置 → Wiki 中滚动到导入区域。
  2. Tauri 桌面端:点击 导入 Obsidian Vault 并选择本地 vault 目录。
  3. WebUI / 云端:点击 上传 Obsidian ZIP 并上传 vault 压缩包。
导入器处理:
  • YAML frontmatter — 行内数组(tags: [a, b])与 YAML 缩进列表(tags:\n - a\n - b)双格式,含 aliasescreatedupdated
  • 图片嵌入![[image.png]] 语法自动改写为标准 Markdown 并将图片复制至 wiki 资产目录。
  • .canvas 文件 — 空板或无可用文本时跳过;含 text 节点的白板按 JSON Canvas 1.0 提取为 Markdown(文本内容及 file/link 标签)。
  • 编码容错 — UTF-8 解码失败的文件会报告但不阻塞整体导入。
  • 冲突安全 re-import — raw 已存在且内容不同时默认跳过;弹窗可填 reason 覆盖(记入 wiki/log.md)。
导入完成后弹出 toast 通知,显示已处理笔记数、提取标签数和迁移图片数。导入的文件自动进入编译队列并被索引。

在 Obsidian 中打开与导出(#22 + #22b)

Settings → Wiki → Overview 的 Obsidian Vault 卡片提供反向打开与导出(与上方「导入」互补): 解压后:Obsidian → 打开文件夹作为库 → 打开 Graph 视图即可看到按页面类型着色的节点。 回归测试(2026-07-29): 14 项定向 pytest(跨平台启动 + reveal + 导出 · 无 Chrome MCP E2E)。
与 Project 挂载的分工: 若你在 自有磁盘 用 Obsidian/Typora 双向编辑,请用 设置 → 项目 → 挂载同步目录。#22 针对 Myrm 托管的编译库 一键打开或快照导出。
诚实边界: Cloud 无法本地 reveal;未安装 Obsidian 时隐藏「在 Obsidian 中打开」(「在文件夹中显示」+ 下载包仍可用);Windows 尚未探测 %ProgramFiles%\Obsidian\Obsidian.exe;不提供 obsidian:// 深链。

Vault 本地 git 快照(#23)

开启 版本控制 后(Local/Tauri 在 session archive 等路径会默认开启),Myrm 在 vault 内维护 真实 .git 目录(非 shadow-git 插件): 回归测试(2026-07-29): 5 项 #23 定向 pytest(test_wiki_vault_git_mutation 2 + Harness test_vault_git 3 · 无 Chrome MCP E2E)。
诚实边界: Settings 无提交列表 UI — 深度历史请用 git log 或 Obsidian Git。下载 Obsidian 包 ZIP 不含 .git。Cloud 不承诺 vault git。

搜索已导入图片(Obsidian assets)

设置 → 模型 中配置 Vision Fallback Model 后,Myrm 会用视觉模型为 wiki/assets/ 下的图片生成 caption 并建立索引(FTS5 + 可选向量混合检索)。无需单独的 image search 工具即可找图:
  • wiki_query / knowledge_recall(corpus=wiki|all) — 用自然语言问「架构图在哪」可返回 asset 命中,Chat Sources 带缩略图 citation。
  • 设置 → Wiki → Overviewasset_index badge 显示已索引/待处理/失败数量;有图但未配 vision 时显示 amber 提示并引导至模型设置。
  • 导入链路 — Obsidian 导入会后台调度 asset 索引;compile/maintain 也会刷新 asset 索引。
诚实边界: 这是 文字找图(caption 检索),不是 以图搜图(multimodal embed)。OpenViking 有后者;OpenClaw/Hermes 等普遍 没有 Obsidian asset caption 索引管线。未配 vision 时图片会导入但 不可搜索 — Overview 提示已覆盖;Chat 不会出现「有缩略图但 caption 为空」的误导路径。

URL 入库与视频字幕提取

向 Wiki 导入 URL 时,Myrm 通过 CrawlEngine 统一处理所有链接:
  • YouTube 视频 — 自动提取字幕文本(支持 10+ 种语言),存入的是可搜索的文字内容而非 HTML 页面代码。
  • Bilibili 视频 — API 直连提取字幕,无需 DOM 解析。
  • 公众号文章 — 多层 fetcher 自动应对微信反爬(HTTP → 浏览器 → 隐身模式逐级降级)。
  • 普通网页 — CrawlEngine 自适应选择最优抓取策略,JS 渲染页面自动升级到浏览器引擎。
  • 高可用降级 — CrawlEngine 故障时自动 fallback 到 secure_get + Markdown 转换,保证入库不中断。
用户只需丢一个链接给 Agent 说「导入这个」,系统自动识别 URL 类型并选择最优提取方式。

文档解析与 OCR

向 Wiki 导入文档时,Myrm 自动选择最优解析策略:
  • 文字型 PDF — pdfplumber 并行提取 + 书签注入 + 字体标题检测。
  • 扫描型 PDF — 文字稀少时(< 200 字符)自动识别,整页渲染为 PNG 后交由本地 PaddleOCR 引擎逐页识别(原生支持中日韩英,无需云端或视觉模型),再拼回可检索文本;仅当 OCR 不可用时才回退视觉模型辅助。
  • 混合型 PDF — 文字正常提取,同时捕获内嵌图表/照片,经智能图像过滤器去噪(去除 UI 噪声、Logo、装饰元素)。
  • 图片 — 本地 PaddleOCR 引擎支持中日韩英文,无需云端依赖,结果含置信度和定位框。
  • Office 文件 — DOCX / XLSX / PPTX 原生解析器,无需安装 MarkItDown 等外部依赖。
所有策略异步执行并统一进入编译管线——无需手动选择。

安全防护

Wiki 入库受 路径遍历防御持久化层内容扫描 保护:
  1. 文件名清理 — 剥离 LLM 提供文件名中的目录组件(Path(filename).name),防止注入攻击写入 ../../../etc/cron.d/evil.md 等任意路径。
  2. 边界校验safe_join_path() 验证解析后路径始终位于 Wiki raw 目录内,阻断绝对路径、空字节注入、符号链接逃逸和 ../ 遍历。
  3. 写前扫描publish_raw 与编译发布在落盘前执行凭证/注入检查(见上文 归档安全治理)。
这些防御在 harness 框架层实现,所有入库路径(agent 工具、自动归档、Settings 导入、大文档 RAG 入库)均自动受保护。Wiki 目录位于用户主目录外,代码执行期间还受 OS 级沙箱隔离(macOS Seatbelt / Linux bubblewrap / Windows AppContainer)保护。

会话级知识库多选挂载与跨源联邦检索(Unified Knowledge Base Picker & Hybrid Search)

在日常多任务对话中,用户往往需要针对特定话题(如“研发代码规范”、“财务审计指南”、“项目交付白皮书”、“API 接口文档”)临时调取专属知识库。传统工具(如 Hermes、OpenClaw)仅支持在 Agent 设置页全局静态绑定单一库,临时切换必须跳离会话甚至中断正在进行的工作;而在 Codex 等纯代码工具中则完全缺乏结构化知识库的概念。 Myrm 实现了会话级知识库即时多选挂载与跨源联邦混合检索 使用说明:
  1. 桌面端:在聊天输入框操作栏点击书本图标(KnowledgePickerPopover),在弹出层中可实时搜索知识库,并通过开关勾选挂载(单会话最多支持挂载 6 个知识库,物理拦截 SQLite 资源上限)。
  2. 移动端:在输入框右侧唤起操作抽屉(MobileActionSheet),点击「挂载知识库」即可即时选择。
  3. 输入区胶囊:挂载的知识库会以内联紫调胶囊呈现;点击右侧 × 可一键从当前会话解绑。隐私模式(Incognito)下挂载仅作用于当前轮次,不持久化绑定关系。

Obsidian 本地库深度融合与安全隔离收件箱(Obsidian Vault Portability & Safe Inbox)

面对广大研究员、创作者与工程师深度使用 Obsidian 沉淀第二大脑的场景,传统 AI 工具要么只能读简单 Markdown 导致 .canvas 画布成为盲区,要么由于缺乏写入防护导致直接篡改人类本地笔记库。 Myrm 提供了原生开箱即用的 Obsidian 工具链与安全防护套件(obsidian_tools.pyobsidian_canvas.py
  • 强类型 .canvas 白板 AST 与 1-Hop 维基链接邻近笔记级联展开
    • 原生解析 Obsidian Canvas 白板文件,精准提取空间文本节点、文件引用卡片与拓扑连线,彻底破除大模型在空间视觉知识上的检索盲区;
    • 智能解析 [[Wikilinks]] 并提供 1-Hop 邻域笔记级联展开(Linked Notes Context),阅读单篇笔记自动聚合一度关联笔记摘要,保全人类笔记库的知识图谱拓扑;
    • 具备损坏 JSON、非法 AST 结构与异常编码的 100% 容错护栏。
  • 只读检索与安全隔离收件箱(obsidian_inbox_write
    • 坚持“用户核心库只读检索、AI 沉淀知识增量入 Inbox”的架构隔离原则;
    • Agent 输出总结时默认只能写入专用的收件箱目录(如 _Myrm_Inbox/),支持自适应嵌套子目录(subfolder),绝不覆写用户原笔记;
    • 深度集成 HITL 人工审批机制:配置审批策略时拦截写操作并向用户呈现审批卡片,无审批时安全落盘,彻底兼顾自动化流转与人机互信。
  • 毫秒级 mtime 水位差量同步(ObsidianVaultBinding
    • 本地库变动通过微秒级 mtime 水位扫描,本地新增与修改无需长轮询与重量级外部守护进程,极速感知与对齐。

对比 DIY Wiki 技能

Myrm 尚无 Notion 式 Wiki 回收站。删除确认请慎重;重要笔记请备份。

相关