載入中

在 Claude Code 中選擇合適的努力程度

努力程度會告訴您的模型應該在任務上花費多少資源。何時該調低、何時該調高,以及為什麼預設值是正確的起點。

15 分鐘Claude Code

使用 Claude Code 的開發者最終都會遇到成本或用量限制。儘管如此,開發者仍希望在模型智慧的前沿工作,並且通常預設使用可用的最強大模型。

無論您使用哪個模型,另一個影響成本與 token 用量的重要調節項就是努力程度。請將努力程度與任務的複雜度相匹配;若未能如此,無論方向為何,都會產生成本。

努力程度不會改變模型所知道的內容

努力程度會告訴您的模型,應該在提示中的任務上花費多少資源。如果您將努力程度設為最低等級,模型會嘗試以盡可能少的資源達成提示的目標:更少的工具呼叫、更少的 token,以及整體更少的工作量。如果您將努力程度設為最高,則是在向模型發出訊號,表示它可以且應該使用完成提示目標所需的任意多資源。

努力程度設定的是模型工作的努力程度,而不是它所知道的內容。您選擇的模型決定了您所使用的能力等級。努力程度則是您希望該模型投入多少努力的訊號。

載入中

何時該調整努力程度

當努力程度對任務而言過低時,模型很可能會提早停止,並帶著未完成的工作回來找您。這是一個訊號,表示您所要求的內容比您所允許的努力程度更複雜。接著您就必須弄清楚它停在哪裡,並再次提示讓它繼續。最終,這可能比一開始就正確設定努力程度花費更多成本。

當努力程度過高時,您可能不會在每個提示或每個任務上都注意到:模型會使用比必要更多的 token,回應時間會更長,而且您會注意到一種過度思考的模式,或是辨識出比您實際指派的更多任務。您正在傳送「我向你描述的內容真的非常複雜且困難」的訊號,而模型會配合這個訊號,將工作視為那麼複雜。

載入中

預設值位於中間,而這並非隨意設定:它針對每個模型調校至大多數任務能在不超支的情況下完成的等級。這就是為什麼它是正確的起點。

對於您知道很簡單、不應該需要大量花費資源(時間、輪次、工具呼叫或文件讀取)的任務,您可以調低努力程度。如果您已經以預設等級執行過這類任務,可以嘗試降低一個等級執行,看看是否注意到品質上的任何差異。如果沒有,就持續每次降低一個等級,直到您注意到差異為止。

當您知道自己所描述的內容應該需要很長時間,並且需要大量輪次與反覆檢查時,就該從預設值往上調。另一個該調高努力程度的時機,是當任務是您無法自行快速檢查的內容,而您希望模型在工作過程中進行更多自我檢查。同樣的規則適用於這個方向:每次調高一個等級,重新執行,並在它開始完成您認為應該完成的事情時停止。

載入中

該調整哪個旋鈕:努力程度還是模型?

只有在提高努力程度無法解決問題時,才更換模型。是模型知道的不夠多,還是它沒有足夠努力嘗試?如果它知道得夠多但沒有足夠努力嘗試,就調整努力程度。如果它知道得夠多但工作得太努力,那同樣也是努力程度的問題。如果調整努力程度無法解決問題,而您使用的又不是最強大的模型,那就表示您所選擇的模型對這項任務而言知識不足,或能力不夠。

載入中

當您更換模型時,請重新從預設值開始

每個模型的等級名稱都相同,但相同的等級在不同模型上並不代表相同的工作量。

載入中

每當您選擇一個模型時,請從預設努力程度開始,並依需要向上或向下調整。假設您用可用的最弱模型嘗試一項困難的任務,想看看它能否以較低成本完成這項工作。在您將努力程度調到盡可能高之後,模型仍無法以您所需的品質等級完成任務,於是您換用更強的模型。請不要將努力程度留在最高;請再次從預設值開始嘗試。更強大的模型可能仍能以較低的努力程度完成任務。

載入中

每當有新模型推出時,包括您目前使用模型的更新版本,請重新檢視您一直在執行的任務。看看您是否能以更強大的模型、在較低的努力程度下獲得相同的結果,這可能會讓這些任務的成本更低。

設定努力程度

您可以透過以下任一方式變更努力程度:

僅限本次工作階段:

  • --effort 旗標: 在啟動 Claude Code 時傳入等級名稱

適用於本次及未來的工作階段:

  • /effort: 不帶任何參數執行 /effort 可開啟互動式滑桿,在 /effort 後接等級名稱可直接設定,或使用 /effort auto 重設為模型預設值
  • 在 /model 中: 選擇模型時,使用左右方向鍵調整努力程度滑桿
  • 設定: 在您的設定檔中將 effortLevel 設為 low、medium、high 或 xhigh
  • 環境變數: 將 CLAUDE_CODE_EFFORT_LEVEL 設為等級名稱或 auto

適用於單一技能或子代理:

  • 技能與子代理前置資料: 在技能或子代理的 markdown 檔案中設定 effort,以在其執行期間覆寫努力程度

您透過 /effort 設定的等級會延續到您的下一個工作階段,因此當您只想在單次執行中使用某個等級時,請使用 --effort 旗標。最高等級會使用足夠多的資源,因此除非您透過環境變數設定,否則 Claude Code 會將其限制為僅限本次工作階段,這樣您就不會不小心讓它一直保持開啟。

Ultracode 並不是一個努力程度等級。它是一個僅限本次工作階段的 Claude Code 設定,會以 xhigh 執行模型,並且對於實質性的任務,還會讓 Claude 協調動態工作流程,將工作分派給多個代理。

載入中

當有多種方法同時設定努力程度時,以下列表中最靠近頂端的方法優先。

載入中

無論上述哪個方法生效,您的組織都可能對其設定上限。在 Enterprise 方案中,管理員可以設定每個模型的最高努力程度等級。超過上限的等級不會出現在 /effort 選擇器中,如果您透過 /effort 或 --effort 要求使用該等級,Claude Code 會以上限等級執行,並告知您這一點。

實作範例

同一個提示在同一個模型上以低、預設與最高三種努力程度執行三次:播放每個等級,觀察達成相同結果所投入的工作量有多少差異。這個提示要求撰寫一個小型的 CSV 轉 JSON 腳本,並在範例檔案上進行測試,內容刻意設計得很平淡,以便讓不同努力程度之間有發揮差異的空間。

載入中

在您自己的環境中試試看

三個獨立的工作階段。在每個工作階段中執行相同的四個步驟。您需要自行整理比較結果,因為 /usage 只會回報您目前所在的工作階段。請在每次執行結束時檢查它,記下該工作階段回報的 token 數量,然後結束並重新開始下一次執行。

1. 在該次執行所對應的努力程度下,於一個全新的空資料夾中啟動新的工作階段

bash
# 從任何儲存庫之外的空資料夾
# 執行 1 · 低
mkdir effort-low && cd effort-low && claude --effort low

# 執行 2 · 預設
cd .. && mkdir effort-default && cd effort-default && claude
# 接著執行 /effort auto

# 執行 3 · 最高
cd .. && mkdir effort-max && cd effort-max && claude --effort max

該旗標(或 /effort auto)會讓每次執行都以各自的等級開始,因為一旦透過 /effort 設定,low 到 xhigh 都會延續到您的下一個工作階段。

2. 貼上相同的提示

撰寫一個將 CSV 檔案轉換為 JSON 的腳本。將其儲存為此資料夾中的 csv_to_json.py。在這個 CSV 上測試它,並將其儲存為 sample.csv:

name,team,start_date
Priya,Payments,2024-03-18
Marcus,Platform,2023-11-02
Lena,Support,2025-01-27

3. 當 Claude 將工作交還時,檢查這個工作階段使用了多少資源

/usage

尋找該工作階段的 token 總數;畫面其餘部分會依方案而有所不同。

4. 結束,然後回到步驟 1 進行下一個等級

/exit

這三個 token 數量應該會從低到最高逐漸攀升,而這三個資料夾都應該包含一個可正常運作的轉換器。將這三個腳本並排開啟:所建置內容的差異,就是您所付出成本的差異。

該保持的習慣

管理努力程度歸結為一個習慣:從預設值開始,觀察回傳的結果,並每次調整一個等級。持續這個循環,您就會知道一項任務需要什麼等級,並能向同事或管理員解釋原因。

深入了解