DeepSeek Harness vs OpenCode:大多數開發者忽略的代幣使用差距

DeepSeek Harness 與 OpenCode,在相同模型和相同任務上進行測試。每個測試框架對你的 token 使用量的影響,為何差距是真實的,以及如何自己測量它。

DeepSeek Harness 並未納入該基準測試,因為它在兩天後才發布。這意味著有用的問題不是「哪個贏了?」,而是如何用同一模型同時執行兩個工具的工作,並在閱讀帳單時不被自己誤導。

關鍵要點

  • 在可比較的代理任務中,框架選擇可使 token 用量波動約 7 倍。
  • 用同一模型和同一儲存庫狀態來評測 DeepSeek Harness 和 OpenCode。
  • 在選擇日常使用的工具前,先使用不同的 API 金鑰。

兩台筆電透過兩種代理框架執行同一編碼任務

兩台筆電透過兩種代理框架執行同一編碼任務

公平的設定:同一個模型、同一個任務、兩個終端。

公開基準測試告訴我們什麼

Composio 使用 DeepSeek V4 Flash,對 8 個代理框架執行了 30 個複雜的多應用工作流程,每個任務上限 900 秒,並在 240 次執行中進行二元程式化評分(Composio,2026 年 8 月)。同樣的模型,不同的框架。

框架通過率中位數時間每個任務平均 token 數
Pi Agent66.7%132.2s559,000
Prime Agent62.5%242.1s1,400,000
OMP56.7%272.4s742,000
Claude Code53.3%122.7s742,000
Codex53.3%245.0s678,000
DeepAgents53.3%187.1s665,000
Hermes Agent50.0%175.5s192,000
OpenCode46.7%129.7s692,000

token 欄比排名更重要。分佈範圍從每個任務平均 192,000 到 1,400,000 個 token。這是同一模型透過不同執行環境執行類似工作所產生的差異。

OpenCode 提供了一個有來源的基準:每個任務 692,000 個 token,通過率 46.7%,中位數時間 129.7 秒。DeepSeek Harness 在該基準測試中沒有公開的對決數據,因為 DeepSeek 於 2026 年 8 月 13 日發布,比基準測試發布晚了兩天。

將此表格視為警訊,而非定論。它顯示框架可以主導成本。但並不能證明 DeepSeek Harness 在你的儲存庫上勝過 OpenCode。

切換框架時會改變什麼

在測試之前,先比較這兩個工具對開發人員工作有影響的部分:設定面、成熟度、token 可視性,以及你能取代多少代理循環。

DeepSeek Harness (dsh)OpenCode
來源DeepSeek AIAnomaly(原 SST)
發布日期2026 年 8 月 13 日2025 年底
GitHub 星星數~143k~198k
授權MITMIT
語言TypeScriptGo
介面127.0.0.1:3080 上的 Web UI終端 TUI
狀態開發者預覽版,預期會有破壞性變更成熟,廣泛部署
架構模型、工具、會話、沙箱、儲存、循環和 UI 皆可替換的外掛固定核心,搭配建置/規劃代理、MCP 支援和 LSP 擴充
設定$DSH_HOME/settings.yamlopencode.json
Token 記帳具有上下文壓力和細分預測的 token 計量表會話層級的 token 和成本追蹤,顯示在 TUI 中
最適合想要修改代理循環本身的團隊想要一個今天就能運作的編碼代理的團隊

OpenCode 提供了一個穩定的編碼代理,周邊有擴充點。DeepSeek Harness 提供了一個循環本身可以替換的執行環境。如果你正在建構代理基礎設施,這種靈活性會有幫助。如果你本週需要一個用於生產程式碼的預設工具,則會增加風險。

兩個工具都可以連接相同的 OpenAI 相容端點。這使得公平測試成為可能:同一個模型、同一個基本 URL、同一個任務、同一個起始儲存庫狀態。

在本教學中,DeepSeek V4 Flash 透過 Atlas Cloud 執行,該服務提供兩個工具都接受的 OpenAI 相容端點。deepseek-v4-flash-0731 列表顯示,截至 2026 年 8 月,輸入 token 每百萬個 0.14 美元,輸出 token 每百萬個 0.28 美元,上下文視窗為 1,048,576 個 token,最大輸出為 393,216 個 token。只要兩個框架使用相同的端點和模型 ID,任何提供者都可以。

OpenCode 也發布彙總使用數據。DeepSeek 模型已透過 OpenCode 處理了 233 兆個 token,其中 V4 Flash 佔 85.5%,V4 Pro 佔 14.5%(OpenCode,2026 年 8 月)。這種使用模式使 V4 Flash 成為比較的實用預設值。

步驟 1:將兩個工具指向同一個模型

建立一個 API 金鑰和一個基本 URL,然後將相同的配對提供給兩個工具。在 Atlas Cloud 控制台 建立金鑰,並匯出一次:

plaintext
1export ATLAS_API_KEY="your-api-key"
2

在交給任何一個框架之前,先檢查端點:

plaintext
1curl https://api.atlascloud.ai/v1/chat/completions \
2  -H "Authorization: Bearer $ATLAS_API_KEY" \
3  -H "Content-Type: application/json" \
4  -d '{
5    "model": "deepseek-ai/deepseek-v4-flash-0731",
6    "messages": [{"role": "user", "content": "Reply with the single word: ready"}]
7  }'
8

該呼叫證明路由、金鑰和模型 ID 在框架添加工具、重試或對話重播之前即可運作。

編碼提示、產生的程式碼和來自一個模型呼叫的 token 統計

編碼提示、產生的程式碼和來自一個模型呼叫的 token 統計

對 deepseek-ai/deepseek-v4-flash-0731 的一次直接呼叫:輸入 148 個 prompt token,輸出 6,879 個 token,其中包括 5,731 個推理 token。將此視為框架添加工具架構和歷史記錄之前的最低基準。

DeepSeek Harness 讀取 $DSH_HOME/settings.yaml,自訂的 OpenAI 相容提供者放在 llm-pi-ai 外掛下(DeepSeek Harness 文件,2026 年 8 月):

plaintext
1llm-pi-ai:
2  providers:
3    atlas:
4      apiKeyEnv: ATLAS_API_KEY
5      api: openai-completions
6      baseURL: https://api.atlascloud.ai/v1
7      models:
8        - id: deepseek-ai/deepseek-v4-flash-0731
9

此端點使用 openai-completions。Web UI 可以從「設定」→「模型」→「新增自訂提供者」寫入相同的提供者區塊,然後將金鑰儲存在 $DSH_HOME/.credentials.yaml 中。

OpenCode 讀取專案根目錄或全域設定目錄中的 opencode.json(OpenCode 文件,2026 年 8 月):

plaintext
1{
2  "$schema": "https://opencode.ai/config.json",
3  "provider": {
4    "atlas": {
5      "npm": "@ai-sdk/openai-compatible",
6      "name": "Atlas Cloud",
7      "options": {
8        "baseURL": "https://api.atlascloud.ai/v1",
9        "apiKey": "{env:ATLAS_API_KEY}"
10      },
11      "models": {
12        "deepseek-ai/deepseek-v4-flash-0731": {
13          "name": "DeepSeek V4 Flash 0731",
14          "limit": { "context": 1048576, "output": 393216 }
15        }
16      }
17    }
18  },
19  "model": "atlas/deepseek-ai/deepseek-v4-flash-0731"
20}
21

使用 @ai-sdk/openai-compatible,因為此端點提供 /v1/chat/completions。設定真實的上下文和輸出限制。OpenCode 在決定何時進行摘要時會使用它們,錯誤的限制可能會扭曲 token 比較。

步驟 2:在 DeepSeek Harness 中執行相同的基準測試任務

選擇一個足夠大而需要多次工具呼叫、又足夠小而可以評分的任務。兩個執行使用相同的儲存庫狀態,因此在開始前請提交或暫存。

將這個確切的任務貼到兩個工具中:

plaintext
1在此儲存庫中,為 src/server.js 中的 Express 應用程式新增一個 token bucket 速率限制器中間件。將每個 IP 限制為每分鐘 60 個請求。拒絕時,回傳 HTTP 429,並帶有 JSON 主體 {"error":"rate_limited","retryAfter":<seconds>}。將此中間件應用到所有 /api/* 路由。在 test/rate-limit.test.js 中新增單元測試,涵蓋三種情況:低於限制的請求被允許;超過限制的請求被 429 封鎖;計數器在視窗過期後重置。執行測試套件並修復失敗,直到通過。請勿修改 src/ 和 test/ 以外的任何檔案。

從你的專案目錄啟動 Harness:

plaintext
1cd /path/to/your/repo
2npx @deepseek-ai/dsh web
3

UI 在 http://127.0.0.1:3080 執行。選擇 atlas 提供者和 deepseek-ai/deepseek-v4-flash-0731 模型,貼上任務,然後讓它完成。執行開始後不要新增提示。為一個工具提供額外協助會使比較失效。

當 Harness 完成時,開啟「Trajectory」檢視。該會話記錄就是 token 數字所在的位置。

步驟 3:在 OpenCode 中重複執行

將儲存庫重設為確切的起始狀態。第二個框架不能繼承第一個框架已經修改的檔案。

plaintext
1git checkout -- . && git clean -fd
2

然後針對同一個模型執行 OpenCode:

plaintext
1opencode --model atlas/deepseek-ai/deepseek-v4-flash-0731
2

貼上步驟 2 中的相同任務提示。使用預設的 build 代理。讓它完成,不要提供提示。

使用相同的指令對兩個執行進行評分:

plaintext
1npm test
2

如果執行使測試套件保持紅色,則視為失敗,即使代理摘要聽起來很有信心。使用二元評分:通過或失敗。

步驟 4:讀取 token 用量

兩個工具都會追蹤用量,但這兩個計數器都不應作為你的最終帳單數字。

DeepSeek Harness 預設掛載了一個 token 計量表。它在「Trajectory」檢視中公開 tokenUsage、contextPressure 和 contextBreakdown。contextBreakdown 告訴你帳單來自系統提示、工具架構、檔案讀取還是對話重播。該計量表估計大約每四個字元一個 token,因此將其用作診斷檢視。

OpenCode 追蹤每個會話的 token 和成本,並在 TUI 狀態列中顯示。其內建的細分較小,因此需要按工具歸因的團隊通常會使用外部分析器檢查會話資料庫。

使用提供者端的數字進行比較:

比較項目獲取位置
輸入 token 總數提供者用量儀表板,依 API 金鑰
輸出 token 總數提供者用量儀表板,依 API 金鑰
模型呼叫次數框架軌跡檢視 / OpenCode 會話日誌
實際時間碼表,從開始到最後一次檔案寫入
通過或失敗npm test 退出碼

建立兩個 API 金鑰,harness-test 和 opencode-test,並為每個執行使用一個金鑰。然後提供者儀表板會為你提供乾淨的並排用量,而無需調和兩個內部估算器。

為什麼帳單會變動

Token 用量的變化有具體原因。這五個通常比模型價格更重要。

對話重播會增加成本。 代理在每一步都會重新發送不斷增長的對話。一個 40 步的任務成本接近 40 個增長提示的總和,而不是 40 個相同的提示。及早進行摘要的框架會更接近基準測試分佈的低端。

快取命中可降低輸入成本。 DeepSeek V4 Flash 的快取命中價格約為每百萬個 token 0.0028 美元,而未命中則為每百萬個 0.14 美元,便宜約 98%。快取需要逐字元穩定的前綴。如果框架在呼叫之間打亂系統提示文字,就會將命中轉變為未命中。

工具架構會跟著跑。 二十個連接的 MCP 伺服器意味著提示中有二十個架構集,即使任務只用到其中兩個。在進行基準測試之前,請先斷開不需要的工具,否則你測量到的是工具設定,而不是框架。

大型工具輸出會污染上下文。 一個 3,000 行檔案的 cat 或一個冗長的失敗測試日誌會保留在後續呼叫的對話中。DeepSeek Harness 可以在摘要之前修剪過大的工具結果。當任務產生嘈雜的輸出時,請開啟此功能。

重試隱藏在呼叫次數中。 重試失敗測試循環的框架每次都會花費 token。將模型呼叫與 token 總數進行比較,這樣你就可以區分重試循環和昂貴的提示。

以 Atlas Cloud 的 DeepSeek V4 Flash 費率計算,一個 692,000 token 的任務(偏向輸入)成本落在個位數美分。對單次執行來說很小,但對整天運行代理的團隊來說則很大。如果你想在另一個模型上重複測試,並將模型效果與框架效果分開,請瀏覽完整的模型目錄。

DeepSeek Harness 仍是開發者預覽版,其 README 警告可能會有破壞性變更。如果你想要控制代理循環,請對其進行基準測試。只有當你的團隊能夠承受變動時,才將其標準化。OpenCode 是對於今天就需要一個工具的團隊來說更穩定的選擇。

常見問題

DeepSeek Harness 比 OpenCode 好嗎?

對大多數團隊來說還不是。OpenCode 成熟、原生終端、約有 198k 星級、提供者目錄龐大,而且今天就能運作。DeepSeek Harness 較新、處於開發者預覽版,並警告可能會有破壞性變更。如果你想要修改代理內部機制,請選擇 Harness。如果你想要一個用於日常工作的編碼代理,請選擇 OpenCode。

DeepSeek Harness 只能與 DeepSeek 模型搭配使用嗎?

不。它與模型無關。它內建了 DeepSeek、Anthropic、OpenAI、Bedrock、Vertex、Azure 和 Codex 的提供者目錄,並且你可以在 $DSH_HOME/settings.yaml 中新增任何支援 openai-completions、openai-responses 或 anthropic-messages 協定的自訂提供者。步驟 1 中的設定將其指向一個 OpenAI 相容端點,無需適配器程式碼。

如何檢查 DeepSeek Harness 的 token 用量?

使用「Trajectory」檢視中的內建 token 計量表。它公開 tokenUsage、contextPressure 和 contextBreakdown。將其視為估算值,因為它使用大約每四個字元一個 token。若要獲得帳單準確性,請閱讀提供者用量儀表板,最好為每個執行使用專用的 API 金鑰。

哪個框架使用較少的 token,DeepSeek Harness 還是 OpenCode?

目前還沒有公開的對決基準測試可以回答這個問題。Composio 基準測試測量 OpenCode 平均每個任務 692,000 個 token,但該測試是在 DeepSeek Harness 發布之前進行的。在你的自己的儲存庫上執行步驟 2 到步驟 4 的測試,因為 token 用量取決於程式碼庫大小、工具設定和任務形狀。

我可以對同一個 API 金鑰執行 DeepSeek Harness 和 OpenCode 嗎?

可以,進行粗略測試時可以。若要進行乾淨的測量,請使用兩個不同的金鑰,每個框架一個。然後提供者儀表板會將每個 token 歸因於正確的執行。

代理和框架之間有什麼區別?

DeepSeek 將代理描述為模型加框架。模型負責推理。框架負責將模型連接到檔案、shell 指令、工具、會話、批准以及決定下一步行動的循環。更改框架,同一模型可能會在同一個任務上花費不同數量的 token。

最新模型

一個 API,暢享全模態 AI。

探索全部模型