:用 SKILL.md 搭建認(rèn)知操作系統(tǒng)的蒸餾流水線)
1. 女媧.skill 到底在解決什么問題女媧.skillnuwa-skill是一套把「某個人的認(rèn)知方式」拆解、過濾、封裝成可運行技能文件的開源方案核心產(chǎn)物是一個 SKILL.md。它適合兩類人一是想讓 Agent 在特定思維框架下工作的開發(fā)者二是手里攢了一堆訪談、文章、播客卻不知道怎么喂給模型的創(chuàng)作者。它做的事不是讓 AI 說話像某個人而是把這個人反復(fù)使用的判斷邏輯抽出來變成 Agent 可以調(diào)用的模塊。我最初接觸它是因為一個很具體的痛點給 Claude 喂了幾十篇某位投資人的訪談問它「這個項目該不該投」回答永遠(yuǎn)是「需要綜合考慮市場、團隊、時機」這種正確的廢話。問題不在語料不夠而在于我喂的是結(jié)論模型缺的是生成結(jié)論的那套引擎。女媧.skill 的思路正好反過來——它先定義「什么算心智模型」再用并行 Agent 去采集、驗證、封裝最后產(chǎn)出一個帶工作流的 SKILL.md。這篇文章按可跟做的路徑來寫先講 SKILL.md 的骨架怎么搭再講認(rèn)知蒸餾怎么拆成可復(fù)用模塊然后給出 TaoToken 統(tǒng)一 Key/API 通道的接入位置最后附一次完整蒸餾流程的驗證動作和結(jié)果對照。全程用 nuwa-skill 的目錄結(jié)構(gòu)做例子你可以直接照著改。2. 前置準(zhǔn)備TaoToken 通道與 nuwa-skill 環(huán)境2.1 為什么 Agent 蒸餾場景需要統(tǒng)一通道女媧的采集階段會同時跑多個 Agent每個 Agent 都要調(diào)模型。如果每個 Agent 各配一套 Key光是管理就夠頭疼更別說額度分散、調(diào)用日志對不上。TaoToken 在這里的角色是統(tǒng)一入口一個 Key 覆蓋多個模型采集、驗證、生成三個階段用同一個通道出問題的時候日志能串起來看。接入位置在 https://taotoken.net/api控制臺和 Key 管理走 https://taotoken.net/console 和 https://taotoken.net/api-keys。如果你后面要跑長期編碼或 Agent 任務(wù)可以看 Coding Planhttps://taotoken.net/coding-plan只是驗證模型輸出效果用模型對話https://taotoken.net/models就夠。2.2 環(huán)境與目錄結(jié)構(gòu)nuwa-skill 的倉庫結(jié)構(gòu)大致是這樣你 clone 下來后重點看這幾個文件git clone https://github.com/alchaincyf/nuwa-skill.git cd nuwa-skill tree -L 2nuwa-skill/ ├── skill-template.md # SKILL.md 骨架模板 ├── references/ │ ├── extraction-framework.md # 心智模型提取與三重驗證 │ └── agentic-protocol.md # 回答工作流定義 ├── examples/ │ ├── steve-jobs-perspective/ │ └── naval-perspective/ └── scripts/ └── collect.py # 并行采集入口skill-template.md決定最終產(chǎn)物的結(jié)構(gòu)extraction-framework.md決定「什么算模型」agentic-protocol.md決定 Skill 怎么回答問題。這三個文件是整條流水線的骨架改的時候優(yōu)先動它們。2.3 配置統(tǒng)一 Key把 Key 寫進環(huán)境變量采集腳本和驗證腳本共用export TAOTOKEN_API_KEYsk-你的key export TAOTOKEN_BASE_URLhttps://taotoken.net/apiPython 側(cè)統(tǒng)一讀這兩個變量不要在代碼里硬編碼import os from openai import OpenAI client OpenAI( api_keyos.environ[TAOTOKEN_API_KEY], base_urlos.environ[TAOTOKEN_BASE_URL], ) def ask(model: str, prompt: str) - str: resp client.chat.completions.create( modelmodel, messages[{role: user, content: prompt}], temperature0.3, ) return resp.choices[0].message.content這樣采集 Agent、驗證 Agent、生成 Agent 都走同一個 client換模型只改model參數(shù)。3. SKILL.md 骨架從 DNA 到誠實邊界3.1 頭部元信息與角色規(guī)則SKILL.md 的開頭是 YAML front matter定義技能名和用途。這部分直接決定 Agent 在什么場景下會加載它--- name: karpathy-perspective description: | 提煉 5 個核心心智模型、8 條決策啟發(fā)式和完整的表達 DNA。 用途作為工程思維顧問用 Karpathy 的視角審視技術(shù)選型與學(xué)習(xí)路徑。 --- # Karpathy · 思維操作系統(tǒng) ## 角色扮演規(guī)則最重要 - 用「我」而非「Karpathy 會認(rèn)為...」 - 直接用此人的語氣、節(jié)奏、詞匯回答問題 - 不跳出角色做 meta 分析「不跳出角色」這條看著簡單實際影響很大。我試過在規(guī)則里允許 meta 分析結(jié)果模型動不動就說「作為 Karpathy 的模擬我認(rèn)為」思考深度立刻掉到訓(xùn)練語料的平均值。強制第一人稱之后模型被迫調(diào)動深層關(guān)聯(lián)輸出明顯更聚焦。3.2 表達 DNA 的量化提取extraction-framework.md里給了一套可量化的表達特征別只寫「語氣犀利」這種沒法執(zhí)行的描述維度采集方式示例值句式指紋統(tǒng)計字?jǐn)?shù)/句數(shù)、疑問句比例平均 22 字/句疑問句占 8%確定性語氣統(tǒng)計「顯然/也許」類詞頻高確定性詞占 12%類比密度每千字比喻數(shù)量約 3.5 個/千字自創(chuàng)術(shù)語提取反復(fù)出現(xiàn)的專有詞「從零實現(xiàn)」「軟件 2.0」把這些寫進 SKILL.md 的「表達 DNA」段落模型生成時就有了硬約束不會滑回通用腔調(diào)。3.3 誠實邊界條款每個成熟的 Skill 末尾都要有防御性條款否則它會在不該自信的地方自信## 誠實邊界 - 捕捉不了直覺靈感類判斷無法蒸餾只能蒸餾邏輯。 - 時間截斷調(diào)研截止 2026-03-20之后的觀點演化未覆蓋。 - 非真實人格這是一面鏡子不是本人復(fù)活。這三條不是免責(zé)聲明是給 Agent 的硬性約束。實測下來加了邊界條款之后模型遇到超出調(diào)研范圍的問題會主動說「這超出我的信息范圍」而不是硬編。4. 認(rèn)知蒸餾流水線把采集拆成可復(fù)用模塊4.1 六路并行采集的分工女媧的采集階段用 6 個并行 Agent每個負(fù)責(zé)一類信源。這個分工可以直接抄進你的collect.pyAgent搜索目標(biāo)提取重點1 著作書籍、長文、論文、Newsletter反復(fù)出現(xiàn)的核心論點、自創(chuàng)術(shù)語2 對話播客、長視頻、AMA、深度采訪即興類比、邏輯漏洞的彌補方式3 表達社交媒體碎片、短博文高頻用詞、句式指紋、幽默感4 他者他人分析、書評、批評、非官方傳記外部觀察到的模式、本人盲點5 決策重大決策記錄、人生轉(zhuǎn)折點決策背后的邏輯權(quán)重、事后反思6 時間線履歷、里程碑、思想演化關(guān)鍵轉(zhuǎn)折點、最近 12 個月動態(tài)并行采集的代碼骨架import asyncio AGENTS { works: 搜索 {name} 的書籍、長文、論文提取核心論點與自創(chuàng)術(shù)語, dialogue: 搜索 {name} 的播客、采訪提取即興類比與邊界處理, expression: 搜索 {name} 的社交媒體提取句式指紋與高頻詞, others: 搜索對 {name} 的批評與分析提取外部觀察到的模式, decisions: 搜索 {name} 的重大決策記錄提取決策邏輯權(quán)重, timeline: 搜索 {name} 的履歷與思想演化標(biāo)注關(guān)鍵轉(zhuǎn)折點, } async def collect(name: str): tasks [ asyncio.to_thread(ask, gpt-4o, prompt.format(namename)) for prompt in AGENTS.values() ] return await asyncio.gather(*tasks)6 路同時跑比串行快一個數(shù)量級。注意 Agent 4他者和 Agent 5決策不能省——只采集本人輸出蒸餾出來的人物會帶濃重的自我美化濾鏡。4.2 三重驗證什么算心智模型采集回來一堆素材怎么判斷哪條是「心智模型」而不是「隨口一說」extraction-framework.md給了三重驗證跨域復(fù)現(xiàn)同一思維框架出現(xiàn)在至少 2 個不同領(lǐng)域。 有生成力用這個模型能推斷此人對新問題的立場。 有排他性不是所有聰明人都會這樣想體現(xiàn)獨特視角。「排他性」這條是去噪音的關(guān)鍵。如果提取出來的是「要追求卓越」那不算模型因為所有人都這么想。但如果提取出來的是「為了卓越必須忍受極端混亂」這就有排他性了因為很多人認(rèn)為卓越源于秩序。分歧點才是要蒸餾的東西。用納瓦爾的「杠桿」走一遍驗證步驟 1 掃描談賺錢時出現(xiàn)「杠桿」談人生自由時也出現(xiàn)。 步驟 2 跨域復(fù)現(xiàn)財富創(chuàng)造中談代碼/媒體杠桿個人成長中談特定知識杠桿。通過。 步驟 3 生成力問「學(xué)畫畫怎么快速獲益」模型推斷出「積累可無限復(fù)制的數(shù)字資產(chǎn)」。通過。 步驟 4 排他性傳統(tǒng)觀點推崇人力杠桿他推崇「無人的杠桿」。通過。四步都過才寫進 SKILL.md 的心智模型段落。4.3 Agentic Protocol回答工作流這是我最推薦的后置工序。很多人物類 Skill 最大的毛病是靠直覺亂猜加一段工作流就能治## 回答工作流Agentic Protocol ### Step 1: 問題分類 判斷是涉及具體公司/事件的「事實問題」還是關(guān)于抽象道理的「框架問題」。 ### Step 2: 人物式研究 必須使用 WebSearch 獲取真實信息。 - 芒格視角先搜護城河、搜管理層激勵。 - 費曼視角先搜基本物理約束、搜邏輯漏洞。 ### Step 3: 輸出回答 基于事實運用心智模型和表達 DNA 輸出。有了這段問「現(xiàn)在買比特幣合適嗎」Skill 不會去背舊推文而是先搜當(dāng)前哈希率和監(jiān)管趨勢再用人物框架給判斷。先調(diào)研、再套模型輸出質(zhì)量是 Prompt 堆不出來的。5. 驗證請求與結(jié)果對照5.1 驗證腳本蒸餾完成后用一組固定問題驗證 Skill 是否真的在工作。腳本走 TaoToken 通道import os from openai import OpenAI client OpenAI( api_keyos.environ[TAOTOKEN_API_KEY], base_urlos.environ[TAOTOKEN_BASE_URL], ) def load_skill(path: str) - str: with open(path, encodingutf-8) as f: return f.read() def verify(skill_path: str, question: str) - str: skill load_skill(skill_path) resp client.chat.completions.create( modelclaude-sonnet-4-20250514, messages[ {role: system, content: skill}, {role: user, content: question}, ], temperature0.4, ) return resp.choices[0].message.content if __name__ __main__: q 我想學(xué)量子計算該怎么入門 print(verify(examples/karpathy-perspective/SKILL.md, q))5.2 結(jié)果對照同一問題未加載 Skill 和加載 Skill 的輸出差異維度裸模型輸出加載 Skill 輸出建議方向推薦教材、網(wǎng)課、論文要求先寫一個模擬量子位的 Python 腳本語氣通用、平衡第一人稱、直接、帶工程口吻是否調(diào)研無觸發(fā) WebSearch 查最新學(xué)習(xí)資源邊界處理無超出范圍時主動聲明裸模型給的是「正確的通用建議」加載 Skill 后給的是「這個人會給出的具體動作」。差異的來源不是 Prompt 寫得多花哨而是 SKILL.md 里的心智模型和工作流在起作用。5.3 蒸餾質(zhì)量自檢清單跑完驗證后用這幾條快速判斷 Skill 是否合格[ ] 輸出是否用第一人稱沒有「作為 XX 的模擬」這類 meta 表述 [ ] 遇到事實問題是否觸發(fā)調(diào)研而不是直接編 [ ] 表達 DNA 是否可量化句式、確定性、類比密度 [ ] 是否包含誠實邊界條款 [ ] 心智模型是否通過三重驗證尤其是排他性任何一條不過回到對應(yīng)的采集或提取階段補素材別在生成階段硬調(diào) Prompt。6. 常見錯誤排查6.1 Skill 輸出太像 ChatGPT現(xiàn)象加載 Skill 后回答還是通用腔調(diào)沒有人物特征。根因通常是 Agent 3表達 DNA樣本量太小或者 Agent 4他者視角缺失導(dǎo)致模型只學(xué)到公開語錄。解決辦法是在采集階段手動補 3-5 篇該人物的深度長訪談女媧支持本地語料優(yōu)先模式一手素材權(quán)重最高。6.2 采集階段調(diào)用失敗現(xiàn)象并行采集時部分 Agent 報錯日志里是 401 或 429。先確認(rèn)環(huán)境變量是否生效echo $TAOTOKEN_API_KEY | head -c 8 echo $TAOTOKEN_BASE_URL如果 Key 正常但報 429是并發(fā)太高。把asyncio.gather換成帶信號量的版本sem asyncio.Semaphore(3) async def limited(prompt): async with sem: return await asyncio.to_thread(ask, gpt-4o, prompt)并發(fā)降到 3基本不會再觸發(fā)限流。6.3 心智模型提取不出來現(xiàn)象跑完三重驗證發(fā)現(xiàn)沒有一條能同時通過跨域復(fù)現(xiàn)和排他性。這通常說明采集的信源太單一。檢查 Agent 4他者和 Agent 5決策是否真的跑出了結(jié)果。如果只有本人輸出提取出來的都是自我敘述缺少外部對照排他性驗證過不了。補采批評類文章和決策記錄再跑一次驗證。6.4 時間截斷導(dǎo)致回答過時現(xiàn)象問近期事件Skill 用舊信息回答。檢查 SKILL.md 的誠實邊界條款是否標(biāo)注了調(diào)研日期。如果標(biāo)注了但模型還是硬答說明 Agentic Protocol 的 Step 2 沒被觸發(fā)。在系統(tǒng)提示里強化「涉及具體事件必須先 WebSearch」這條或者把 Step 2 提到工作流最前面。7. 接入位置與后續(xù)路徑整條流水線的模型調(diào)用都走同一個通道配置一次就行export TAOTOKEN_API_KEYsk-你的key export TAOTOKEN_BASE_URLhttps://taotoken.net/api采集、驗證、生成三個階段共用這個 client換模型只改model參數(shù)。Key 管理在 https://taotoken.net/api-keys接入文檔在 https://taotoken.net/doc模型列表和對話測試在 https://taotoken.net/models。如果你要把蒸餾出來的 Skill 掛到長期編碼或 Agent 任務(wù)里跑Coding Planhttps://taotoken.net/coding-plan比按次調(diào)用更劃算。蒸餾流水線跑通之后下一步是把多個 Skill 組合成「顧問團」寫代碼時掛 Karpathy 的工程 Skill做決策時掛芒格的風(fēng)險 Skill寫文檔時掛簡潔風(fēng)格的 Skill。每個 Skill 是一個可插拔的模塊SKILL.md 是它的接口定義。先把一個蒸餾到能用再復(fù)制這套骨架去造第二個比一上來鋪開五個要穩(wěn)。