凌晨讀完 Anthropic 的 71KB system prompt,比所有 prompt 教學都有用
凌晨一點多,我不知道為什麼在讀 Anthropic 的 system prompt。
有人把 Claude Design 的完整提示詞丟到 GitHub 了。71.5 KB,422 行。我本來想說睡前隨便瞄一下,結果讀到三點。
先講結論:這份東西比我讀過的所有「prompt engineering 教學」都有用。因為它不是理論,是一間公司真的在 production 跑的東西。每一條規則背後大概率都是某個踩過的坑。
幾個讓我比較有感的部分。
角色設定不是「你是 AI 助手」
它開頭第一句就是 You are an expert designer working with the user as a manager。直接給一個職業身份,然後整份 prompt 都在圍繞這個身份做框架約束。你要問問題(至少問 10 個),你要先找現有的 design system,你不能什麼都沒有就從零開始。
我以前寫 prompt 都是「你是一個很厲害的 XX」就結束了,看完覺得自己很幼稚...
Context window 的 garbage collection
每條 user message 帶一個 [id:mNNNN] 的 tag,Claude 可以主動呼叫一個叫 snip 的工具,把已經「結案」的對話段落標記為可移除。等 context 快滿了才一次清掉。
做過 LLM 應用的應該都懂 context window 管理有多痛。大部分人(包括我)的做法就是暴力砍前面的對話,或者硬塞一個 summary 進去。Anthropic 的做法是讓模型自己判斷哪段還有用、哪段可以丟。
仔細想想這其實就是 GC 的思路。模型比外部的 orchestrator 更清楚哪些上下文還 alive。
Producer 不該是自己的 QA
它有一個 fork_verifier_agent,做完設計之後會開一個獨立的 sub-agent,在另一個 iframe 裡跑截圖、檢查 layout、probe JS。通過就靜默,有問題才回報。
separation of concerns 是老生常談了,但很多人寫 AI workflow 還是同一個模型又生又查,等於左手批改右手的作業...
Supply chain security 滲透到 prompt 層
所有 React 依賴都要 pinned version 加 sha384 integrity hash。[email protected] 不能寫成 react@18。在一個設計工具的 system prompt 裡看到這種要求,Anthropic 的工程紀律有點狠。
30 幾條「不要」
我大概數了一下,整份 prompt 裡有超過 30 條 negative instruction。「不要用 scrollIntoView」「不要加 title screen」「不要主動截圖檢查」「不要在沒有 design context 的情況下從零開始做設計」。
每一條「不要」背後大概都有一個 incident report。system prompt 的演化方式跟 production code 一模一樣:靠事故驅動。
讀完的感想是,Anthropic 對「去 AI 味」的做法不是告訴模型「請自然一點」,而是用幾十條工程規則把行為邊界框死。不是靠感覺,是靠 discipline。
原始碼在 elder-plinius/CL4R1T4S 的 ANTHROPIC 資料夾,有興趣的可以自己去翻。
以上,凌晨三點看完七萬字 prompt 的讀後感。我是不是該檢討一下我的時間管理...🫠
作者:深夜debug仔