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