Effort 等級、Ultrathink 與 Ultracode
有意識地選擇 Claude Code 的推理強度,並釐清 ultrathink、ultracode 與可強制執行的 CLI 成本上限。
你將學到什麼
第 25 堂課談的是要執行哪個模型。這堂課談另一個獨立控制項:Claude Code 要求模型投入多少推理。
完成本課後,你會理解:
- 目前各模型支援哪些 effort 等級
- 為何
ultrathink是單一回合的指示,而ultracode是 session 設定 - ultracode 如何結合
xhigh推理與 dynamic workflows - 哪些設定會保留、哪些會隨 session 結束而重設
- Claude Code 真正有文件記載的成本限制
Effort 旋鈕
Effort 控制 adaptive reasoning。較低等級偏向速度與成本;較高等級偏向更深入的推理。可用值取決於目前模型:
| 模型 | 支援等級 | 定位 |
|---|---|---|
| Fable 5 | low、medium、high、xhigh、max | 目前的 Fable 選項 |
| Opus 5 | low、medium、high、xhigh、max | 當代 Opus 世代 |
| Sonnet 5 | low、medium、high、xhigh、max | 當代 Sonnet 世代 |
| Opus 4.8 | low、medium、high、xhigh、max | 上一代 Opus 選項 |
| Haiku 4.5 | 未列為支援 effort 的模型 | 不要傳入 --effort |
本表依據 Claude Code 2.1.226 的 model configuration。可見模型、alias 與 entitlement 可能因 provider、方案及帳號而不同,請以目前環境中 /model 顯示的選項為準。對支援 effort 的模型而言,同一個名稱會依模型校準,因此 high 並不是跨模型固定的 token 預算。Haiku 4.5 未列為支援 effort 的模型,使用時不要覆寫 effort。
日常工作先使用預設值,再按需求調整:
low:範圍短小、重視延遲、對推理能力不敏感的工作medium:願意用部分能力換取成本的工作high:大多數程式工作的平衡預設xhigh:以更多 token 換取更深推理max:最深入推理,但可能出現效益遞減或過度思考
設定並確認 Effort
/effort
/effort high
/effort auto
也可以在啟動時只為該 session 指定等級:
claude --effort xhigh
在互動 session 中選取時,low、medium、high 與 xhigh 可以跨 session 保留。max 僅限當前 session,除非透過 CLAUDE_CODE_EFFORT_LEVEL 設定。設定檔的 effortLevel 只接受 low、medium、high 或 xhigh,不接受 max 或 ultracode。
環境變數的優先級最高。Skill 與 subagent frontmatter 也能為該 skill 或 worker 設定 effort,除非被環境變數覆蓋。
Ultrathink 是單回合指示
把 ultrathink 放在 prompt 的任何位置,即可要求該回合進行更深推理:
ultrathink: 找出這次 schema 變更最小且安全的遷移計畫
Claude Code 會加入 in-context 指示,但送到 API 的 effort 值不會改變,也不會更動 session 儲存的 effort。像「think hard」這類說法只是一般 prompt 文字,不是同等的觸發關鍵字。
Ultracode 是 xhigh 加上 Workflow 編排
Ultracode 不是另一個模型 effort 等級,而是 Claude Code 的 session 設定,它會:
- 對支援的模型傳送
xhigheffort; - 讓 Claude 為實質任務規劃 dynamic workflows。
在當前 session 開啟:
/effort ultracode
或啟動時就開啟:
claude --effort ultracode
CLI 形式需要 Claude Code 2.1.203 以上。Session 結束後 ultracode 會重設,且不能寫入 effortLevel 或 CLAUDE_CODE_EFFORT_LEVEL。
若只想用於一個任務,可以輸入 ultracode,或直接要求 Claude「use a workflow」。自 2.1.210 起,關鍵字只會在 human-origin 的互動輸入中觸發;不會從 -p、排程任務、轉送的 webhook 或未標記來源的 SDK prompt 靜默啟動。
Ultracode 無法使用時——例如 workflows 被停用——--effort ultracode 只會要求 xhigh,不進行 workflow 編排;若模型不支援 xhigh,仍套用一般的 model-level fallback。
成本控制:真正可強制執行的是什麼
Claude Code 並未記載 prompt-level token 指令或 workflow 全域 budget 物件。寫在 prompt 裡的 token 目標應視為指引,而非 harness 強制契約。
有文件記載的控制項是:
/workflows:查看每個 agent 的 token 使用量並停止執行- Dynamic workflow size:給 Claude 寫腳本時的建議目標,不是硬上限
- Runtime limits:每個 workflow 最多 16 個並行 agents、單次最多 1,000 個 agents
- Large workflow 警告:自 2.1.203 起,排程超過 25 個 agents 或預估超過 150 萬 tokens 時顯示;僅為警告
claude -p --max-budget-usd:non-interactive print mode 的美元硬上限claude -p --max-turns:non-interactive print mode 的回合上限
範例:
claude -p --max-budget-usd 5 --max-turns 8 \
"審查 migration,僅回傳已確認的 blocker"
這些 flags 會停止 print-mode process,但它們不是 workflow 腳本內可操作的 token pool 物件。
實務選擇規則
| 工作 | 建議起點 |
|---|---|
| 重新命名、格式化、已知的單檔修正 | low 或 medium |
| 一般實作與審查 | high |
| 困難除錯或高風險驗證 | xhigh |
| 某一回合特別困難的推理 | ultrathink |
| 適合腳本化多代理處理的大型任務 | ultracode 或明確要求 workflow |
從能可靠完成工作的最低成本等級開始。當錯誤判斷的代價高於額外推理成本時再提升 effort;只有在獨立平行工作或可重複控制流確實有價值時才使用編排。
核心洞見
Effort 與 orchestration 是不同控制項。 Effort 改變模型推理深度;Ultrathink 只提示一個回合,不更改 API effort;Ultracode 則在 xhigh 上加一層 workflow 規劃政策。把三者分清楚,才能清楚衡量品質與成本。
下一堂課
第 27 堂課進入編排層:Workflow 工具——由 JavaScript 保持控制流,subagent 提供判斷。