維基 - 把你的筆記彙整成一座知識庫
第 39 章:維基 — 把你的筆記彙整成一座知識庫
你有三百則筆記。你對 Acme Corp 所知道的一切都在裡面 — 三月那場談定價的會議、六月那次升級處理、真正有權簽約的那個人的名字。全都寫下來了,卻沒有一處是完整的。
維基就是 SeaMeet 對此的回答。它讀過工作區裡的每一則筆記,找出反覆出現的人、組織與主題,然後為每一個主體寫一頁:整份筆記庫對 Acme Corp 所知道的一切,就放在 Acme Corp 那一頁,並且連回每一則來源筆記。你不必歸檔,不必加標籤。你照你原本的方式繼續記筆記,維基自己跟上。
本章說明維基是什麼、怎麼建立、怎麼讀一頁、它如何自我維護,以及 — 當你開始依賴它之後最重要的那一件事 — 怎麼告訴它它錯了。
維基究竟是什麼
用 Finder 或檔案總管打開你的工作區資料夾,你會看到一個叫 _wiki/ 的目錄。整座維基就是它。裡面是:
<你的工作區>/
├── Meeting · Jun 4.md ← 你的筆記放在最上層
├── Q2 Reviews/
│ └── Acme Q2.md
└── _wiki/ ← 生成出來的知識庫
├── index.md ← 所有頁面的總索引
├── log.md ← 什麼時候變動了什麼
├── entities/ ← 組織、專案、客戶
│ └── acme-corp.md
├── people/ ← 你會見的人
│ └── alice-cheng.md
├── topics/ ← 跨多場會議的主題
│ └── pricing.md
├── meetings/ ← 每場錄下的會議一頁
└── .state/ ← 內部運作用的狀態(見下文)
每一頁都是帶 YAML frontmatter 的純 Markdown 檔。沒有任何東西被鎖在資料庫裡。就算你明天把 SeaMeet 刪了,維基仍然是一個 Markdown 資料夾:任何編輯器都打得開,任何靜態網站產生器都發佈得了,終端機裡 grep 得到。
為什麼資料夾名稱以底線開頭。 _wiki/ 是刻意對筆記樹隱藏的 — 就像 .git 和 .obsidian 一樣。它是生成出來的產物,混進筆記樹只會讓每個實體在搜尋結果中出現兩次。你改從 Wiki 分頁瀏覽它。
為什麼資料夾叫一個名字、畫面上顯示另一個。 在磁碟上這幾個桶叫 entities、people 和 topics。在應用程式裡它們標示為 Organizations、People 和 Topics。SeaMeet 會依你實際的筆記庫推導出這些標籤,寫進 _wiki/.state/sections.json — 醫師的工作區最後會出現 Patients,業務的則是 Accounts。磁碟上的名稱永遠不變,所以在一台機器上建好的維基,換一台機器讀起來仍然正確。
打開維基
點頂部導覽列的 Wiki,它在知識這一組、就在 Notes 旁邊。這個畫面的結構和 Notes 一樣:左邊一棵樹,中間一頁內容。
如果你從沒建過維基,中間會出 現一張引導卡片,上面兩個按鈕 — Take a Note 和 Start Recording — 因為沒有來源的維基無話可說。一旦有了頁面,中間就變成 Wiki Home:一個搜尋框、一行統計、Top of mind(背後來源最多的那些主體),以及 Updated this week。
側邊欄用 « 箭號收合,而且會跨工作階段記住你的選擇,和 Notes 一樣。
從一整個資料夾的筆記建立它

維基樹上方那顆 ✨ 按鈕是 Build wiki from all notes。按一下,SeaMeet 就會走過整個工作區、讀完每一則筆記,並為它找到的每一個主體寫一頁。同一顆按鈕也在 Notes 樹的工具列上,所以你不必切換畫面就能開始建立。
它是增量的,不是重建
這一點值得記牢:建立只為改動過的部分付費。 在把筆記送給 AI 之前,SeaMeet 會先對筆記內文做雜湊,跟上一次建立時的雜湊比對。一模一樣?跳過 — 不呼叫 AI,不花錢。只改了寥寥幾個字?也跳過,因為低於某個差異門檻的重讀並不值得。
所以對 ✨ 按鈕最誠實的心智模型不是「重建維基」,而是**「補進度」**。在一個三百則筆記的工作區裡,若你從昨天以來只改了四則筆記,按下去就只讀那四則,只重寫那四則所牽動的頁面。其他一切原封不動,包括你自己寫下的東西。
進度列在告訴你什麼
建立過程中,工具列下方會有一條進度列。它會經過兩個階段:
| 階段 | 它顯示什麼 | 實際在做什麼 |
|---|---|---|
| 讀取 | Read 34 of 210 notes · 118 reused from cache | 逐一讀取並編目每則筆記 — 它提到了誰、提到了什麼。「reused from cache」的數字就是雜湊短路在發揮作用。 |
| 建立 | Built 12 of 47 pages · 1 failed | 依據每一則提到該主體的筆記,把它寫成一頁。頁面就是在這個階段出現在下方的樹裡。 |
計數下面,進度列會寫出它此刻正在處理的檔案(Now reading: Acme Q2.md),並保留一小段剛完成項目的滾動清單,每項附上 ✓ 或 ⚠。如果 AI 供應商要求等待速率限制,畫面會出現一個小小的 rate limit: 41s 標記,而不是讓進度列看起來卡住。
暫停、取消、繼續
執行期間,進度列上有兩顆按鈕:
- Pause — 做完目前這一項後停下。按鈕變成 Continue,會從停下的位置接著跑。當你想把頻寬或筆電風扇要回來二十分鐘時就用它。
- Cancel — 把手上這一項做完(所以不會留下寫到一半的東西)再停。收尾期間進度列會顯示 Cancelling — finishing the current note…。
被取消的執行會留下書籤。下次你打開 Wiki 畫面,進度列會說 A previous wiki build was interrupted at 88/210. Resume?,並提供 Resume、Restart 和 Dismiss。若是執行到一半用光了 AI 供應商的每日額度,情況也一樣:SeaMeet 會存下位置、告訴你是什麼擋住了它,並在額度重置後提供 Resume。
順利跑完時,進度列會變成一行摘要 — Wiki built — 210 notes, 47 pages — 附上 Dismiss 和 Restart。
那個提醒
你不必記得要去建立。一次丟十則以上的筆記進工作區 — 匯入、同步拉下來、拖進來一整個資料夾 — SeaMeet 就會跳出提示:14 new notes since last build,旁邊一顆 Build wiki。把提示關掉,它會變成 Wiki 畫面裡一條安靜的橫幅,等你出手。
讀一頁

一個維基頁面有頁首、兩個內文區塊,以及頁尾。
頁首有上一頁與下一頁的箭號 — 維基有自己的瀏覽歷史,所以點連結再返回的行為就跟瀏覽器一樣 — 頁面標題,還有一顆紫色的 AI Generated 藥丸。把游標移上去,它會變成 Refresh from sources:只針對這一頁重讀來源、只重寫這一頁。
AI 區塊是上半部,左側是紫色邊框。這是 SeaMeet 寫的。它在應用程式裡是唯讀的;若某個主體來源充足,內容會分成幾個小節 — Overview、Facts、Recent activity、References — 以條列的原子事實為主,需要敘事時才用散文。
裡面有兩種東西可以點:
[[wikilinks]]— 指向其他維基頁面的交叉引用,寫成[[entities/acme-corp]]或[[people/alice-cheng]]。點一下就跳過去,不會離開 Wiki 畫面。SeaMeet 只在目標頁面真的存在時才產生連結;還沒有頁面的名字會維持純文字,而不是變成死連結。- 行內來源標註 — 事實後面的
[source: acme-q2.md]。點它就會打開產生這條事實的那則筆記。若有多則筆記支持同一句話,它們會被放在同一組方括號裡。
偶爾你會看到某條事實前面標著 ⚠️ Conflicting:,並且並列兩種說法。那代表你的兩則筆記講的不一樣,而 SeaMeet 不願替你選一邊。那是一條寫作指示,不是查核程序 — SeaMeet 沒有在稽核你的筆記找矛盾,它只是拒絕把恰好撞見的矛盾悄悄抹平。
使用者區塊是下半部,左側是青綠色邊框。那是一個純文字框,是你的,停手約一秒後自動儲存。下面會再談它。
頁尾有兩組標籤:
- Related pages — AI 區塊裡出現過的
[[wikilinks]]。 - Built from — 這一頁是從哪些筆記寫出來的,取自該頁 frontmatter 的
updatedFrom。點一個標籤,那則筆記就會在 Notes 畫面打開。正是這一列讓這一頁值得信任:不是「AI 說 Acme 會在 Q4 續約」,而是「這六則筆記這麼說,而且它們就在這裡」。
它是重新生成,不是修改
當某個主體的頁面被重建時,SeaMeet 不會讀舊的那一頁再去改它。它會把目錄裡每一則筆記中關於那個主體的片段全部收集起來,從頭重寫 AI 區塊,整段取代先前的內容。
這是刻意的,也正是「一座維基」和「一疊不斷追加的更新」之間的差別。一頁如果是逐則筆記打補丁補出來的,就會一路留著每一句沒人想到要刪的過期敘述,而且永遠只知道最近那一場會議。一頁如果是從整份目錄重新生成,它一次就知道全部四十七場會議、丟掉不再為真的部分,並把「Alice」「A. Cheng」和「Alice Cheng」解析成同一個人。
實務上的後果:不要編輯 AI 區塊還指望你的修改會留下來。 下一次重建就會覆蓋掉。你想保留的東西請放進使用者區塊,或以更正的形式餵回去 — 兩者下文都會談到。
它自己跟上
第一次建立之後你大概很少會再按 ✨,因為維基會隨著你工作自我維護。
當你在筆記裡打字時,SeaMeet 會在你停手後等兩分鐘,然後判斷這次編輯值不值得反應。只要下列任一條成立,就值得:
- 距離這則筆記上次觸發以來,你增加了大約 150 個字元以上,
- 你新增了一個
[[wikilink]],或 - 你新增了一個標題。
否則什麼都不會發生。改個錯字、刪掉一行贅句、重排一個項目符號 — 這些都不會觸發更新。要想成「每次你新增一則筆記」,而不是「每一次按鍵」:這個實質性判斷存在的理由,正是不讓日常的小修小補燒掉 AI 呼叫。另外每則筆記還有十分鐘的冷卻時間,所以在同一則筆記上寫很久,只會產生幾次更新,而不是一百次。
當一則筆記被讀過後,它提到的主體會被標記為需要重寫。SeaMeet 不會馬上逐一重寫,而是等三十秒,把這段期間進來的全部收攏成一次掃描。匯入二十則筆記,你得到的是對受影響主體的一次掃描,而不是二十次互相重疊的掃描。
當一場錄音結束時,它的逐字稿與 AI 摘要走的是同一條路 — 這場會議會成為一個和筆記平起平坐的來源,其中談到的人與主題會流進他們各自的頁面。
在 Notes 樹裡,右鍵點任一則筆記選 Update wiki from this note,就能讓那一則完全跳過等待。
一個工作區,一座維基

SeaMeet 的工作區就是磁碟上的一個資料夾(第 13 章)。維基住在那個資料夾裡面,位置是 <工作區>/_wiki/。光是這一件事,就解決了兩者之間所有的疑問。
從樹上方的切換器切換工作區,筆記樹、維基樹、搜尋索引和維基會一起重新掛到新的資料夾上。你的工作維基和副業維基不共用索引、不互相連結,也不可能把客戶名字漏進一頁講你週末專案的內容裡。這件事沒有設定選項,也不需要設定 — 它是資料夾位置直接推出來的結果。
切換是序列化的:若已有一次切換在進行中,下一次會等它做完,所以再快的雙擊也不可能讓筆記指向一個資料夾、維基指向另一個。
一個值得知道的例外。 由錄音產生的頁面固定在你的預設工作區,所以即使你當時正在瀏覽副業工作區,錄下的會議仍然會落進擁有你會議記錄的那座維基。
更正它

總有一天某一頁會寫錯東西。某人的職稱過時了、兩家名字相近的公司被併在一起、某個其實只是暫定的決議被寫成定案。
這裡沒有 Edit 按鈕,因為對 AI 區塊的編輯撐不過下一次重建。取而代之的做法是:把寫錯的文字選起來。 你在 AI 區塊上放開滑鼠的那一刻,就會冒出一個小視窗,顯示你選取的句子,以及一個問 What's right? 的輸入框。輸入正確內容,按 Ctrl+Enter(或 Cmd+Enter)。如果你只是為了別的目的選取文字,按 Esc 關掉它。
接著會發生兩件事。
這則更正被存成事實。 已登入時,它會存進你的帳號,因此會跟著你到每一台裝置。離線或使用自備 API 金鑰時,它會存進維基旁邊的 _wiki/.state/corrections.json。無論哪一種,它都不是套用在目前這一頁上的補丁 — 它是一條常設指示,會隨著這一頁未來每一次重寫一起帶上。一年後就算改用完全不同的一批筆記重建這一頁,你的更正仍然在,仍然具有權威。
這一頁會插隊。 被更正過的主體在下一輪重寫掃描中會排到最前面,走在所有只是等一般編輯的項目之前。AI 區塊下方會出現一行 — Corrected by you — rewrite pending — 那是你的收據,表示更正已收到、重寫就要來了。
兩個區塊,以及 AI 永遠不碰的那一半
