ultracode 出現在 Claude Code 的 /effort 滑桿裡,和各個 effort 檔位放在一起,但 Claude Code 文件把它描述成另一回事。Model configuration 頁面寫道:「Ultracode is a Claude Code setting rather than a model effort level: with it on, Claude orchestrates dynamic workflows for substantive tasks, at whichever effort level the session runs at.」(ultracode 是 Claude Code 的一項設定,而不是模型的 effort 檔位:開啟後,無論工作階段處在哪個 effort 檔位,Claude 都會為實質性任務編排動態工作流程。)

ultracode 開啟了什麼

依 Dynamic workflows 頁面的說法,動態工作流程是「a JavaScript script that orchestrates many subagents at once」(一個同時調度許多子代理的 JavaScript 腳本)。Claude 依任務寫出腳本,由執行環境在背景執行,工作階段在此期間仍可正常使用。

文件表示,開啟 ultracode 後,Claude 不再等你開口,會為每個實質性任務規劃工作流程,並由 Claude 判斷哪些任務需要工作流程。一個請求可能接連變成好幾個工作流程:一個用來理解程式碼,一個用來修改,一個用來驗證。

要使用工作流程,不一定要開啟 ultracode。文件說,如果只想讓某一個任務以工作流程方式執行、又不改動工作階段設定,可以在提示詞中加上 ultracode 這個關鍵字,或直接用自己的話說,例如「use a workflow」。

怎麼開啟

文件列出這幾種開啟方式:

  • 執行 /effort ultracode,在目前的工作階段中開啟;執行 /effort ultracode off 關閉。在 /effort 滑桿中按 Tab 切換 Ultracode 開關,再按 Enter 確認。
  • 用 claude --effort ultracode 啟動,工作階段會以 xhigh 檔位啟動,同時開啟 ultracode。
  • 在設定檔中寫入 "ultracode": true,之後每個工作階段啟動時都會開啟。

給 --effort 參數傳入 ultracode 需要 Claude Code v2.1.203 以上。/effort ultracode off 的寫法、滑桿開關,以及在 xhigh 以外的檔位上保持 ultracode 開啟,需要 v2.1.284 以上。工作流程被關閉,或模型不支援 xhigh 檔位時,ultracode 無法使用。

ultracode 和 xhigh、max 有什麼關係

Claude Code 的 effort 檔位有 low、medium、high、xhigh、max 五檔。文件對 xhigh 的描述是「Deeper reasoning at higher token spend」(花更多 token 做更深的推理),對 max 的描述是「the deepest reasoning level」(最深的推理檔位)。ultracode 也列在同一張表中,但描述是「A Claude Code setting rather than a level: plans a dynamic workflow for each substantive task at any effort level」(是 Claude Code 的設定而不是檔位:在任何 effort 檔位下都為每個實質性任務規劃動態工作流程)。也就是說,effort 檔位和 ultracode 是分開設定的:用 /effort 或 ultracode 設定開啟、關閉 ultracode,不會改動 effort 檔位;選擇一個檔位,ultracode 也維持原樣。只有 --effort ultracode 參數和 Agent SDK 的 effortLevel: "ultracode" 會同時把檔位設為 xhigh。

文件也說,在 v2.1.284 之前,開啟 ultracode 會把工作階段設為 xhigh,選擇別的檔位則會把它關閉。effortLevel 設定和環境變數 CLAUDE_CODE_EFFORT_LEVEL 都不接受 ultracode。文件另外介紹了一個關鍵字 ultrathink:它只在當前這一輪要求更深的推理,不改變工作階段的 effort 設定,傳給 API 的 effort 檔位也不變。

為什麼這麼耗額度

Dynamic workflows 頁面直接寫明了成本:「This applies to every task in the session, so each request uses more tokens and takes longer than the same request without a workflow. On a subscription plan those tokens draw on your usage limits, so a session with ultracode on reaches a session or weekly limit sooner than the same work with it off.」(這適用於工作階段中的每個任務,所以每個請求都比不用工作流程的同一請求用掉更多 token、花更長時間。在訂閱方案上,這些 token 會計入你的用量額度,因此開啟 ultracode 的工作階段,會比關閉時做同樣的工作更快碰到工作階段或每週上限。)

這些 token 花在哪裡,文件的其他部分也有寫到。首先是許多 AI 代理同時執行:工作流程預設最多同時執行 16 個 AI 代理,Claude Code 可用的 CPU 較少時會更少。用環境變數 CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS 可以把這個上限改成 1 到 256 之間的任意值(需要 v2.1.269 以上),一次執行總共最多 1,000 個 AI 代理。其次,這些 AI 代理使用的是工作階段的模型。如果沒有其他地方替工作流程中的 AI 代理指定模型,它就使用工作階段目前的模型,所以工作階段用的是大模型,工作流程中的 AI 代理也會用這個大模型。

另外,有幾項檢查會被略過。文件表示,開啟 ultracode 就等於「already opts you in to large runs」(已經同意大規模執行),所以開啟期間有三項檢查不再生效:平時工作流程預計啟動超過 25 個 AI 代理、或預估 token 總量超過 150 萬時會出現的 Large workflow 提醒不再顯示;對 Claude 用 Agent 工具啟動的子代理,不再執行工作階段的並行子代理上限;在 auto 權限模式下,第一次啟動工作流程時不再請你確認。文件列出的這幾項中,不包括工作流程同時執行 16 個 AI 代理的上限。

怎麼控制用量

文件建議,回到日常工作時用 /effort ultracode off 關閉 ultracode;或不在整個工作階段中開啟,只在單一任務的提示詞中使用 ultracode 關鍵字。執行大型任務前,文件建議先看一下 /model,並請 Claude 在不需要最強模型的階段改用較小的模型。

文件也建議先在一小塊範圍上試,例如一個目錄而不是整個儲存庫。/workflows 檢視會即時顯示每個 AI 代理的 token 用量,也可以在那裡停止執行。想讓執行少用一些 AI 代理,可以把 size guideline 設為 small。