llm-no-magic:把模型內部攤開,因為去魅是導入 AI 的第一步
導入 AI 最大的阻力,常常不是技術,是「神祕感」。團隊把模型當成一個會魔法的黑盒,於是要嘛盲目相信、要嘛盲目害怕——兩種反應都讓你做不出好的工程決策。所以我做了 llm-no-magic:一個全程在你自己 Mac 上跑(llama.cpp + Qwen3)、把模型內部一層層攤開的教學工具。沒有雲、沒有 API、沒有魔法。
一個 60 秒就翻轉直覺的畫面
打開第一個分頁,輸入「床前明月光,疑是地上」,看模型一個 token 一個 token 吐出來,旁邊是每一步的前十名機率分布。你會看到它幾乎篤定地接上「霜」——top-1 機率 94% 以上。模型背過這首詩。
接著換一句:「祖樹星上最高的山叫做」。祖樹星是我編的,世界上沒這顆星。但模型照樣很有信心地幫你編出一座山名,機率分布一樣是漂亮的尖峰。
兩個畫面並排,結論就立起來了:尖峰不等於真實,信心不等於正確。分布的形狀只反映模型有多確定,不反映它對不對。這不是 bug,是這類模型運作的本質。
為什麼這件事值得你親眼看一次
因為你對模型的整套工程判斷,都建立在這個認知上。
如果你知道模型會用一模一樣的自信講真話和胡話,你就不會再問「怎麼讓 AI 不要出錯」——那是錯的問題。你會改問「我怎麼在它出錯時攔得住」。這就是 Harness 的起點:不是把模型調到不犯錯(做不到),而是在它外面架一層你看得見、控得住的結構。
也因此我有一條不退讓的原則:驗證不能由同一個模型自己說了算。一個對錯誤答案都這麼有信心的東西,你怎麼能讓它自我審查?寫的跟審的必須是兩個獨立的脈絡,才有真正的第二意見。你在第一個分頁看到的那個尖峰,就是這條原則的全部理由。
Agent 也不是魔法,是一個迴圈
第四個分頁把「agent」這個被講爛的詞拆開給你看。模型吐出 <tool_call> 這串 token → 前端把它讀出來 → 真的去執行(真的讀寫檔、真的跑 bash、真的數檔案)→ 結果塞回對話 → 模型接著生,直到它不再要求工具、給出最終答案。
就這樣。Agent 不是模型「變聰明了」,是你在它外面接了一個會真執行、會把結果餵回去的迴圈。看懂這個迴圈,你就看懂了:agent 的能力邊界,是你給它的工具決定的,不是模型決定的。這又繞回 Harness 的同一句話——你給它什麼,就決定了它能做什麼。
我為什麼把它開源
因為去魅本身就是我想教的東西。這個工具是 MIT 授權,你可以 fork、商用、改成你自己的教材。它也能讓 AI 自己帶你跑:用 Claude Code 打開這個 repo、說一句「hi」,它會讀 AGENTS.md、自己開瀏覽器、邊操作邊講給你聽。
但工具只是載體。真正想留給你的是那個翻轉:模型不神,它只是很有信心。承認這件事,你才開始有能力把 AI 真正帶進正式環境。