寫於 2026 年 8 月 20 至 21 日(補 8 月 20 日的排程),9 月才上線(部落格的發佈額度在 8 月中用完了,稿子積壓了三週)。文中的版本號與「目前」都指 8 月 20 至 21 日的狀態,Claude Code 更新很快,你讀到時可能已經又改過了。

去年這個時候,想讓它少講廢話的標準做法是在 CLAUDE.md 裡寫一行「請直接講結論,不要前言」。

我寫過。有效大約三十分鐘,然後它又開始「好的,我來幫您檢查這個檔案,首先我會先讀取相關程式碼,接著分析可能的原因……」。

於是大家開始加碼。有人把那行改成全大寫,有人加驚嘆號,有人在每次 prompt 結尾都補一句「簡短回答」。這些做法都會短暫有效,然後失效,然後你會懷疑是自己的措辭不夠強硬。

不是措辭的問題。是那行字放錯地方了。

中間這一段,大家是這樣湊合的

六月的時候我寫過 output style 的教學(Claude Code Output Styles 完整教學),當時的重點是它跟 CLAUDE.md 存的東西不同層:CLAUDE.md 存「這個專案是什麼、碰哪幾個檔」,output style 存「Claude 這個角色怎麼說話」。

當時內建的 style 只有兩個,剩下的要自己寫 markdown 丟進 ~/.claude/output-styles/。所以想要「講重點」的人,多數還是留在 CLAUDE.md 那條路上,因為自己寫一個 style 檔要動手,而在 memory 裡加一行字不用。

8 月 20 日這版把這件事收進產品裡了。

轉捩點:官方自己做了一個

v2.1.237 的 changelog 原文:

Added a built-in “Concise” output style: Claude leads with results and skips preamble and narration, while doing the work just as thoroughly. Select it under Output style in /config.

一個官方版的「請講重點」。

我原本以為這就只是把大家常寫的那段話收進去當預設值。實際去看之後發現不是。它的做法跟你在 CLAUDE.md 寫那行字,在機制上是兩件不同的事。

挖開來看

我在本機(macOS)把 Claude Code 的執行檔字串抓出來看。路徑是 ~/.local/share/claude/versions/2.1.238,也就是這台機器上目前這份執行檔。內建 style 的定義是這樣的結構(照抄挖到的字串):

1
2
3
4
5
6
7
8
9
10
11
12
Concise: {
name: "Concise",
source: "built-in",
description: "Claude responds tersely, leading with results and skipping preamble and narration",
keepCodingInstructions: true,
prompt: `You are an interactive CLI tool that helps users with software
engineering tasks. Keep your responses short and direct while
doing the work just as thoroughly.
...`,
turnReminder: "Be concise: lead with the result, skip preamble and
narration, keep only what the user needs."
}

四個欄位值得逐個看。

prompt 那一段的第一句是 You are an interactive CLI tool that helps users with software engineering tasks.,這是 system prompt 的開場句。四個內建 style 的 prompt 全部從這句開始,然後接自己的行為描述。也就是說,換 output style 換掉的是它對「我是誰」的定義,不是在一長串指示後面追加一句要求。

keepCodingInstructions: true 說明工程能力那部分的指示保留著。換說話方式不會換掉它會做的事,這跟六月那篇的結論一致。

turnReminder 是這次最有意思的東西,而且它解釋了整篇文章的標題。這句 Be concise: lead with the result, skip preamble and narration, keep only what the user needs.每一輪都會重新出現的提醒。

還有一句我在其中一個 style 的 prompt 尾段挖到,值得單獨抄下來:

1
2
Where these rules conflict with more general communication or formatting
guidance elsewhere in your instructions, these rules win.

衝突的時候,這些規則贏。

為什麼放在 CLAUDE.md 會慢慢失效

把上面兩件事合起來,答案就出來了。

CLAUDE.md 的內容是一次性載入的。它在對話開頭進來,然後你們聊了四十輪,中間讀了六個檔案、跑了十次測試、貼了三段錯誤訊息。那行「請講重點」還在 context 裡,但它前面已經堆了幾萬個 token 的其他東西,而且它跟後來出現的所有內容平等競爭注意力。

turnReminder每一輪重新注入的。它永遠是最新的那句話之一。

這件事有個生活裡的對應。你在冰箱門上貼一張「少喝可樂」的紙條——第一天有效,第三週你根本不會看到那張紙,它已經變成冰箱的一部分。而每次你開冰箱都有人在旁邊說一次「少喝可樂」,效果完全不同,甚至有點討人厭。

討人厭正是它有效的原因。

再加上那句「衝突時這些規則贏」,就把第二個問題也解掉了:你在 CLAUDE.md 裡寫的要求,跟系統本身關於溝通與格式的指引衝突時,誰贏是沒有明文規定的;output style 直接寫死了優先序。

本機這版的內建清單有四個

順手把四個都抓出來,用它們自己的 description

Style 官方描述
Proactive Claude executes immediately, minimizes interruptions, and prefers action over planning
Concise Claude responds tersely, leading with results and skipping preamble and narration
Explanatory Claude explains its implementation choices and codebase patterns
Learning Claude pauses and asks you to write small pieces of code for hands-on practice

六月我寫那篇的時候是兩個。現在是四個。

值得注意的是這四個的性質不太一樣。ExplanatoryLearning給你多一點東西(解說、練習),ConciseProactive給你少一點東西(少廢話、少打斷)。前兩個是教學工具,後兩個是行為開關。

同一個機制長出兩種完全不同用途的東西,通常是這個抽象層設計對了的訊號。

另外挖到的字串顯示 plugin 也可以提供 output-styles/ 目錄,所以 style 不只有內建跟你自己寫的,還有一條從外掛來的路。這條我沒有實際裝過帶 style 的外掛,只是看到那個載入路徑存在。

怎麼用

/config 裡選 Output style,挑 Concise。就這樣,沒有第二步。

要判斷它有沒有生效,看它回答的第一句話。生效的話第一句就是結果;沒生效的話第一句會是「我來幫您……」。

有一件事別誤會。它不會讓 Claude 少做事。changelog 那句 while doing the work just as thoroughlyprompt 裡的 while doing the work just as thoroughly 是同一件事,講的是敘述變少、工作量不變。如果你發現它連該做的檢查都跳過了,那是別的問題,不要怪 style。

反過來也要提醒:如果你的工作需要看它的推理過程(教別人、審查它的判斷、除一個很難的 bug),Concise 會讓你少掉一大塊你其實需要的資訊。那種場合 Explanatory 才對。

我實測到什麼、沒測到什麼

實測到的:本機 claude --version 回報 2.1.237、執行檔在 ~/.local/share/claude/versions/2.1.238,從那份執行檔挖出四個內建 style 的定義結構、各自的 descriptionkeepCodingInstructions 欄位、Concise 的 turnReminder 全文,以及那句「衝突時這些規則贏」。我的 ~/.claude/ 底下沒有 output-styles/ 目錄,settings.json 也沒有 outputStyle 這個 key,所以我這台目前是走預設值。

沒測到的:我沒有實際切到 Concise 跑一段對話比較前後差異,所以「每輪注入的提醒比一次性載入更有效」這件事,我的依據是機制(一次性載入 vs 每輪注入)跟那句明文的優先序宣告,不是我自己跑出來的 A/B 對照。四個 style 裡我只確認 Concise 是 8 月 20 日這版加的,Proactive 是什麼時候進來的我沒查。

字串是從二進位檔挖的,欄位名與內容是真的,但我看不到它們在執行期怎麼組裝:turnReminder 具體插在每一輪的哪個位置,我只知道它存在,不知道它長在哪。

接下來會內建什麼

從兩個變四個,這件事本身比 Concise 有意思。

output style 一開始是「你想讓它換個口氣說話」的客製點,現在正在變成產品的行為開關——Proactive 那個描述(立刻執行、少打斷、行動優先於規劃)已經不是說話方式了,那是工作方式。

如果這個方向繼續走,下一批內建的多半也是這類:不是講話風格,是行為傾向。等到那天,/config 裡那個下拉選單就不再是「語氣」的選單,而是「你今天要哪一種同事」的選單。

在那之前,先把冰箱門上那張紙條撕下來吧。它三週前就已經隱形了。

來源