RAG 与写时物化不是二选一
查询时检索优化响应,写时物化优化复用;成熟系统通常需要两者,而不是用一个口号否定另一个。
基础 RAG 的典型流程是切分原文、建立索引、查询时召回片段并临时合成回答;现代 RAG 也可以持久化摘要、记忆和图结构。 因此真正的差异不是“有没有积累”,而是系统把多少计算提前到写入阶段、产物是否由人可读、以及派生内容如何被验证和更新。
| 维度 | 查询时检索 | 写时知识物化 |
|---|---|---|
| 主要计算时机 | 读取问题后 | 资料进入时先编译,查询时继续利用 |
| 中间资产 | Chunk、向量、缓存或记忆 | 可读页面、派生关系、来源与变更日志 |
| 跨问题复用 | 复用索引,也可复用缓存与记忆 | 复用已经整理的概念页、实体页和综合页 |
| 人的介入点 | 提问和查看答案 | 选择来源、设定方向、审核分歧、演进规则 |
| 典型风险 | 片段遗漏、上下文拼接失真 | 摄入误写、页面合并漂移、维护复杂度 |
案例代码同时保留关键词、向量和图检索,恰好说明二者互补。通用选择标准应是更新频率、查询延迟、可接受成本、证据要求和错误修复半径,而非流派标签。
四类对象:证据、主张、视图与规则
案例实现主要落在“原始资料—Wiki—Schema”三层,适合人类阅读和文件迁移;但页面级来源无法精确回答某句话由哪段证据支持, 也难以处理同一主张的有效期、冲突与撤回。更严格的系统应把主张单独建模,再把 Markdown 视为可重建视图。
Purpose 保存目标、关键问题、范围和当前论点;Schema 保存页面类型、格式和操作规则。前者决定方向,后者保证秩序。
主张级血缘是可信边界
| 最小字段 | 解决的问题 | 验收方式 |
|---|---|---|
| source_id + version | 来源变更后知道哪些结论需要失效 | 修改来源可列出完整影响集 |
| span / quote hash | 定位具体证据,防止“整页挂引用” | 引用可回到原文位置并校验哈希 |
| valid_at / observed_at | 区分历史事实、当前状态与预测 | 查询能按时间过滤并提示过期 |
| status / confidence | 区分已核验、待审、冲突与撤回 | 未核验内容不能伪装成确定事实 |
| derivation fingerprint | 追踪模型、Prompt、Schema 与解析器 | 任一依赖变化都能精确触发重建 |
当前项目保留来源文件、页面 frontmatter 和日志,但仍以页面为主要知识单元。这足以支持回看来源,不足以证明每个生成主张都被精确证据支持。
三种操作构成闭环
读取新资料,抽取实体与概念,更新已有页面,记录矛盾和来源。
从 Wiki、原始资料、图谱或网络取证,生成带引用答案,必要时再写回 Wiki。
检查结构错误、孤立页、失效引用、陈旧主张、矛盾和知识空白。
查询产生的新洞察可以成为候选知识,但不应自动升级为事实。更安全的闭环是“生成候选—绑定证据—结构校验—语义评测—人工或策略发布”; Lint 只能发现可编码规则中的问题,无法证明内容真实。
Index 与 Log 是两种坐标
index.md
内容坐标。按类型列出页面与一句话描述,帮助人和模型先看目录,再钻取具体页面。
log.md
时间坐标。追加记录摄入、查询、删除与维护动作,让知识库演进过程可以追踪和解析。
原始方法论允许模型更新索引;实际 v0.6.10 更谨慎:应用明确禁止生成阶段改写 wiki/index.md 和
wiki/overview.md。摄入路径会确定性更新 Index,并在模型遗漏日志时追加结构化条目;Overview 被标为应用管理页,
但本次审计没有在同一路径看到与 Index 对等的自动更新实现。
从“让模型维护一切”演化到“模型负责语义,程序负责全局账本”,是本项目最重要的落地修正之一;Overview 的维护闭环仍值得继续补齐。
人机分工:不是全自动
| 人类更擅长 | LLM 更适合承担 | 程序必须兜底 |
|---|---|---|
| 选择可信来源 | 摘要与结构化抽取 | 路径与权限校验 |
| 提出关键问题 | 跨页面更新与交叉引用 | 原子写入与文件历史 |
| 判断矛盾的重要性 | 发现分歧并生成审核项 | 缓存、重试、取消、并发与事务控制 |
| 决定研究方向 | 生成搜索主题与综合草稿 | 索引、日志、删除级联、安全与质量评测 |
项目没有把人放进每一个阻塞步骤,而是建立异步审核队列:模型可以先标记“创建页面、深度研究、跳过”等有限操作, 用户稍后集中判断。这是一种更符合真实工作节奏的人机协作。
何时才会产生复利
- 收益大于重建成本:高频复用、低频变化的知识更适合写时物化;快速变化的信息可能更适合查询时获取。
- 关系提前显式化:Wikilink、来源字段和图算法把隐含关联变成可计算结构。
- 证据与解释分离:原始材料保留上下文,派生主张允许被质疑、撤回和重建。
- 工具无关:Markdown 使知识可以离开当前应用继续生存。
先建立“版本化证据、原子主张、可重建视图、显式规则、可复现评测”,再决定是否使用 Markdown、图数据库或向量库。没有评测和失效机制,积累也可能只是错误复利。
llm-wiki.md、README_CN.md、src-tauri/src/commands/project.rs、src/lib/ingest.ts。四类对象与主张级血缘是本次审计提出的通用改进模型,并非项目现状。