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.md 或 AGENTS.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,後者因其使用者介面與透明度受到部分使用者青睞。