AIDive

Claude Code 一個字吃掉 2x 額度。5 個設定能封頂

AIDive · 發布

編碼 agent自動化與工作流程

開場:同樣的檢查、兩倍的用量計、五個上限

Ultracode 是一個關鍵字,也是一個開關,能把你在 Claude Code 輸入的一個請求變成一整個 agent 團隊。在一組使用相同規格的成對測試中,兩次執行都通過了同樣的隱藏檢查,而 ultracode 那次花掉了兩倍以上的 session 用量計。原因不是模型變聰明了,而是 harness 注入的一句話,加上被關掉的三道防護。

這篇文章涵蓋四件事:

  • 在方案用量計上讀到的成對測試結果;
  • 更多組對照中的 token 倍率;
  • 有一種工作,團隊找到了 66 個被植入的 bug,單一 agent 只找到 14 個;
  • 在一次執行吃掉你一整週額度之前,能替它設上限的五個設定,其中一個會在用量上限本身就讓它停下來。

ultracode 切換了什麼:關鍵字、開關、agent 工作流程

Ultracode 有兩種開法。在單一 prompt 中輸入 ultracode,會把那一個任務當成工作流程執行,不會動到 session 的 effort 等級。透過 /effort 指令打開開關,則會讓 Claude 為每個實質任務規劃一個工作流程,所以一個請求可能連續變成好幾個工作流程。

工作流程是 Claude 替自己寫的一支腳本;這支腳本分階段執行一個 agent 團隊。在一個很小的沙盒上(幾個 promise 處理很草率的檔案,要求唯讀審查),Claude 先掃過這些檔案,展開了一個名為「unhandled promise audit」的工作流程,輸入框下方出現一列任務,附有進度條、agent 數量、經過時間,以及不斷跳動的 token 總數。/workflows 指令會逐一列出每個 agent 與各自的 token 數,還有暫停、停止或重新開始的按鍵。

在那次執行中,光是為了幾行程式碼,每個 finder 在 verifier 還沒開始前就已經讀了大約 45,000 個 token。

每個 session 還帶有一個規模準則,也就是建議 Claude 不要超過的 agent 數量:

規模準則 建議 agent 數
small(Pro 預設) 少於 5 個
medium 少於 10 個

每個 agent 都會在你的對話之上送出自己的請求。工作流程從來不是一張帳單,而是每個 agent 一張帳單,而用量計把每一張都算進去。

成對測試:同樣 136 項檢查,8% 對 18%,而且它不會停

有位開發者在最高階的訂閱方案上以乾淨的設定量測了成本:同一份小型試算表應用的規格、同一個模型、同樣的 effort,一次一般執行,一次 ultracode 執行。兩者都用隱藏檢查評分,也就是模型從沒看過的測試。兩者都通過全部 136 項。

執行 結束方式 使用的 session 上限 通過的檢查
一般 自行完成,25 分鐘 8 % 136 / 136
Ultracode 76 分鐘時被時鐘切斷,仍在檢查 18 % 136 / 136

在 ultracode 那次執行裡,Claude 寫了一支唯一任務就是跑團隊的腳本:計有 12 個 agent,包括測試員、幾個評審,以及後來負責弄壞頁面的「breaker」。其中一個 breaker 確實找到了公式列的真實 bug:點到另一個儲存格後,公式列仍顯示舊的文字。

以每分鐘計算,ultracode 那次消耗上限的速度和一般執行差不多,平均還稍慢一點。它燒得並沒有比較快,只是不會停。Ultracode 不會讓 Claude 變聰明,它讓 Claude 去檢查,而每一次檢查都要你付錢。這只是一個小規格上的一組對照,而且第二次執行是被時鐘切斷的,但形狀很清楚:答案相同,卻花了兩倍以上的 session 視窗,多出來的時間全是在檢查。

為什麼會花錢:一句話和被關掉的三道防護

模型是同一個。改變的是 harness 交給它的文字;這裡的 harness 指的是 Claude Code 本身、它的工具,以及圍繞模型的指示。

當 ultracode 開啟時,Claude Code 會在寫任何工作流程之前先載入一份參考文件。這段文字告訴模型預設對每個實質任務都執行工作流程,並且包含解釋這張帳單的那句話:「The goal is the most exhaustive, correct answer you can produce, and token cost is not a constraint.」這是 harness 自己的文字,一則公開的 GitHub issue 也引用了同樣的內容。

同時有三道防護被關掉:

  1. 當一次執行排程了太多 agent 時通常會跳出的大型工作流程警告,不會出現。
  2. Session 對同時能跑多少 agent 的限制,對 Claude 自己產生的 agent 不會強制執行。
  3. 在 auto 模式下,第一次啟動不會送去請你核准。

規模準則是建議,不是上限:在沙盒上設成 small(少於 5 個 agent),ultracode 那次執行仍然產生了 9 個。公平地說,那句話是模型仍可權衡的預設值,而這些防護是為了非常大的工作才刻意拿掉的。答案一句話就說完:ultracode 不會改變模型,它把指示改成「凡事都用團隊,成本不是限制」。

倍率:三組對照、effort 階梯、30 倍那一組

第二位開發者在 Pro 方案上跑了好幾組單一 agent 對工作流程的對照,都是審查類的腳本,並在每次前後讀取用量計。

量測項目 單一 agent 工作流程
一支審查腳本的 token 約 115,000 972,000
各組對照的 token 倍率 1x 最高 18x,發現大致相同
用量計變動 1x 最高 3x
牆上時間 幾乎相同 幾乎相同

工作流程並沒有比較快完成;它花得更多,而你等的時間一樣。平行唯一划算的地方是一批彼此獨立的研究工作,agent 完成得更快,但 token 仍多了兩倍以上。

第三個測試以 API 價格,在每一個 effort 等級上各做了幾個小型應用。階梯每上一階,帳單大約翻倍,而 ultracode 落在 max 成本的好幾倍,卻從沒拿到第一。那些 token 大多是快取讀取,也就是便宜的那種;占比很小的輸出 token 卻占了將近一半的成本。

再看一組,一個城市場景:單一 agent 花了大約一小時,API 價格是幾美元。Ultracode 那次執行花了大半天、數十個 subagent,成本大約是 30 倍。

這些是整數的用量計讀數、以 API 價格計算的從零開始應用,以及一個城市場景,所以它們各自都不能當成計分板。但合在一起,模式每次都一樣:展開成多個 agent 買到的是檢查與涵蓋範圍,不是更好的答案,除非工作能拆成彼此獨立的部分。

扇出划算的地方:當裁判的測試套件,以及一句話規則

有些工作確實就是這種形狀:遷移、稽核、橫跨整個程式碼庫的掃描。

Bun 用大約 50 個動態工作流程在 Claude Code 裡,連續跑了 11 天,從 Zig 改寫成 Rust。那是超過五十萬行的 Zig,從開始到所有平台上整個測試套件全部通過,都在那幾天內完成。讓它成功的不是 agent 數量,而是裁判:一個龐大的既有測試套件,不需要任何人的意見就能判定通過或失敗。

Anthropic 的 bug 搜尋顯示了同樣的事。在一個大型程式碼庫中植入了七十個 bug,並讓單一 agent 跑了好幾次。

Agent 70 個中找到的 bug 數
單一 agent(3 次執行) 14、15、27
工作流程(3 次執行) 每次都是 66

一個但書:那個測試是在 Claude Managed Agents 上跑的,也就是 API 產品,不是 Claude Code,而且沒有給出成本。

發表串文中還提到其他回報的成果,它們看起來都很類似:依規則檔案做審查、翻譯整個程式碼庫、整理一大疊掃描頁面。發表部落格說得很直白:大多數傳統的程式開發任務並不需要一個五人審查小組。

規則是:只有在測試套件或規則集能評判輸出,而且工作能拆成彼此獨立的片段時,才展開成多個 agent。其他一律用 high 一般執行。做成對測試的人用自己的話說了同樣的意思:留給檢查本身就是工作的任務,像是橫跨數百個檔案的遷移。

替一次執行設上限的五個設定

每一個上限都放在你已經熟悉的地方。

# 設定 位置 效果
1 workflowSizeGuideline: "small" /config 的 Dynamic workflow size 下,或 settings.json 建議(少於 5 個 agent),同時也會降低大型工作流程警告的門檻
2 CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS 環境變數,啟動前先 export 預設最多同時 16 個 agent;設成 4 後,其餘的排隊,燒得比較慢,但不會殺掉這次執行
3 CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL 環境變數 讓每個工作流程 agent 都用你選的同一個模型,其他 subagent 維持原本的;較便宜的模型能讓檢查變便宜
4 ultracode 關鍵字,絕不用開關 寫在 prompt 裡;絕不用 settings 裡的 ultracode 鍵 關鍵字只把一個任務當成工作流程執行就停止;開關則讓它一直生效,直到你關掉
5 autoContinueAtUsageLimit settings 開啟:碰到上限的執行會暫停,等重置後繼續,可以不只一次;關閉:agent 在牆邊失敗,執行就此結束

另有三個習慣配合這些設定。發表部落格說,寫在 prompt 裡的預算,例如「use 10k tokens」,就會設下上限。每次執行後,/usage 會顯示近期用量有多少花在 subagent 和工作流程上,當它們占大宗時還會有警告。如果執行途中看起來不對勁,用 /workflows 面板和 x 鍵可以停止它,而已經完成的工作通常會保留下來。

這些都不會讓 agent 變便宜。它們限制的是一次執行能花掉多少 agent,以及能持續花多久。

失控的執行、上限,以及結論

有一份公開回報顯示一週的額度是怎麼消失的。在最高階的方案上,一支由模型寫成的腳本在不到一小時內啟動了 221 個 agent。第一次出現 session 上限錯誤之後,腳本仍持續派送,接下來幾分鐘又啟動了 189 個 agent。回報者自己的表格計算出,在撞牆之前各階段共用掉數千萬個 token。

階段 Token,含快取
Ground 11,063,801
Find 35,885,272
Merge 516,226
總計 47,465,299

罪魁禍首是生成腳本中的一行 fallback,大意是:如果 agent 沒有回傳任何東西,就使用原始清單繼續。合併失敗了,執行仍繼續下去。那個版本早於「在用量上限暫停」的功能,而回報者說那些 token 並不是來自失敗的 agent。併行數上限本可以讓那次執行變稀疏,而關閉自動繼續則會讓它在牆邊結束。

結論:在同一個任務、通過同樣檢查的情況下,ultracode 花掉的用量計是一般執行的兩倍以上。不是因為它比較聰明,而是因為注入的那句話和它拿掉的防護。當測試套件或規則集能評判輸出,而且各部分不必互相等待時,它才划算。其他情況下,你輸入它,然後為檢查付錢。五個設定能限制一次執行的花費:規模準則、併行數上限、工作流程模型、用關鍵字而不用開關,以及在上限處停下來。

免費資源

來源

常見問題

ultracode 在 Claude Code 裡做了什麼?
在 prompt 裡輸入 ultracode 關鍵字,會把那一個任務當成動態工作流程執行,也就是 Claude 寫的一支腳本,分階段執行一個 agent 團隊。透過 /effort 設成開關,則會讓 Claude 為每個實質任務規劃一個工作流程,直到你關掉為止。
ultracode 會多用我的 Claude Code 額度嗎?
會。在使用相同規格與相同隱藏檢查的成對測試中,一般執行用掉 session 上限的 8%,ultracode 執行用掉 18%,超過兩倍,卻拿到同樣的滿分。其他幾組對照量到最多 18 倍的 token 和最多 3 倍的用量計,而發現大致相同。
ultracode 是比較好的模型嗎?
不是。模型是同一個。Ultracode 改變的是 harness 交給模型的指示,包括「token cost is not a constraint」這句話,並關掉三道防護:大型工作流程警告、對產生的 agent 的併行數限制,以及 auto 模式下第一次啟動的核准。
Claude Code 的工作流程什麼時候值得花這些 token?
當測試套件或規則集能評判輸出,而且工作能拆成彼此獨立的片段時,例如橫跨數百個檔案的遷移、依規則檔案做的稽核,或是 bug 掃描。Bun 從 Zig 改寫成 Rust,以及 Anthropic 的 70 個被植入 bug 的測試(工作流程找到 66 個,單一 agent 找到 14 到 27 個)都是這種形狀。一般的程式開發任務用 high 一般執行即可。
我要怎麼替 Claude Code 工作流程的花費設上限?
把 workflowSizeGuideline 設成 small,export CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS=4,讓 CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL 指向較便宜的模型,在 prompt 裡用 ultracode 關鍵字而不是開關,並把 autoContinueAtUsageLimit 關掉,讓一次執行在用量牆邊結束,而不是等待重置後繼續。
我要怎麼停掉一個失控的 Claude Code 工作流程?
打開 /workflows 面板並按 x;已經完成的工作通常會保留下來。執行之後,/usage 會顯示你近期用量有多少花在 subagent 和工作流程上。

相關影片