Claude Code 與 OpenCode 令牌開銷分析

Claude Code 與 OpenCode 令牌開銷分析

Claude Code 的令牌開銷顯著高於 OpenCode

Claude Code 在處理使用者提示之前,就需要大約 33,000 個令牌的系統提示、工具結構與腳手架,而 OpenCode 只需要約 7,000 個。這個基礎開銷佔用了模型上下文窗口的相當大比例,並增加了成本,尤其在提示快取效率不佳或任務被分派給子代理時更為明顯。

基礎令牌消耗

在受控測試中,兩個框架都被要求回覆一行文字(「OK」),測得的開銷如下:

元件 Claude Code OpenCode
系統提示 約 6.5k 令牌 約 2.0k 令牌
工具結構 約 24k 令牌 約 4.8k 令牌
腳手架 約 2.5k 令牌
首次回合總負載 約 32,800 令牌 約 6,900 令牌

Claude Code 的開銷主要來自較多的工具定義(27 個工具對比 OpenCode 的 10 個)以及更廣泛的行為準則,包括語氣規則與安全指導。即使關閉工具,Claude Code 的系統提示仍是 OpenCode 的三倍以上。

配置乘數的影響

實際使用中會加入多層令牌消耗,進一步疊加基礎開銷:

指令檔案

加入 72KB 的指令檔案(例如 CLAUDE.mdAGENTS.md)會為兩個框架的每一次請求額外增加約 20,000 個令牌。

MCP 伺服器

每個小型模型上下文協議(MCP)伺服器會在每次請求中額外增加 1,000 至 1,400 個令牌。若配置五台伺服器,則會在基礎上再增加約 5,000 至 7,000 個令牌。

子代理

委派給子代理是最顯著的令牌乘數。因為每個子代理都需要自己的啟動提示,且父代理必須再讀取子代理的對話紀錄,成本會急速上升。一次測試顯示,直接完成的任務耗費 121,000 個令牌,而分派給兩個子代理後則升至 513,000 個令牌——增幅達 4.2 倍。

效能與成本的取捨

雖然 Claude Code 的基礎較高,但它採用不同的協調策略,能在複雜的多步任務上降低總令牌數。

平行批次 vs. 串行執行

在寫入‑執行‑測試‑修正的迴圈中,Claude Code 會將多個工具呼叫合併為一次往返,而 OpenCode 則是每回合呼叫一次工具。由於基礎提示會在每次請求時重新傳送或重新讀取,Claude Code 的積極批次化導致請求次數較少(3 次對比 10 次),最終總令牌消耗趨於相近,儘管單次請求成本較高。

提示快取效率

提示快取可以降低重複前綴的成本,但其效能取決於前綴的穩定性。

  • OpenCode 在請求間保持位元相同的前綴,因而快取命中率高,快取寫入次數極少。
  • Claude Code 前綴不穩定,會產生不同的請求類型(熱身探測、主對話、子代理呼叫)並變化首次訊息的腳手架。這導致快取寫入次數顯著增加——比 OpenCode 多 5.9 倍至 54 倍——而寫入費用通常較高。

社群見解與反論

使用者與開發者指出了這兩個框架在價值主張上的幾項質性差異:

"Claude Code 不僅僅是一個框架,它是一個不同的產品……如果你使用的是 API,則完全沒有理由使用 Claude Code。"

有些使用者認為,原始令牌數量不如最終產出的智慧與工作效率重要。另一些人則認為,Claude Code 的高開銷可能是 Anthropic 的策略選擇,用以促使用戶訂閱或提升 API 收入。

社群提到的其他替代方案包括 Pi(據稱每次傳送不超過 1,000 個令牌)以及 Cline,後者因其使用者介面與透明度受到部分使用者青睞。

Sources