AI 工具 22 min read ★ Featured

ultracode vs ultrathink:不是想更久,是派 16 隻 agent

ultracode 跟 ultrathink 名字像、做的事完全不同。ultrathink 是 prompt 關鍵字,只讓模型這一回合想更深(最高 31999 thinking token);ultracode 是 /effort 設定,把整個 session 切成 xhigh 推理 + 自動 dynamic workflow 編排,替每個任務派出一隊 agent(最多 16 並行 / 單次上限 1000)。附本機 Claude Code binary 實測字串為證。

本文目錄 · 11
TL;DRultracodeultrathink 名字像,做的事完全不同。ultrathink 是塞進 prompt 的關鍵字,只讓模型「這一回合」想得更深(多給思考 token);ultracode/effort ultracode 設定,把整個 session 切成「xhigh 推理 + 自動 dynamic workflow 編排」——它不是讓 AI 想更久,而是替你的每個正經任務派出一隊 agent 去查、去改、去驗。一個調的是「腦容量」,一個調的是「要不要開一條多 agent 流水線」。本文用我自己機器上的 Claude Code binary(2.1.156)實測字串為證,把兩者、加上 /effort 五級,一次講清楚何時用哪個。

這篇不是抄官方文件。我把 ultracodeultrathink 兩個關鍵字直接從本機 Claude Code 執行檔裡挖出來對照,再配官方 docs 交叉驗證——所以下面寫的每個字串、每個數字,都能在你自己機器上 strings 一次驗回來。

📌 目錄

先說結論:兩個 ultra 根本不是同一類東西

很多人看到 ultracode 第一反應是「喔,ultrathink 的升級版?想更久的意思?」——錯,而且錯得有點離譜。

把名字拆開看就懂了:

  • ultrathink:作用在思考。讓模型在回答前多花一點推理預算(thinking token),想得更透。範圍是單一 turn
  • ultracode:作用在寫程式的整套流程。它把 session 設成 xhigh 推理,再加上一件 ultrathink 完全不做的事——自動替每個正經任務開一條 dynamic workflow,也就是派出一群 subagent 平行去做、互相 review、收斂成一個答案。範圍是整個 session
一句話分界線:ultrathink 改的是「這一題想多深」,ultracode 改的是「這一題要不要動用一隊 agent」。 前者是腦容量旋鈕,後者是工班調度開關。

這個區別不是我腦補的。下面我把證據攤開。

ultrathink 是什麼:一次性的「想久一點」

ultrathink 是個寫在 prompt 裡的觸發字。你不用改任何設定,直接在訊息裡丟一個 ultrathink,Claude Code 就會在這一回合給模型更多思考預算。

它背後的機制很單純。Claude Code 偵測到你訊息裡有這個關鍵字,會注入一段系統提示告訴模型「使用者要你這回合想深一點」。在我本機 binary 裡挖到的那段提示原文是:

The user included the keyword "ultrathink", requesting deeper reasoning on this turn. Reason as thoroughly as the task warrants.

注意關鍵字 "on this turn"——只作用在這一回合。下一則訊息不帶 ultrathink,就回到平常的思考深度。

ultrathink 對應的是 extended thinking 的最高思考預算,上限 31,999 個 thinking token。它的定位是:你臨時碰到一個硬問題(難 bug、架構抉擇、要拆一段繞死的邏輯),不想動 session 設定,丟個 ultrathink 讓它這次想透就好。

ultrathink 一下,這個 auth flow 為什麼每次 token refresh 後就 401?

用法就這麼簡單。它不會派出任何 subagent、不會開 workflow、不會跨 turn 累積。它只是一個「這次想久一點」的旋鈕。

ultracode 是什麼:把 session 變成多 agent 流水線

ultracode/effort 選單裡的一個檔位。它做兩件事,缺一不可:

  • 把推理 effort 設成 xhigh——比預設的 high 更深。

  • 開啟 standing dynamic-workflow orchestration——「standing」是重點,代表這不是一次性的,而是「整個 session 都站著等命令」。從此 Claude 自己判斷哪個任務值得開 workflow,不用你每次喊。
  • 第二點才是 ultracode 真正的殺手鐧,也是它跟 ultrathink 的本質差異。

    什麼是 dynamic workflow

    Dynamic workflow 是 Claude Code 在 2026-05-28 隨 Opus 4.8 一起推出的功能(research preview)。它的定義是:一段 Claude 當場寫出來的 JavaScript 編排腳本,由一個 runtime 在背景執行,過程中可以調度大量 subagent 平行幹活。

    跟你平常用 subagent 的差別在「誰拿著計畫」:

    SubagentSkillWorkflow
    本質Claude spawn 的工人Claude 照著做的指令runtime 執行的腳本
    誰決定下一步Claude,一回合一回合Claude,照 prompt腳本本身
    中間結果放哪Claude 的 contextClaude 的 context腳本變數
    規模每回合幾個同 subagent數十到數百個 agent
    可重跑工人定義指令整套編排
    關鍵在「中間結果放哪」。用 subagent 時,每個 agent 的輸出都回流進 Claude 的 context window,幾輪下來 context 就爆了。Workflow 把迴圈、分支、中間結果都關在腳本變數裡,只有最後答案進你的 context——所以它撐得起「上百個 agent」這種規模。

    更重要的是品質模式:workflow 可以讓獨立的 agent 互相 adversarial review——一群從不同角度找問題,另一群專門試著反駁前者的發現,反覆迭代直到答案收斂。這是單次 pass 給不出來的可信度。

    ultracode 把這一切變成自動的

    平常你要開 workflow,得在 prompt 裡明寫 workflow 這個字。ultracode 的價值就是省掉這一步:開了之後,Claude 自己判斷「這任務夠大嗎?要不要開 workflow?」。

    官方文件講得很直接:開了 ultracode,一個請求可能變成接連好幾條 workflow——一條搞懂 code、一條改 code、一條驗證。它作用在 session 裡的每個任務,所以每個請求都比低 effort 花更多 token、更久。

    這就是為什麼它叫 ultracode 而不是 ultrathink:它優化的不是「想多深」,是「寫程式這件事要動用多大的工班」。

    本機 binary 實證:我從執行檔裡挖出來的證據

    我不想只轉述官方文件,所以直接去翻自己機器上的 Claude Code 執行檔。我的版本是 2.1.156(官方要求 dynamic workflows 至少 2.1.154,我這台過關)。

    binary 在這:~/.local/share/claude/versions/2.1.156。一個 strings 下去,ultracode 相關字串全跑出來了。

    最關鍵的三條,逐字貼上(沒改一個字):

    Set effort level to ultracode (this session only): xhigh + dynamic workflow orchestration
    

    Ultracode needs dynamic workflows enabled (see /config) and an xhigh-capable model. Valid options are: low, medium, high, xhigh, max, auto

    Current effort level: ultracode (xhigh + dynamic workflow orchestration; this session only)

    第一條直接坐實「ultracode = xhigh + dynamic workflow orchestration,且只限這個 session」。第二條告訴你兩個前提:dynamic workflows 要先在 /config、且模型要支援 xhigh——不滿足的話 /effort 選單根本不會給你這個選項。

    /effort 選單本身的字面也挖到了:

    [low|medium|high|xhigh|max|ultracode|auto]

    對照之下 ultrathink 在 binary 裡是完全不同的東西——它是個 prompt 關鍵字觸發器,掛在訊息處理那條路上,跟 /effort 八竿子打不著。挖到的觸發提示前面已經貼過了("on this turn")。

    這就是 L1 等級的證據:不是某篇教學說的,是你執行檔裡寫死的字串。你現在就能在自己機器上 strings $(which claude 的真實路徑) | grep ultracode 驗一次。

    Claude Code ultracode 與 ultrathink 深度模式說明

    ultracode vs ultrathink vs /effort 一張表看懂

    把三個東西放同一張表,差異一目了然:

    維度ultrathink/effort(low~max)ultracode
    是什麼prompt 關鍵字session 設定session 設定(effort 的特殊檔)
    作用範圍✓ 只這一 turn✓ 黏住整個 session✓ 黏住整個 session
    改推理深度✓(最高 31,999 token)✓(依檔位)✓(固定 xhigh)
    自動開 workflow
    派多 agent✓(最多 16 並行 / 單次上限 1000)
    怎麼啟用訊息裡打 ultrathink/effort high/effort ultracode
    怎麼關下則訊息不打就沒了切別的檔位/effort high 退回
    適合臨時硬問題日常工作調強弱高風險、要徹底、不在乎 token
    三者不互斥。你可以平常掛 /effort high 跑日常,碰到單一硬題丟 ultrathink,要做全 codebase 等級的大工程才切 /effort ultracode

    怎麼開、怎麼退:實際指令

    前置檢查(缺一不可)

    依賴需求驗證
    Claude Code 版本≥ 2.1.154claude --version
    Dynamic workflows已在 /config 開啟/config 看 Dynamic workflows 那列
    模型支援 xhigh(如 Opus 4.8)/model 看目前模型
    三個都過,/effort 選單才會出現 ultracode 這個選項。少一個,它就不會跑出來——這不是 bug,是 binary 裡寫死的條件。

    一鍵指令

    # 1. 確認版本夠新
    claude --version          # 要 ≥ 2.1.154
    

    # 進到 Claude Code session 後,下面是 slash command:
    # 2. 確認 dynamic workflows 開了
    /config # 找 Dynamic workflows 那列,沒開就開

    # 3. 開 ultracode(整個 session 生效)
    /effort ultracode

    # 4. 做完高強度工作,退回日常檔位
    /effort high

    怎麼確認真的開了

    /effort ultracode 後,binary 會回這行(我挖到的原字串):

    Current effort level: ultracode (xhigh + dynamic workflow orchestration; this session only)

    看到 this session only 就對了。之後你丟一個正經任務(不是閒聊、不是改個錯字),Claude 會自己判斷要不要開 workflow,開了會跳 approval 卡片問你準不準跑。

    不想動 session 設定?單發一條 workflow 就好

    如果你只是想針對「這一個任務」開 workflow,不想把整個 session 切成 ultracode,更省的做法是——在 prompt 裡放一個 workflow 關鍵字

    Run a workflow to audit every API endpoint under src/routes/ for missing auth checks

    Claude Code 偵測到 workflow 這個字(binary 裡同樣有對應的注入提示),就只替這一題寫一條 workflow,不影響 session 其他訊息。這是 ultracode 的「輕量版」用法。

    踩坑:我自己用下來的三個雷

    雷一:以為 ultracode 是 ultrathink plus

    最常見的誤解。看到名字以為「ultracode 想得比 ultrathink 更久」,於是日常寫 code 全程開著 ultracode,結果 token 燒到飛起、每個請求都慢。

    真相:ultracode 的重點不是想更久(它就是 xhigh,不會比 max effort 更深),而是自動派 agent 開流水線。日常的小改動根本用不到一隊 agent,開 ultracode 純粹浪費。它是給「全 codebase bug hunt、500 檔案 migration、上線前安全 audit」這種真的大到一條對話扛不動的活用的。

    雷二:/effort 選單裡找不到 ultracode

    開了半天找不到那個選項——八成是前置沒滿足。binary 那行寫得很清楚:

    Ultracode needs dynamic workflows enabled (see /config) and an xhigh-capable model.

    兩個前提任一沒過(dynamic workflows 沒在 /config 開、或當前模型不支援 xhigh),/effort不會列出 ultracode。先去 /config 開 workflow、/model 切到 Opus 4.8 這類支援 xhigh 的模型,選項才會冒出來。

    雷三:忘了它只活在這個 session

    ultracodethis session only。你今天開了爽用一整天,明天重開 Claude Code——它自動回到預設 effort,不會記得你昨天開過。同理,session 中途如果跑去做雜事,記得用 /effort high 主動退回,不然每個雞毛蒜皮的請求都在 xhigh + 試圖開 workflow,又是一輪 token 浪費。

    順帶一提,workflow 的 resume 也只在同一個 session 內有效。你中途停掉一條 workflow 還能接著跑(完成的 agent 回傳快取結果),但一旦離開 Claude Code,下次進來就是從頭來過。

    何時用哪個:給工程師的判斷表

    情境用哪個為什麼
    卡在一個難 bug,想讓它這次想透ultrathink單發、不改 session、最高思考預算
    一個架構抉擇,要它權衡幾個方案ultrathink同上,臨時加深推理就夠
    日常寫 feature、改 code/effort high(預設)不需要 agent 工班,省 token
    批次跑簡單改動/effort low越輕越快越省
    全 codebase 找漏 auth 的 endpointultracode 或單發 workflow要平行掃大量檔案 + 互相 review
    500 檔案的大 migrationultracode一條對話扛不動,要 workflow 編排
    上線前安全 audit,不能出包ultracode要 adversarial review、徹底優先於省錢
    只想對「這一題」開 workflowprompt 放 workflow不切整個 session,輕量觸發
    判斷主軸很簡單:問題大到「一條對話 + 一個腦袋」扛不動 → 才需要 ultracode/workflow;只是這次想想深一點 → ultrathink 就夠。

    至於這套到底能撐多大——官方給的實例夠誇張:Jarred Sumner 用 dynamic workflows 把 Bun 從 Zig 移植到 Rust,約 75 萬行 Rust、通過 99.8% 既有測試、11 天從第一個 commit 到 merge。多條 workflow 接力:一條處理 Rust lifetime、後續每個檔案各派兩個 reviewer 平行移植、最後一條過夜的處理多餘的記憶體拷貝。這不是一個人盯著一條對話做得出來的規模——這正是 ultracode 這類「自動編排工班」存在的理由。

    ❓ 常見問題

    Q1:ultracode 跟 ultrathink 可以一起用嗎?
    可以但通常沒必要。ultracode 已經把 effort 固定在 xhigh,session 內每個任務都深度推理了;ultrathink 是單 turn 加深,疊在 xhigh 上邊際效益很小。要嘛日常 /effort high + 臨時 ultrathink,要嘛大工程直接 ultracode,不太需要兩個一起。

    Q2:開 ultracode 會很燒 token 嗎?
    會,而且明顯。它每個正經任務都 xhigh + 可能開 workflow,一條 workflow 動輒派數十到上百個 agent,全算進你方案的用量與 rate limit。官方明講「每個請求都比低 effort 花更多 token、更久」。所以它是「高風險、要徹底、不在乎成本」時才開,做完記得 /effort high 退回。

    Q3:我沒看到 /effort ultracode 這個選項怎麼辦?
    檢查三件事:(1) claude --version 是否 ≥ 2.1.154;(2) /config 裡 Dynamic workflows 有沒有開;(3) /model 是不是支援 xhigh 的模型(如 Opus 4.8)。三個任一沒過,選單就不會列 ultracode——這是 binary 寫死的條件,不是壞掉。

    Q4:dynamic workflow 跟我平常用的 subagent 差在哪?
    差在「計畫放哪、結果放哪」。subagent 是 Claude 一回合一回合決定 spawn 誰,每個結果回流進 context,幾輪就爆。workflow 把迴圈和中間結果關在腳本變數裡,只有最終答案進 context,所以撐得起上百 agent,而且能做 adversarial review 這種跨 agent 的品質模式。

    Q5:workflow 最多能派幾個 agent?
    單次 run 上限 1000 個 agent,同時並行最多 16 個(CPU 核心少的機器會更少)。這兩個上限是 runtime 寫死的——1000 是防無限迴圈失控,16 是限制本機資源占用。

    🔗 延伸資源

    author
    陳彥彤

    AI 工程師 · AI 顧問。Java 後端 8 年、AI 工程師 2 年。AI 內訓 · AI 導入顧問 · 前後端與雲端培訓。

    support

    覺得文章有用可以到 GitHub 給個 star,或是透過信箱聊聊 AI 內訓、AI 導入顧問或前後端 / 雲端培訓。

    related

    相關文章