从收藏夹到知识系统
个人知识库最大的问题不是资料不够,而是资料无法复用。会议记录、项目文档、部署日志、面试题、规范草案都堆在一起时,搜索会越来越难,写作也很难从里面自然长出来。
LLM Wiki 的思路是把原始资料和知识抽象分层。Raw 保存事实,不随便改写;Sources 压缩单个来源;Entities 管理长期对象;Concepts 沉淀方法;Comparisons 做横向比较;Overview 形成主题综述;Log 记录演化。
- Raw 层保留原始事实。
- Wiki 层负责提炼、关联和公开化表达。
- Schema 定义页面字段和更新规则。
- Index 提供导航,Log 提供演化记录。
LLM 适合做什么
LLM 不是替你决定知识价值,而是帮你做结构化维护。它擅长摘要、分类、抽取实体、发现重复、生成索引、补充交叉链接和把内部资料改写成公开表达。
但原始事实必须可追溯。任何公开内容都应该知道来自哪些资料,哪些是经验总结,哪些是后续扩展。
- 用 LLM 生成 Source 摘要。
- 用 LLM 发现 Entity 和 Concept。
- 用 LLM 定期检查孤立页面和重复主题。
- 公开化时做脱敏和重写。
维护节奏
知识系统需要节奏。每次新增资料后,不一定马上写长文,但要至少进入 Raw 和 Source。每隔一段时间把 Source 汇总到 Entity 或 Concept,再把多个概念组织成 Overview。
公开网站就是这个流程的出口。它不需要一次性完美,但需要持续从知识库里长出内容。
- 每日或每周归档 Raw。
- 定期生成 Sources。
- 每月整理 Overview。
- 发布前做隐私和事实检查。
三层架构:Raw、Wiki、Schema
你的知识库 README 把系统分成原始资料层、知识层和配置层。Raw 保存不可变事实,Wiki 保存结构化知识网络,Schema 定义系统规则和工作流。这个分层很适合个人知识复利,因为它避免了两个常见问题:原始资料被过度改写,或者总结内容没有来源。
公开网站应该主要来自 Wiki 层,而不是直接暴露 Raw。Raw 里可能有内部路径、业务细节、账号线索和未脱敏资料。
- raw/:只添加,不随意改写。
- wiki/sources/:单个来源摘要。
- wiki/entities/:项目、系统、团队、岗位等长期对象。
- TheSchema.md:约束 LLM 如何维护知识。
Ingest:把资料变成知识页
Ingest 是知识库增长的入口。新增一份规范、部署记录、面试材料或业务文档后,LLM 先阅读 Raw,再创建 Source 摘要,抽取相关 Entity 和 Concept,并更新交叉引用。
这个流程的重点是保留来源。未来你写公开文章时,可以知道某个结论来自哪些资料,而不是凭记忆复述。
- 先创建 Source,记录标题、类型、范围和核心要点。
- 再更新 Entity,例如团队研发规范体系或工程基础设施平台。
- 抽取 Concept,例如分支环境映射、质量门禁、权限树。
- 最后写入 log,记录知识库变化。
Query:让知识库能回答问题
Query 不是简单全文搜索,而是让 LLM 先定位相关页面,再综合回答。比如问“前端规范和后端规范有什么不同”,它应该读取 comparison、source 和 concept,而不是只返回包含关键词的文件。
当一次 Query 产生了有价值的答案,可以把它写回 Wiki,形成新的概念页或比较页。这样知识库会越问越厚。
- 问题先映射到实体、概念或来源。
- 回答要带来源线索。
- 有价值的综合答案写回 Wiki。
- 避免让 LLM 每次从 Raw 重新推导。
Lint:防止知识腐化
知识库长期维护后会出现重复页面、过期结论、孤立条目和交叉引用断裂。README 中的 Lint 操作就是为了解决这个问题。LLM 很适合做这些人类不愿意做的记账工作。
对于公开网站,Lint 还可以扩展成发布前检查:是否暴露敏感路径,是否引用未脱敏资料,是否有过时状态,是否缺少 canonical 和描述。
- 发现重复概念并建议合并。
- 发现孤立页面并补充链接。
- 检查过期状态和矛盾描述。
- 发布前做隐私、SEO 和来源检查。
从 Obsidian 到网站
当前 hxc-blog 是手工提炼版,但它可以继续演进成半自动发布系统。下一步可以让每篇文章记录 sourceNote、slug、tags、sections,然后从 wiki 中生成 JSON,再由静态页面渲染。
这样你在 Obsidian 里继续维护知识,网站只负责公开表达。知识库是内场,网站是前台。
- Obsidian 维护事实和结构。
- 生成脚本负责脱敏、摘要和 JSON 输出。
- 网站负责阅读体验、搜索和导航。
- Cloudflare Pages 负责部署和缓存。