如果有任何問題或建議,歡迎隨時聯繫我:
過去三天講了 effort、adaptive thinking、還有怎麼排查回答變淺。這些都是「調參數」層級的技巧。但參數調得再對,如果 prompt 本身寫得含糊,一樣拿不到好答案——thinking 再深,也沒辦法猜中你心裡沒說出來的需求。
今天要往回退一步,講一個更根本、也更長期有效的東西:一份好 prompt 的骨架長什麼樣子。 這套骨架不會因為模型換代而失效,因為它解決的是溝通問題,不是參數問題。
官方對「什麼時候該做 prompt engineering」有個很實際的判準:如果你的問題可以透過換模型解決(例如純粹是延遲或成本問題),那該做的是選型,不是死磕 prompt。但如果問題出在「模型没有理解我要什麼」,今天這套骨架就是你要的。
本篇的技巧與範例,對照 Prompting best practices 官方文件查證。
| 天數 | 主題 | 描述 |
|---|---|---|
| Day 1 | Claude 模型怎麼選?2026 最新四階模型完整比較 | Fable 5 / Opus 5 / Sonnet 5 / Haiku 4.5 的定位、規格與適用場景 |
| Day 2 | Claude 的計價邏輯:搞懂 input / output 為什麼差 5 倍 | 不背數字,理解計價結構,建立可長期沿用的成本直覺 |
| Day 3 | 不知道用哪個模型?官方建議「從 Opus 5 開始」背後的思維 | 為什麼預設起手不是最便宜、也不是最強的那個 |
| Day 4 | Claude Haiku 4.5 適合做什麼?便宜模型的正確用法 | 便宜模型不是次等品,是專用工具 |
| Day 5 | Claude context window 是什麼?1M token 到底能塞多少東西 | 用實際檔案量換算,破除「塞越多越好」的迷思 |
| Day 6 | Claude 模型選擇決策表:一張圖判斷你該用哪一個 | 把前五天濃縮成一張可以貼在螢幕旁的決策流程 |
| Day 7 | Token 是什麼?為什麼你的 Claude 帳單比想像中貴 | 從 tokenizer 原理理解中文為什麼特別燒錢 |
| Day 8 | Claude 省 token 的 5 個實用技巧(一般使用者也適用) | 不寫程式也能立刻套用的五個習慣 |
| Day 9 | Prompt Caching 是什麼?讓重複內容只算 10% 費用 | 快取寫入與命中的計價邏輯,以及什麼時候會虧 |
| Day 10 | Claude Batch API 教學:非即時任務直接省一半費用 | 用時間換金錢,非同步任務的正確打開方式 |
| Day 11 | 新世代 tokenizer:同樣的中文為什麼變貴了 | Claude 4.7 世代換了 tokenizer,這對中文使用者的實際影響 |
| Day 12 | 對話越長越燒錢?Claude 長對話的成本陷阱與解法 | 每一輪都重算全部歷史——以及三種切斷成本累積的做法 |
| Day 13 | Claude 用量怎麼監控?成本失控前的預警機制 | 從 usage 欄位到 Console 儀表板,把帳單變成可觀測系統 |
| Day 14 | Claude effort 參數是什麼?五個檔位該怎麼設 | low / medium / high / xhigh / max 的取捨與實測建議 |
| Day 15 | Adaptive Thinking 是什麼?為什麼你不用再寫「think step by step」 | 模型自己決定何時思考,舊 prompt 技巧為何失效 |
| Day 16 | Claude 回答變淺了?檢查這兩個隱藏設定 | 排查思路:先看 effort,再看 thinking 設定 |
| Day 17 | Claude Prompt 寫法教學:官方最佳實踐的骨架 | 一個可以套用在 90% 情境的 prompt 結構 |
| Day 18 | 用 XML 標籤讓 Claude 輸出更穩定(結構化輸出教學) | 為什麼 Claude 特別吃 XML,以及怎麼設計標籤 |
| Day 19 | System Prompt 怎麼寫?角色設定的正確姿勢 | system 與 user 的分工,以及「你是一位專家」為什麼沒用 |
| Day 20 | Claude 幻覺怎麼防?降低錯誤輸出的實用做法 | 引用來源、允許說不知道、把驗證寫進流程 |
| Day 21 | Claude Code 是什麼?安裝與第一次使用完整教學 | 從安裝到跑完第一個任務,含常見卡關點 |
| Day 22 | Claude Code 省 token 設定:別讓它讀完整個專案 | CLAUDE.md、忽略規則與 context 控制的實戰配置 |
| Day 23 | MCP 是什麼?把外部工具接進 Claude 的原理與實作 | Model Context Protocol 的設計哲學與一個可跑的範例 |
| Day 24 | 前端如何呼叫 Claude API?Messages 端點入門 | 第一支 API 請求,以及為什麼不該在瀏覽器直接呼叫 |
| Day 25 | Claude 串流輸出(Streaming):打造即時回應體驗 | SSE 事件流解析與前端逐字渲染 |
| Day 26 | Claude API 錯誤處理與重試:正式環境該注意什麼 | 429 / 529 的正確退避策略與冪等性設計 |
| Day 27 | 模型分流(Model Routing)是什麼?別再一支模型用到底 | 依任務難度動態選模型的判斷邏輯 |
| Day 28 | LLM 成本優化架構:小模型前置分流 + 大模型收尾 | 一套可落地的分層架構與失敗處理 |
| Day 29 | Vibecoding 做出網站之後:AI 不會主動告訴你的那些事 | 門檻降低的是「做出來」,不是「做對」——怎麼問出你不知道要問的問題 |
| Day 30 | Claude 使用總整理:模型、成本、設定一次看懂 | 全系列濃縮成一份可以收藏的速查表 |
官方給了一個很好用的自我檢查法,我稱它「黃金法則」:
"Show your prompt to a colleague with minimal context on the task and ask them to follow it. If they'd be confused, Claude will be too."
把你的 prompt 拿給一個對這件任務沒什麼背景的同事看,請他照著做。如果他會困惑,Claude 也會。
官方的比喻是:把 Claude 想成一位聰明但剛到職、還不熟悉你們公司規範和工作流程的新人。你解釋得越精確,結果越好。這句話值得貼在螢幕旁——它比任何具體技巧都更根本,因為多數「Claude 答錯了」的案例,回頭一查都是「我以為講清楚了,其實沒有」。
把官方分散在各處的技巧,組成一個可以套用在多數情境的骨架。順序是有意義的——由「穩定不變」排到「每次都變」,這同時也呼應 Day 9 提過的快取策略。
① 角色設定(system prompt)
system: "You are a helpful coding assistant specializing in Python."
官方原文:「Setting a role in the system prompt focuses Claude's behavior and tone for your use case. Even a single sentence makes a difference.」——一句話就有感,這是 Day 19 的完整主題,這裡先當骨架的第一塊。
② 情境與動機
不要只給指令,順便說明「為什麼」:
你的回答會被文字轉語音引擎朗讀出來,所以絕對不要使用刪節號(…),
因為 TTS 引擎不知道怎麼唸這個符號。
官方的觀察是:「Claude is smart enough to generalize from the explanation.」——給了原因,Claude 能舉一反三,比單純下禁止指令更有效,也更能應付你沒預想到的邊界情況。
③ 明確直接的指令
具體到「講清楚輸出格式與限制」的程度,並且用條列步驟表達有順序性的要求:
❌ 建一個分析儀表板
✅ 建一個分析儀表板。盡可能包含相關的功能與互動,
不要只做基本款,做一個功能完整的版本。
④ 範例(few-shot / multishot)
官方稱這是最可靠的技巧之一:「Examples are one of the most reliable ways to steer Claude's output format, tone, and structure.」建議放 3 到 5 個,而且要:
<example> 標籤包起來(多個範例包在 <examples> 裡,讓 Claude 分得清「這是範例」還是「這是指令」)⑤ 輸入資料(XML 結構化)
把「指令」「情境」「輸入」分別包在對應的標籤裡(Day 18 會完整展開),例如 <instructions>、<context>、<input>。
⑥ 輸出格式規範
官方給了一個很實用的原則:告訴 Claude 該做什麼,而不是不該做什麼:
❌ 「不要用 markdown」
✅ 「你的回答請用流暢的文章段落組成」
如果還是控制不好格式,可以進一步用 XML 格式指示符:
請把文章正文寫在 <smoothly_flowing_prose_paragraphs> 標籤裡。
⑦(適用長文件時)把長內容放最前面
如果你的 prompt 涉及 20k token 以上的長文件,官方測試發現一個具體數字:
"Queries at the end can improve response quality by up to 30 percent in tests, especially with complex, multidocument inputs."
把長文件放在 prompt 最前面,問題放在最後,在複雜的多文件情境下,回答品質最多可以提升到 30%。這跟 Day 9 快取策略的「穩定內容在前」剛好是同一個排列方向,一次改動兩邊都受益。
response = client.messages.create(
model="claude-opus-5",
max_tokens=2048,
system="你是一位資深的資料隱私顧問,專精 GDPR 與 CCPA 合規審查。", # ①角色
messages=[{
"role": "user",
"content": """
你的審查結果會直接交給法務團隊做決策,所以每個結論都需要有明確的條文依據,
不能只憑印象判斷。 <!-- ②情境與動機 -->
<instructions>
1. 先從文件中摘錄與 GDPR、CCPA 合規性最相關的原文引句
2. 依據摘錄的引句,逐條分析合規風險
3. 用條列式輸出,每點不超過兩句話
</instructions> <!-- ③明確指令,含順序步驟 -->
<examples>
<example>
輸入:「我們會在使用者同意後保留資料 90 天」
輸出:符合 GDPR 第 6 條同意原則,但建議明確標示 90 天的計算起點。
</example>
</examples> <!-- ④範例 -->
<policy_document>
{{POLICY_TEXT}}
</policy_document> <!-- ⑤輸入資料,XML包起來 -->
請用條列式輸出分析結果,每點附上引用的原文段落。 <!-- ⑥輸出格式規範 -->
"""
}],
)
這個例子看起來比隨口一問長很多,但每一段都有明確的功能,不是堆砌——這正是骨架的價值:讓你知道「多寫的每一句話在幫什麼忙」,而不是憑感覺塞字數。
官方的態度很務實:這套骨架是工具箱,不是每次都要用滿。簡單、一次性的問題,直接問就好;骨架的價值在會被重複使用、或是輸出格式要求嚴格的 prompt 上——例如你的應用程式會反覆呼叫同一個 prompt 模板處理不同輸入,這時候骨架前面幾塊(角色、指令、範例)值得花時間打磨,因為打磨一次,之後每一次呼叫都受益。
Day 15 提過,adaptive thinking 加上代理式協作,已經能讓 Claude 內部處理大部分的多步驟推理,不一定需要你手動拆解。但官方也提到一種情境仍然值得手動拆——當你需要檢視中間產出、或是要強制走一套特定流程時:
"The most common chaining pattern is self-correction: generate a draft → have Claude review it against criteria → have Claude refine based on the review. Each step is a separate API call so you can log, evaluate, or branch at any point."
草稿 → 依標準審查 → 依審查結果修正,拆成三次獨立的 API 呼叫,你就能在每個階段記錄、評估,甚至視情況分支處理——這對品質要求高、需要留審計軌跡的任務特別有用,但代價是三次呼叫的成本,權衡點跟 Day 10 批次處理的邏輯類似:該不該拆,看你需不需要中間可視性,而不是預設拆比較保險。
骨架最常被誤用的方式,是把七個區塊當成每次都要填滿的表單,即使任務很簡單也硬湊。這會帶來兩個問題:多餘的內容本身要花 token(呼應 Day 2 的計價結構),以及過度結構化反而可能讓簡單任務變得不自然——一個「幫我把這句話翻成英文」的請求,套上完整的角色設定、範例、XML 標籤,不會讓翻譯更準,只是把 prompt 變長。
判斷該不該用滿骨架的簡單原則:這個 prompt 會不會被重複使用?輸出格式的一致性重不重要? 兩個問題只要有一個答案是「是」,骨架就值得投資;兩個都是「否」,直接問通常就夠了。
❌ Before:一句話打發
幫我看看這份隱私權政策符不符合規定
✅ After:套用骨架
system: 你是一位資深的資料隱私顧問,專精 GDPR 與 CCPA 合規審查。
user:
你的審查結果會交給法務團隊做決策,需要明確條文依據。
<instructions>
1. 先摘錄與合規性最相關的原文引句
2. 依摘錄逐條分析風險
3. 條列輸出,每點不超過兩句
</instructions>
<policy_document>
{{POLICY_TEXT}}
</policy_document>
Before 版本得到的答案品質完全取決於模型自己猜你要多細、要什麼格式、法務團隊看不看得懂。After 版本把「新人需要知道的背景」一次講清楚——這不是多此一舉,是把原本要靠好幾輪來回修正才能對齊的期望,一次寫進第一個請求裡,省下的是後面反覆調整的時間與 token。
今日挑戰:挑一個你目前用得還算順手、但偶爾會出錯的 prompt,套上今天的黃金法則——找一位不熟悉這個任務的朋友或同事念一遍,看他會不會卡在某個地方。那個卡住的地方,往往就是 Claude 也會誤解的地方。
反思:官方把 Claude 比喻成「聰明但剛到職的新人」,這個比喻的重點其實是在提醒我們——問題通常不在 Claude 不夠聰明,是我們沒把「新人該知道的事」講清楚。 你在跟真正的新同事交接工作時,會不會也犯同樣的毛病:以為自己講清楚了,其實漏了很多預設的背景知識?
今天的骨架不是新發明的技巧,是把 Day 1 到 Day 16 分散提過的原則,收攏成一個可以重複套用的順序:角色 → 情境動機 → 明確指令 → 範例 → 輸入資料 → 輸出格式 →(長文件時)內容前置。 每一塊都對應官方一句具體的實測建議,不是憑空排的順序。
黃金法則值得抄下來反覆用:拿給不懂背景的人看,他會不會困惑。 這個檢查比任何單一技巧都更能抓出 prompt 裡藏著的模糊地帶。
本日關鍵字回顧
明天把骨架裡的第⑤塊——XML 標籤——單獨拉出來講透:為什麼 Claude 對 XML 特別敏感、怎麼設計一致的標籤系統。
Day 18,用 XML 標籤讓輸出更穩定。