一个运维人的第二大脑:用 Obsidian 管理技术知识库

#Obsidian#知识管理#效率#运维

为什么开始做知识库

做了 16 年运维,养成了一个习惯:所有操作都要留记录

改个配置、装个依赖、遇到个报错——随手写一行。这个习惯在转型 AI 开发后救了我无数次。三个月前写的配置,回头完全不记得为什么那么设。翻一下笔记,三秒定位。

最开始用记事本,后来用 Notion,最后稳定在 Obsidian。选它的原因很简单:

本地 Markdown 文件 → 不依赖任何云服务 → 永远不会丢。


我的知识库长什么样

my-tech-wiki/
├── index.md           ← 总目录,所有页面在这里都能找到
├── schema.md          ← 规范文档(命名、标签、何时新建页面)
├── log.md             ← 所有操作的日志

├── entities/          ← 实体:项目、人、简历
│   ├── memoapp.md
│   ├── personal-rag-platform.md
│   ├── personal-website.md
│   └── ...

├── concepts/          ← 概念:架构、技术原理、修复记录
│   ├── rag-deployment-record.md
│   ├── llm-basics.md
│   ├── memoapp-crash-fixes.md
│   └── ...

├── plans/             ← 计划:学习路线、求职策略
│   ├── study-and-job-plan.md
│   └── qianhai-target-companies.md

└── raw/               ← 原始素材(不动它,只引用)
    └── articles/

两个核心原则

原则一:分类只有五类

很多知识库教程搞十几种分类,越分越乱。我用了半年,发现五个分类就够了

分类放什么例子
实体能摸到的东西项目仓库、简历、手机 App
概念抽象的东西架构设计、技术原理、报错修复
计划未来的事学习路线、面试策略
对比二选一或多选一LLM 选型对比、部署方案对比
素材原始数据文章摘录、截图、日志输出

为什么五类够用?因为大多数东西不是实体就是概念,二选一就行了。纠结”这个该放哪”超过 3 秒,说明分类有问题。

原则二:双向链接是唯一的组织方式

不用文件夹嵌套、不用标签体系。所有页面之间靠 [[wikilink]] 连接。

# memoapp.md 里的片段

## 架构
详见 [[memoapp-architecture]]。

## 崩溃修复记录
上线华为应用市场时遇到 7 处崩溃,全部记录在 [[memoapp-crash-fixes]]。

## 相关技术栈
- 用到的 AI 辅助开发工具:[[hermes-agent-architecture]]
- 编译部署相关:[[harmonyos-dev-environment]]

这样写的效果:打开一个页面,所有相关页面都在里面,顺着链接就找到了,不用搜索、不用回忆。

Obsidian 的 图谱视图 还能可视化这种链接关系——但说实话,这个功能我几乎不用。链接的意义在于导航,不是画图。


三条硬规矩

1. 每页必须有 frontmatter

---
title: RAG 部署记录
created: 2026-07-05
updated: 2026-07-24
type: concept
tags: [rag, deployment, qdrant, ollama]
confidence: high
---

不写 frontmatter 的页面就像没有身份证的人——你知道它存在,但根本不知道它是什么、什么时候创建的、靠不靠谱。

confidence: high | medium | low 最重要。三个月后回来翻,一眼就能判断这个记录还可信不可信。

2. 改了东西必须记 log

[2026-07-24] update | RAG Reranker 修复
- 问题:CrossEncoder 初始化时跨墙访问 huggingface.co,120s 超时
- 修复:local_files_only=True,加载时间降到 2.4s
- 文件:concepts/rag-deployment-record.md 新增 Reranker 章节

不是 Git commit 那种技术日志,而是”我今天动了知识库的哪些页面”。万一改错了,看 log 能找到最后一版。

3. 不改原始素材

raw/ 目录里的东西是只读的——文档摘录、错误日志、API 响应、截图。永远不直接编辑它。

想加工?在 concepts/entities/ 里新建一页,用 [[raw/articles/xxx]] 引用原素材。

这样做的原因:原始数据是不可替代的。三个月后你可能发现之前的分析是错的——如果原素材还在,可以重新分析。如果把它删了,就没了。


什么时候新建页面 vs 追加到已有页面

这是我纠结最久的问题。后来定了一条硬规则:

情况做法
新内容跟已有页面直接相关追加到已有页面
新内容是个独立主题新建页面,同时从相关页面加链接
一页超过 ~200 行拆成子页面
只是顺带提一嘴不新建页面,在当前页写一行

举例:Reranker 修复要不要新建页面?

不要。Reranker 是 RAG 部署的一部分,直接追加到 rag-deployment-record.md 里,加个小标题 ## Reranker 集成与修复


什么不进知识库

这个更重要——知道什么不该放:

  • ❌ Git 仓库的代码 — 去 GitHub 看就行
  • ❌ 临时 TODO 清单 — 用 Hermes 的 todo 工具
  • ❌ 聊天记录 — 除非是重要的技术讨论
  • ❌ 网上随处可查的基础知识 — 比如 Python 的 if 语法
  • ❌ 已经过时且不会再参考的旧方案

这套系统的实际效果

场景多久找到
鸿蒙 MemoApp 崩溃修复上次怎么改的10 秒
RAG 平台的 Qdrant 版本兼容问题15 秒
我的简历最近更新了什么5 秒
前海有哪些目标公司3 秒
ICP 备案流程和材料清单10 秒

和 AI 的结合

这套系统最爽的一点:可以直接喂给 RAG

我的知识库全是被 Obsidian 管理的 Markdown 文件。用 RAG 平台的 python -m src.ingest docs/ 一键导入 Qdrant,接下来就能用自然语言提问:

“MemoApp 上次华为审核被拒是什么原因?"
"RAG 平台用的是什么 Embedding 模型?"
"有哪些前海的公司可以投简历?”

等于把”人工翻笔记”升级为”AI 直接回答”。


建议

如果你也想建一个:

  1. 从 3 个页面开始index.md、一个项目实体页、一个遇到的问题页
  2. 先写 100 篇再优化分类 — 只有内容够多,才知道怎么分
  3. 规则写在 schema.md — 三个月后你会感谢自己
  4. 别装插件 — Obsidian 原生就够用了,插件是分心的陷阱
  5. 工具不重要,习惯才重要 — 用记事本也行,关键是每次都记

一个运维人的本能反应:遇到问题先记下来,修好后再记下来,三个月后回头看——那就是你的技术成长史。