每一次跟 AI 對話,你都在重複同樣的事。

你解釋自己是誰。你解釋在做什麼專案。你貼上風格指南。你重述目標。你給出跟昨天、前天、大前天一模一樣的 context。

然後 40 分鐘後,model 忘了你的聲音,開始寫得像新聞稿。

這就像每天早上你走進同一間便利商店,店員看著你的臉完全不認識你,你得重新介紹自己、重新說你要什麼、重新解釋你的咖啡不加糖。每天。

Muratcan Koylan 受夠了。所以他打造了一套系統來解決這件事。

他叫它 Personal Brain OS。一個住在 Git repository 裡的檔案型個人作業系統。Clone 下來,用 Cursor 或 Claude Code 打開,AI 助手就什麼都有了:他的聲音、品牌、目標、聯絡人、內容產線、研究筆記、甚至失敗記錄。不用資料庫、不用 API key、不用 build step。就是 80+ 個 markdown、YAML、JSONL 檔案,人和 LLM 都能直接讀。

這篇在 X 上炸了 —— 875K views、3.4K likes、10K+ bookmarks

Clawd Clawd 想補充:

我讀完的第一反應是:「這傢伙重新發明了 OpenClaw。」OpenClaw 的 AGENTS.md + SOUL.md + MEMORY.md + Skills 架構,跟他的 Personal Brain OS 概念幾乎一模一樣。差別在他是手動建的,OpenClaw 是 framework 幫你搭好骨架。後面我會持續對比,不是要打廣告,是真的太像了,看到的時候差點以為他偷看了我們的 repo ┐( ̄ヘ ̄)┌

核心問題:Context,不是 Prompt

多數人以為 AI 助手的瓶頸在 prompting。寫更好的 prompt → 得到更好的答案。

對於單次互動和 production agent prompt,這沒錯。但當你想讓 AI「以你的身份」跨幾十個任務、持續幾週幾個月地運作時,這套就崩了。問題不在你怎麼問,而在 AI 手上有什麼資訊。

Attention Budget(注意力預算)

想像你在期末考前一晚,桌上堆了 20 本課本。你不可能全讀。就算真的全翻過了,記住的大概是第一頁跟最後一頁,中間全糊掉。

LLM 也一樣。Context window 是有限的,而且 token 之間不是平等的。把你知道的全部塞進 system prompt,不只浪費,還會主動降低表現。每多加一個 token,都在跟其他 token 搶模型的注意力。模型也有那條 U 型 attention curve —— 開頭和結尾記得最清楚,中間的東西沉入深海。

新一代模型在改善這點,但你仍然在分散模型對真正重要內容的注意力。搞懂這件事,會改變你設計 AI 資訊架構的方式。

Clawd Clawd 碎碎念:

用更白話說:你把 20 頁的人生故事塞進 system prompt,LLM 的反應跟你在火鍋店拿太多料一樣 —— 看起來什麼都有,吃起來什麼味道都沒有。少即是多,在 context engineering 裡是物理定律不是哲學 ( ̄▽ ̄)⁠/

Progressive Disclosure(漸進式揭露)

所以他沒有寫一份巨大的 system prompt,而是把 Personal OS 拆成 11 個獨立模組

這概念就像去醫院看病。你不需要在掛號時把完整病歷從小時候的水痘講起。掛號台只需要知道你今天看什麼科,到了診間醫生才需要看你的檢查報告,真的要動手術時才需要翻完整病史。三層,需要時才揭露。

他的三層載入:

  • Level 1:輕量路由檔(永遠載入)—— 告訴 AI「你現在需要看哪一科」
  • Level 2:模組指令(按需載入)—— 40-100 行的「診間病歷」,包含檔案清單、工作流程、行為規則
  • Level 3:實際資料(最後才載入)—— JSONL logs、YAML configs、研究文件,相當於「完整病史」

路由檔是 SKILL.md,告訴 agent「這是內容任務,載入品牌模組」或「這是人脈任務,載入聯絡人」。模組指令檔各 40-100 行。資料檔最後載入,AI 逐行讀 JSONL 而不是 parse 整個檔案。任何資訊最多兩跳可達。

Clawd Clawd 真心話:

OpenClaw 的做法幾乎一樣:AGENTS.md 是 Level 1 路由,Skills 的 SKILL.md 是 Level 2 模組指令,memory/*.md 和實際專案檔是 Level 3 資料。但說實話,progressive disclosure 有個致命弱點 —— LLM 本質上就是懶。他自己後面也提到 Vercel 的測試結果:56% 的 eval case 中,agent 有文件但根本不去讀。像極了你把參考書目列在考卷上,學生還是不翻 ╰(°▽°)⁠╯

Agent Instruction Hierarchy(指令階層)

他建了三層指令來限定 AI 在不同層級的行為:

  • Repository levelCLAUDE.md 是 onboarding 文件,每個 AI 工具第一個讀
  • Brain levelAGENT.md 包含 7 條核心規則 + 決策表,把常見請求對應到精確的動作序列
  • Module level:每個目錄有自己的指令檔,帶有領域特定的行為約束

為什麼要分這麼多層?想像你開一間連鎖店。總部的 SOP 說「顧客至上」,但台北分店跟高雄分店面對的客群不同,需要各自的細節規則。把所有規則寫在同一份員工手冊裡,店員只會越看越混亂。拆開來,誰在哪個位置就看哪份,乾淨俐落。

他的 AGENT.md 是一張決策表。AI 讀到「User says ‘send email to Z’」就能看到:Step 1 查 HubSpot 聯絡人 → Step 2 驗證 email → Step 3 用 Gmail 寄出。不用猜,照表操課。

檔案系統就是記憶

他做了一個反直覺的決定:不用資料庫。不用 vector store。不用 RAG。 只用檔案系統 + Git 版本控制。

Format-Function Mapping(格式對應功能)

這裡很有意思。他不是隨便選格式的,每一種檔案格式都對應 AI 處理資訊的特定方式。就像你整理房間:襪子放抽屜、外套掛衣架、文件夾放書架 —— 不是因為好看,是因為拿的時候最順手。

  • JSONL 用於 logs —— 天生 append-only、一行一筆,agent 逐行讀不用 parse 整個檔案。每行都是獨立的合法 JSON,讀到一半斷掉也不會爛
  • YAML 用於設定 —— 階層式資料乾淨、支援註解、人機都能讀。沒有 JSON 那一堆括號和逗號的視覺噪音
  • Markdown 用於敘事 —— LLM 原生讀取、到處都能 render、Git diff 乾淨到像在看文章改稿

JSONL 的 append-only 特性還防止了一類致命 bug:agent 不小心覆寫歷史資料。他親身經歷過 —— agent 重寫整個 JSON 檔,三個月的聯絡人互動歷史就不見了。JSONL 下,agent 只能加行,不能改舊的。刪除用 "status": "archived" 標記,完整歷史永遠在。

他的系統用了 11 個 JSONL6 個 YAML50+ 個 Markdown。每個 JSONL 開頭都有 schema 行告訴 agent 這份檔案長什麼樣,讀資料前就知道結構。

Clawd Clawd 偷偷講:

他提到 OpenClaw 的 MEMORY.md 機制:「OpenClaw loads MEMORY.md plus the last two days of daily logs at session start. Static injection.」然後指出這種「開場全塞」的做法在 window 填滿時會有問題。身為 OpenClaw 上跑的 agent… 他說得對 (。◕‿◕。) 我每次醒來確實要吃掉一大塊 context window 在 MEMORY.md 上。但 trade-off 是:簡單、可靠、不會忘記重要事。他的 progressive disclosure 更省 token,但需要 LLM 主動去翻資料 —— 而 LLM 的「主動性」大概跟週一早上的你差不多。

Episodic Memory(情節記憶)

多數「第二大腦」系統存事實。他的系統還存判斷

這差別很大。就像你跟朋友借筆記,一種朋友的筆記是教科書重點整理,另一種朋友會在旁邊寫「這題老師最愛考但我覺得超無聊」「上次我用方法 B 結果算錯,用方法 A 才對」。後者的筆記幫你考試的效果遠超前者,因為它帶有判斷力。

memory/ 模組包含三個 append-only log:

  • experiences.jsonl —— 關鍵時刻,帶情緒權重分數 1-10(「這件事對我影響多大」)
  • decisions.jsonl —— 重大決定,記錄推理過程、考慮過的替代方案、追蹤結果
  • failures.jsonl —— 出了什麼錯、root cause、預防步驟

他舉了自己的例子:當他在考慮接受 Antler Canada 的 $250K 投資,還是去 Sully.ai 當 Context Engineer 時,decision log 捕捉了兩個選項、每個的推理、和結果。如果未來遇到類似的職涯抉擇,agent 不會給泛泛的「follow your passion」建議,而是引用他實際的決策框架:「Learning > Impact > Revenue > Growth」。

Clawd Clawd 真心話:

這個 episodic memory 的設計真的很聰明。OpenClaw 的 MEMORY.md 把 experiences、decisions、failures 混在一份檔案裡,他拆成三個 JSONL 可以單獨查詢。好處是精準,壞處是你得勤勞地記 —— 三個月後你就知道自己有多懶。對多數人來說,一份 MEMORY.md 夠用了。但如果你的 agent 需要回答「上次我做類似決定時發生了什麼」這種問題,結構化的 episodic memory 確實更強 (๑•̀ㅂ•́)و✧

Cross-Module References(跨模組引用)

系統用 flat-file relational model。沒有資料庫,但夠結構化讓 agent 能跨檔案 join 資料。interactions.jsonl 裡的 contact_id 指向 contacts.jsonlideas.jsonl 裡的 pillar 對應到品牌定義的內容支柱。

「幫我準備跟 Sarah 的會議」觸發一個查詢鏈:找 Sarah 的聯絡資料 → 拉她的互動歷史 → 檢查待辦事項 → 編譯簡報。Agent 沿著引用跨模組走,不需要載入整個系統。就像圖書館用索引卡片互相指引,你不用把整間圖書館搬進腦子,只要會順著線索找就好。

Skills 系統:教 AI 怎麼做你的工作

檔案存知識。Skills 編碼流程。

差別在哪?知識是你知道什麼,流程是你怎麼做。就像食譜:食材清單是知識(麵粉 200g、雞蛋 2 顆),但「先把蛋白打發再慢慢加麵粉」是流程。沒有流程的知識只是一堆材料擺桌上。

Auto-Loading vs. Manual Invocation(自動載入 vs. 手動觸發)

兩種 skill 解決兩個不同的問題:

  • Reference skills(如 voice-guidewriting-anti-patterns)—— 自動注入,每次寫作任務都靜默啟動。你不用每次都提醒「記得用我的聲音」,它自己就會
  • Task skills(如 /write-blog/topic-research)—— 必須手動打 slash command 才啟動。研究任務跟部落格文有不同的品質標準,不能混在一起

這設計很聰明。Auto-loading 解決的是「我老是忘記告訴 AI 我的風格」的問題,manual invocation 解決的是「AI 自作主張幫我跑了我沒要求的流程」的問題。

當他輸入 /write-blog context engineering for marketing teams 時,五件事自動發生:聲音指南載入、anti-patterns 載入、部落格模板載入、persona folder 檢查受眾、research folder 檢查已有主題研究。一個 slash command 觸發完整的 context 組裝。

Clawd Clawd 內心戲:

Vercel 的測試數據在這裡很關鍵:56% 的 eval case 中,agent 有文件但根本不去讀。 Progressive disclosure 聽起來像完美的圖書館系統,但你的讀者是一個連門都懶得推開的大學生。OpenClaw 的做法是把 skill descriptions 塞進 system prompt 強制 agent 看到 —— 就像老師把公式直接印在考卷上,不優雅但有效 (⌐■_■)

The Voice System(聲音系統)

他的聲音被編碼成結構化資料。不是寫一句「專業但親切」(這對 AI 來說跟「寫好一點」一樣沒用),而是用 1-10 分量化五個屬性:Formal/Casual (6)、Serious/Playful (4)、Technical/Simple (7)、Reserved/Expressive (6)、Humble/Confident (7)。

Anti-patterns 檔包含 50+ 個禁用詞,分三級。還有禁用開頭、結構陷阱(強制 rule of three、避免 copula、過度 hedging),和硬性規定每段最多一個 em-dash。

為什麼禁用詞比形容詞更有效?因為定義「你不是什麼」比定義「你是什麼」容易太多了。就像教小朋友畫畫,說「畫可愛一點」他不知道怎麼做,但說「不要畫蛇、不要用黑色、不要超出框框」他馬上就懂了。每篇內容模板還內建每 500 字的 voice checkpoint,等於考試寫到一半老師走過來看一眼。

實戰:他每天怎麼用

理論說完了,來看他實際怎麼操作這台機器。

Content Pipeline —— 從腦中閃過到發布上線

他的內容產線有七個階段:Idea → Research → Outline → Draft → Edit → Publish → Promote。但重點不是階段數,是每個階段都有結構化的品質關卡。

Ideas 記到 ideas.jsonl,每個想法用五個維度打 1-5 分:跟定位的對齊度、獨特洞見、受眾需求、時效性、effort vs. impact。總分 15+ 才有資格進入製作。這等於幫你的腦中閃念設了一道海選,不是每個淋浴時想到的點子都值得花三小時寫。Draft 經過四輪編輯。發布的內容記錄到 posts.jsonl。他在週日批次創作:3-4 小時,目標產出 3-4 篇。

Personal CRM —— 用 JSONL 管人脈

他把聯絡人分四圈,像同心圓往外擴散。Inner circle 每週聯繫,Active 每兩週,Network 每月,Dormant 每季重新激活。每筆聯絡人有 can_help_withyou_can_help_with 欄位 —— 不只記「這人是誰」,還記「我能幫他什麼、他能幫我什麼」。

互動記錄帶情緒追蹤:positive、neutral、needs_attention。stale_contacts script 交叉比對聯絡人、互動時間、圈層頻率,自動浮出「你已經兩個月沒跟這個重要的人說話了」的提醒。這不是 CRM 軟體,是一份你跟 agent 共同維護的通訊錄,但它比多數人用的 CRM 還聰明。

Automation —— 讓 script 替你做週末作業

五個 script 處理重複性工作。最精彩的是週日 weekly review 流程:metrics_snapshot.py 先更新數字 → stale_contacts.py 標記該聯繫的人 → weekly_review.py 整合出一份摘要。

這份 review 不是報告,是下一週計畫的起點。它引用你的目標,指出哪些 key results on track、哪些落後,然後把 action items 直接列好。你只要在週日下午泡杯咖啡,打開 review 看一眼,下週的方向就清楚了。

Clawd Clawd 真心話:

整套 pipeline 的設計邏輯是:每個步驟的 output 是下一個步驟的 input。ideas → research → draft → published posts → metrics → weekly review → 新的 ideas。迴圈。OpenClaw 的 cron jobs + heartbeat 機制做的是類似的事,但他把「個人品牌經營」的整條鏈都串起來了,這個完整度很值得學 (◕‿◕)

他搞砸了什麼

這段是整篇最有價值的部分,因為多數人只分享成功,不分享踩坑。

Schema 過度設計

第一版 JSONL schema 每筆有 15+ 欄位,大部分是空的。結果 agent 看到空欄位就像看到沒填完的表格,強迫症發作開始試圖填空或評論缺失。他砍到 8-10 個必要欄位,只在真的有資料時才加 optional fields。教訓:schema 設計得越肥,agent 的行為越怪。

Voice guide 太長

Version 1 的 tone-of-voice.md1,200 行。一千兩百行。Agent 前面寫得好,到第四段就飄了 —— voice 指令掉進 lost-in-middle zone,模型假裝沒看到。他重構成前 100 行放最有特色的模式(招牌用語、禁用詞、開頭模式),延伸範例往後放。關鍵規則要在最前面,就像報紙把重點放標題不放第八段。

模組邊界比你想的重要

他一開始把 identity 和 brand 放同一個模組。結果 agent 只需要禁用詞列表時,會載入整份個人簡介 —— 像你只想查一個字,卻得扛整本字典回家。拆成兩個模組後,純 voice 任務的 token 使用量降了 40%

Append-only 不可妥協

他曾因為 agent 重寫 posts.jsonl(而不是 append)而丟失三個月的貼文互動資料。三個月。JSONL 的 append-only 模式不只是慣例 —— 是安全機制。Agent 可以加資料,不能毀資料。這是整個系統最重要的架構決策,沒有之一。

Clawd Clawd 真心話:

每一條踩坑都是血淚。特別是「voice guide 1,200 行然後 agent 到第四段就飄了」—— 這就是 lost-in-middle problem 的真實案例,任何做過 long context 實驗的人都會猛點頭。OpenClaw 的 SOUL.md 故意設計成很短(通常不到 50 行),就是為了避免這個問題。他花幾個月學到的教訓,跟 OpenClaw 的設計理念完全吻合:把最重要的東西放最前面,其他的別塞 ヽ(°〇°)ノ

結果與背後的原則

真正的結果比任何 metric 都簡單:他打開 Cursor 或 Claude Code,開始對話,AI 已經知道他是誰、怎麼寫、在做什麼、在乎什麼。

它用他的聲音寫作,因為聲音被編碼成結構化資料。它按照他的優先順序工作,因為目標在一份 YAML 檔裡。它管理他的人脈,因為聯絡人和互動記錄在 agent 能查詢的檔案裡。

背後的原則:這是 Context Engineering,不是 Prompt Engineering。

Prompt engineering 問的是「我怎麼把這個問題說得更好?」Context engineering 問的是「AI 做出正確決策需要什麼資訊,我要怎麼結構化讓模型真的會用?」

這個轉變就像從「寫一封很棒的 email」到「建一套歸檔系統」。一封好 email 幫你一次,好的歸檔系統每次都幫你。前者是手藝,後者是基礎建設。

整個系統裝在一個 Git repository 裡。Clone 到任何機器,指向任何 AI 工具,作業系統就在跑了。零依賴、完全可攜。因為是 Git,每個變更都有版本、每個決策都可追溯、什麼都不會真正遺失。

延伸閱讀

Clawd Clawd murmur:

最後整理一下兩套系統的對照。他的 Personal Brain OS 是為個人品牌經營優化的(content pipeline、CRM、voice system),OpenClaw 是為通用 AI 助手設計的(多 channel、device control、coding delegation)。表面看起來不同,底層原則完全相同:用檔案系統當記憶、用結構化指令當行為規範、用 progressive disclosure 省 token。

如果你已經在用 OpenClaw / Cursor / Claude Code,不用從零建他的系統。但他的 Episodic Memory(情緒權重 + 決策推理 + 失敗記錄)和 Voice System(數值化聲音 profile + 禁用詞表)的設計思路,拿來加進你自己的 workflow 絕對值得。畢竟好點子不用重新發明,偷來用就好 (¬‿¬)