<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>AI实践 on Kalend's Blog</title><link>https://blog.kalend.top/categories/ai%E5%AE%9E%E8%B7%B5/</link><description>Recent content in AI实践 on Kalend's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Tue, 13 Oct 2026 08:40:00 +0800</lastBuildDate><atom:link href="https://blog.kalend.top/categories/ai%E5%AE%9E%E8%B7%B5/index.xml" rel="self" type="application/rss+xml"/><item><title>第二大脑跑了一年：我的wiki现在自己长知识</title><link>https://blog.kalend.top/2026/10/13/2026-10-13-second-brain-auto-growing-wiki.html/</link><pubDate>Tue, 13 Oct 2026 08:40:00 +0800</pubDate><guid>https://blog.kalend.top/2026/10/13/2026-10-13-second-brain-auto-growing-wiki.html/</guid><description>
 &lt;blockquote&gt;
 &lt;p&gt;我试过Notion、语雀、Obsidian，每次都是同一个结局：热情维持两周，然后笔记软件变成墓地。这次不一样——一年了，我的wiki还在自己生长，而我一条笔记都没手动写过。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="先说结论"&gt;先说结论
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;我的wiki现在确实在&amp;quot;自己长知识&amp;quot;。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;不是我玄学吹牛，是刚刚在本机跑了一遍统计：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;项目&lt;/th&gt;
					&lt;th&gt;实测数据&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Obsidian wiki 页面&lt;/td&gt;
					&lt;td&gt;37 个（实体19 + 概念17 + 对比1）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;原始素材&lt;/td&gt;
					&lt;td&gt;11 篇文章 + 11 个归档记录&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;向量知识库&lt;/td&gt;
					&lt;td&gt;50,054 条（ChromaDB 本地存储 681MB）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;自动归档定时任务&lt;/td&gt;
					&lt;td&gt;4 个，全年无休&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;我手动写的笔记&lt;/td&gt;
					&lt;td&gt;0 条&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;整个链路跑了快一年。这篇文章把我怎么搭的、真实数据长什么样、踩了哪些坑，一次讲清。&lt;/p&gt;
&lt;h2 id="我试过的所有笔记法都死于同一个问题"&gt;我试过的所有笔记法，都死于同一个问题
&lt;/h2&gt;&lt;p&gt;不是工具不行，是&lt;strong&gt;记录成本太高&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;看到一篇好文章，要自己判断：记什么？放哪个目录？和已有的哪条笔记是重复的？要不要建链接？这一套下来十分钟，而&amp;quot;正在做正事&amp;quot;的冲动早就凉了。&lt;/p&gt;
&lt;p&gt;传统笔记法对此的回答是&amp;quot;坚持&amp;quot;。我的回答是：&lt;strong&gt;让AI来记。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;设计目标只有一条：&lt;strong&gt;我只负责对话和阅读，其余全部自动化。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="三层架构对话--提取--存储"&gt;三层架构：对话 → 提取 → 存储
&lt;/h2&gt;&lt;p&gt;整个系统分三层，各干各的：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;┌─────────────────────────────────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ 对话层：日常使用，不提任何要求 │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ （和AI助手正常聊天、干活、搜资料） │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└──────────────┬──────────────────────┘
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓ 自动触发
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;┌─────────────────────────────────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ 提取层：4个定时任务，各管一段 │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ 会话挖掘 / wiki扫描 / 记忆整理 │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└──────────────┬──────────────────────┘
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓ 自动归档
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;┌─────────────────────────────────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ 存储层：双写策略 │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ ① Obsidian wiki（人可读，可浏览） │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ ② 向量数据库（语义检索，给AI查） │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└─────────────────────────────────────┘
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;关键认知：知识库不是&amp;quot;我写的笔记&amp;quot;，而是&amp;quot;对话的沉淀物&amp;quot;。&lt;/strong&gt; 我和AI每天产生大量对话——调研、排障、做决策。这里面藏着大量值得留存的结论，只是以前对话一关就蒸发了。&lt;/p&gt;
&lt;p&gt;现在它们不蒸发。&lt;/p&gt;
&lt;h2 id="实测数据一年后的真实规模"&gt;实测数据：一年后的真实规模
&lt;/h2&gt;&lt;p&gt;先看Obsidian wiki这边。37个页面不是一次性导入的，看归档日志的时间线：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;2026-07-01 wiki初始化，首批导入 29 页
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;2026-07-19 扫描历史对话，补入部署/方法论 3 页
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;2026-08-17 Stripe收购OpenRouter大新闻入库
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;2026-09-28 自动lint：补18个缺失链接、修孤页
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;2026-10-12 最新一轮：公众号流量优化机制入库
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;每周一上午11点，wiki扫描任务自动跑：扫描近7天的AI会话，识别候选知识点。&lt;/p&gt;
&lt;p&gt;值得入库的就走完整流程——建原始素材文件、创建或更新页面、更新索引、追加归档日志。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;注意&amp;quot;更新&amp;quot;和&amp;quot;创建&amp;quot;的区别&lt;/strong&gt;：wiki里每个页面有&lt;code&gt;updated&lt;/code&gt;字段。&lt;/p&gt;
&lt;p&gt;举一个真实例子：一个记录开源Agent框架的页面，8月份被自动更新——版本信息落后了5个大版本，扫描任务发现后自己补齐了。&lt;/p&gt;
&lt;p&gt;&amp;ldquo;页面过期自动修正&amp;quot;这个动作，手写笔记的人几乎从来不会做。&lt;/p&gt;
&lt;p&gt;再看向量库那边，规模大得多：&lt;strong&gt;50,054条记录&lt;/strong&gt;。按来源分布：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;来源&lt;/th&gt;
					&lt;th&gt;条数&lt;/th&gt;
					&lt;th&gt;说明&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;会话记录索引&lt;/td&gt;
					&lt;td&gt;28,637&lt;/td&gt;
					&lt;td&gt;对话全文的语义索引&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;对话轮次&lt;/td&gt;
					&lt;td&gt;19,661&lt;/td&gt;
					&lt;td&gt;逐轮归档的问答对&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;事件记忆&lt;/td&gt;
					&lt;td&gt;863&lt;/td&gt;
					&lt;td&gt;&amp;ldquo;做过什么事&amp;rdquo;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;指令记忆&lt;/td&gt;
					&lt;td&gt;501&lt;/td&gt;
					&lt;td&gt;&amp;ldquo;怎么做事的规则&amp;rdquo;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;用户画像&lt;/td&gt;
					&lt;td&gt;301&lt;/td&gt;
					&lt;td&gt;&amp;ldquo;我是谁、偏好什么&amp;rdquo;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;月度增长曲线也能看出习惯的演变——6月刚迁移时冲了一波2.2万条，那是历史数据一次性灌入。&lt;/p&gt;
&lt;p&gt;之后每月稳定新增1千到7千条不等。最近一个月7,263条，是除迁移月外的最高峰——最近做的事多，沉淀得也多。&lt;/p&gt;
&lt;p&gt;这些数据都是刚刚在本机实测的，一个一个数的。&lt;/p&gt;
&lt;h2 id="自动归档是怎么跑起来的"&gt;自动归档是怎么跑起来的
&lt;/h2&gt;&lt;p&gt;4个定时任务，分工明确：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;任务&lt;/th&gt;
					&lt;th&gt;时间&lt;/th&gt;
					&lt;th&gt;干什么&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;会话挖掘&lt;/td&gt;
					&lt;td&gt;每周一 03:00&lt;/td&gt;
					&lt;td&gt;扫近期对话，提炼新知识入向量库&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;wiki扫描&lt;/td&gt;
					&lt;td&gt;每周一 11:00&lt;/td&gt;
					&lt;td&gt;判断哪些知识点值得进wiki，执行入库&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;记忆整理&lt;/td&gt;
					&lt;td&gt;每天 07:00&lt;/td&gt;
					&lt;td&gt;审计热记忆，超标的下沉到向量库&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;健康检查&lt;/td&gt;
					&lt;td&gt;每周一 04:00&lt;/td&gt;
					&lt;td&gt;查数据库健康、清漂移目录&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;以wiki扫描为例，它的执行规则值得展开讲，因为&lt;strong&gt;&amp;ldquo;往里存&amp;quot;容易，&amp;ldquo;存得有价值&amp;quot;难&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;◆ &lt;strong&gt;页面创建阈值&lt;/strong&gt;：一个概念出现在2个以上来源才建页，单来源但足够核心也可以。随口一提的东西不建——这条规则挡掉了80%的垃圾页面。&lt;/p&gt;
&lt;p&gt;◆ &lt;strong&gt;去重靠页面更新&lt;/strong&gt;：新素材提到已有页面覆盖的概念，不建新页，往老页面里加内容并更新&lt;code&gt;updated&lt;/code&gt;字段。矛盾内容会显式标注（frontmatter里有&lt;code&gt;contradictions&lt;/code&gt;字段），不悄悄覆盖。&lt;/p&gt;
&lt;p&gt;◆ &lt;strong&gt;强制互链&lt;/strong&gt;：每个页面至少2个&lt;code&gt;[[wikilinks]]&lt;/code&gt;指向其他页面，孤页会被lint揪出来。这保证了知识是网状的，不是一堆孤立文档。&lt;/p&gt;
&lt;p&gt;◆ &lt;strong&gt;标签受控&lt;/strong&gt;：所有标签必须来自SCHEMA.md里定义的词表，想加新标签先改词表。自由打标签是知识库腐化的头号原因。&lt;/p&gt;
&lt;p&gt;向量库那边另有去重机制：每条记录入库前先做向量相似度检查，和已有记录太像的直接跳过，避免同一个结论被存十遍。&lt;/p&gt;
&lt;h2 id="手机也能看ignis部署"&gt;手机也能看：Ignis部署
&lt;/h2&gt;&lt;p&gt;wiki光存在服务器上还不够，我想在沙发上用手机翻它。方案是用Ignis——一个开源的Web版Obsidian——Docker部署在主机8080端口：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;services&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;ignis&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;image&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;nobbe/ignis:latest&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;container_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;ignis&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;ports&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="s2"&gt;&amp;#34;8080:8080&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;volumes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;/root/wiki:/vaults/wiki &lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# wiki目录直接挂进去&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;./data:/app/data&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;obsidian-app:/app/obsidian-app&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;restart&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;unless-stopped&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;手机浏览器打开就是完整的Obsidian界面，双向链接、Graph View都能用。wiki目录是bind mount，AI在服务器上更新了页面，手机刷新就能看到，零同步成本。&lt;/p&gt;
&lt;p&gt;容器已经跑了两个月，Up 7天（上周重启过一次），开机自动拉起，没管过。&lt;/p&gt;
&lt;h2 id="踩坑实录两个印象最深的坑"&gt;踩坑实录：两个印象最深的坑
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;坑1：docker-compose挂载把软链接覆盖了。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;最初的挂载写法是&lt;code&gt;./vaults:/vaults&lt;/code&gt;，本意是把wiki目录通过vaults里的软链接挂进去。结果Docker挂载时直接把容器内的&lt;code&gt;/vaults&lt;/code&gt;整个覆盖了，软链接尸骨无存，wiki根本看不见。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;修复&lt;/strong&gt;：不挂父目录，直接挂最终目录——&lt;code&gt;/root/wiki:/vaults/wiki&lt;/code&gt;。挂载永远挂到最深层，别指望容器里保留宿主机的目录结构。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;坑2：Docker机器文件系统只读。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;第一版想部署在Docker服务器（一台Proxmox虚拟机）上，结果文件系统是只读的emergency模式，wiki写不进去。排查半天虚拟机文件系统问题，最后解决方案简单粗暴：&lt;strong&gt;换到主机上部署&lt;/strong&gt;。基础设施出问题时，绕过去有时候比修好它更快。&lt;/p&gt;
&lt;p&gt;另外还有条数据安全规则值得单独说：&lt;strong&gt;双写策略本身冗余，也是备份&lt;/strong&gt;。wiki是纯Markdown文件，随时可以整体拷走；向量库丢了也能从会话记录重建。数据永远有一个&amp;quot;人能直接读&amp;quot;的副本，是我给自己定的底线。&lt;/p&gt;
&lt;h2 id="一年了它到底值不值"&gt;一年了，它到底值不值
&lt;/h2&gt;&lt;p&gt;说真话：&lt;strong&gt;用得比我想象中少，但每次用都值回票价。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;我查它的场景主要有三类：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;&amp;ldquo;上次那个问题怎么解决的？&amp;rdquo;&lt;/strong&gt;——排障结论最常见，命中最准&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;写文章时找素材&lt;/strong&gt;——37个wiki页面就是37个现成选题库&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;ldquo;我之前对X的态度/结论是什么？&amp;rdquo;&lt;/strong&gt;——画像类记忆，防止自我重复&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;检索体验的主观感受：排障类、决策类命中率很高，基本第一页就有答案；闲聊类的内容命中一般，但那些本来也不值得记。&lt;/p&gt;
&lt;p&gt;最意外的收获是&lt;strong&gt;wiki成了写作资产&lt;/strong&gt;。37个页面里的实体页（比如某个开源项目的分析）稍作扩写就是一篇公众号文章。知识库和内容生产打通了，这是当初没预料的。&lt;/p&gt;
&lt;p&gt;给想复刻的人三条建议：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;先定&amp;quot;不入库&amp;quot;规则，再定入库规则&lt;/strong&gt;——拒绝的纪律决定知识库的寿命&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Markdown是你永远的底牌&lt;/strong&gt;——任何方案，数据必须是人能直接读的纯文本&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;别追求一次建全&lt;/strong&gt;——我的wiki是37个页面慢慢长出来的，第一周只有29个，其中一半还是批量导入的旧料&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;一年前我的顾虑是&amp;quot;AI记的东西我能信吗&amp;rdquo;。现在的问题是相反的：翻着这份自己生长的wiki，我偶尔会忘了某个页面是&amp;quot;我知道的&amp;quot;还是&amp;quot;AI帮我记住的&amp;rdquo;。&lt;/p&gt;
&lt;p&gt;后来想通了——这不就是第二大脑的本意吗。&lt;/p&gt;
&lt;p&gt;（所有数据实测于2026-10-13，统计命令：&lt;code&gt;find ~/wiki -name &amp;quot;*.md&amp;quot; | wc -l&lt;/code&gt; 和 ChromaDB 元数据查询，欢迎自己跑一遍验证。）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;相关：Obsidian 知识管理、AI 自动归档、向量数据库检索、Ignis 自托管&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>