TL;DR:ultracode跟ultrathink名字像,做的事完全不同。ultrathink是塞進 prompt 的關鍵字,只讓模型「這一回合」想得更深(多給思考 token);ultracode是/effort ultracode設定,把整個 session 切成「xhigh 推理 + 自動 dynamic workflow 編排」——它不是讓 AI 想更久,而是替你的每個正經任務派出一隊 agent 去查、去改、去驗。一個調的是「腦容量」,一個調的是「要不要開一條多 agent 流水線」。本文用我自己機器上的 Claude Code binary(2.1.156)實測字串為證,把兩者、加上/effort五級,一次講清楚何時用哪個。
這篇不是抄官方文件。我把 ultracode 跟 ultrathink 兩個關鍵字直接從本機 Claude Code 執行檔裡挖出來對照,再配官方 docs 交叉驗證——所以下面寫的每個字串、每個數字,都能在你自己機器上 strings 一次驗回來。
📌 目錄
- 先說結論:兩個 ultra 根本不是同一類東西
- ultrathink 是什麼:一次性的「想久一點」
- ultracode 是什麼:把 session 變成多 agent 流水線
- 本機 binary 實證:我從執行檔裡挖出來的證據
- ultracode vs ultrathink vs /effort 一張表看懂
- 怎麼開、怎麼退:實際指令
- 踩坑:我自己用下來的三個雷
- 何時用哪個:給工程師的判斷表
- ❓ 常見問題
- 🔗 延伸資源
先說結論:兩個 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 選單裡的一個檔位。它做兩件事,缺一不可:
xhigh——比預設的 high 更深。第二點才是 ultracode 真正的殺手鐧,也是它跟 ultrathink 的本質差異。
什麼是 dynamic workflow
Dynamic workflow 是 Claude Code 在 2026-05-28 隨 Opus 4.8 一起推出的功能(research preview)。它的定義是:一段 Claude 當場寫出來的 JavaScript 編排腳本,由一個 runtime 在背景執行,過程中可以調度大量 subagent 平行幹活。
跟你平常用 subagent 的差別在「誰拿著計畫」:
| Subagent | Skill | Workflow | |
|---|---|---|---|
| 本質 | Claude spawn 的工人 | Claude 照著做的指令 | runtime 執行的腳本 |
| 誰決定下一步 | Claude,一回合一回合 | Claude,照 prompt | 腳本本身 |
| 中間結果放哪 | Claude 的 context | Claude 的 context | 腳本變數 |
| 規模 | 每回合幾個 | 同 subagent | 數十到數百個 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 驗一次。
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.154 | claude --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
ultracode 是 this 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 的 endpoint | ultracode 或單發 workflow | 要平行掃大量檔案 + 互相 review |
| 500 檔案的大 migration | ultracode | 一條對話扛不動,要 workflow 編排 |
| 上線前安全 audit,不能出包 | ultracode | 要 adversarial review、徹底優先於省錢 |
| 只想對「這一題」開 workflow | prompt 放 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 是限制本機資源占用。
🔗 延伸資源
- Claude Code 官方文件:Orchestrate subagents at scale with dynamic workflows — workflow / ultracode 的權威說明,含
/effort ultracode、16/1000 上限、approval 流程 - Anthropic 官方部落格:Introducing dynamic workflows in Claude Code — 含 Bun 移植 Rust 的實例與 adversarial 驗證機制
- Claude Code 官方文件:Adjust effort level —
/effort五級(low/medium/high/xhigh/max)的完整定義 - 本機驗證:
strings ~/.local/share/claude/versions/<你的版本>後grep -i ultracode,把本文引的字串自己驗一次 - 站內延伸:想看 Claude Code 怎麼自動化重複工作流程,可參考我其他 AI 工具實作覆盤