所有頁面
本頁內容

DeepSeek 0.9.17 新增

DeepSeek 供應商以你自己的 DeepSeek API 金鑰執行 DeepSeek 的模型。DeepSeek 沒有自己的 agent,所以 OAR 會在中繼所在的機器上執行 Claude Code,並把它指向 DeepSeek 與 Anthropic 相容的 API。agent 在對話的資料夾中使用 Claude Code 的工具工作;負責思考的是 DeepSeek 的模型。回合的費用會記在金鑰所屬的 DeepSeek 帳戶上。

因為 agent 是 Claude Code,DeepSeek 對話具備 Claude 對話的大部分功能:全部四種中繼模式、提問卡片、計畫看板、subagent、導正和背景任務。所有供應商的對照表請見供應商一覽。

API 金鑰 #

你只需要一把 DeepSeek API 金鑰,其他什麼都不用:不必安裝 CLI,也不涉及任何 Claude 帳戶。開啟 Settings → Providers → DeepSeek(設定 → 供應商 → DeepSeek),也就是最後一個子分頁。

控制項 預設 作用
Enable DeepSeek for New Chat model selection(在新對話的模型選擇中啟用 DeepSeek) 儲存金鑰後即開啟 在 New Chat(新對話)中提供 DeepSeek。儲存金鑰之前無法勾選,切換後立即生效。
金鑰欄位(DeepSeek API key…) 空白 你的金鑰。儲存金鑰後,欄位會顯示 Saved API key (enter to replace)(已儲存的 API 金鑰,輸入以取代)。保持空白即可保留已儲存的金鑰。
Default model(預設模型) deepseek-flash 新的 DeepSeek 對話一開始使用的模型。見模型。
Commit attribution(提交署名) OAR commit 中會寫什麼。見提交署名。
Monthly budget (optional)(每月預算,選填)、Budget currency(預算幣別) 空白、USD ($) 用量卡片上的預算長條。見每月預算。
Starting balance (optional)(初始餘額,選填) 空白 餘額長條從哪個金額開始計算。見初始餘額與儲值。
Advanced → Base URL(進階 → 基礎 URL) 空白 改用另一個端點,取代 DeepSeek 自己的端點。見另一個端點。
Save DeepSeek settings(儲存 DeepSeek 設定) 儲存上面所有欄位。第一次儲存金鑰時,也會一併啟用 DeepSeek。
Remove saved key(移除已儲存的金鑰) 先詢問 Remove the saved DeepSeek API key?,然後刪除金鑰、探索到的模型和你在 Select Models(選擇模型)中的選擇,並關閉 DeepSeek。預設模型會保留。
Import usage export(匯入用量匯出檔) 在分頁底部:DeepSeek 用量匯出的兩個檔案 Amount file(金額檔案)和 Cost file(費用檔案),供用量卡片使用。見匯入用量匯出檔。

欄位下方的一行文字會說明目前的狀態:

狀態 意義
Not configured. New conversations use GitHub Copilot. 尚未儲存金鑰。
API key saved but currently disabled. Enable it to allow DeepSeek selection in New Chat. 已儲存金鑰,但開關是關閉的。
DeepSeek is enabled. Select DeepSeek in New Chat to use it. 已就緒。

接著照常開始對話:在 New Chat 中選擇 DeepSeek。見開始對話。

金鑰存放在哪裡、誰看得到 #

  • 金鑰儲存在中繼所在機器上的中繼資料庫中。面板不會再顯示它,也絕不會把它傳到瀏覽器:設定中只會顯示已儲存了金鑰。
  • 只有 DeepSeek 對話的 worker 會拿到它。session 在 tmux 下執行時,金鑰會透過只有中繼使用者能讀取的檔案傳給它們。在 worker 內,它會成為 Claude Code 用於 DeepSeek 端點的 token。
  • 金鑰只會傳送到基礎 URL,不會送到其他地方:也就是 DeepSeek 的 API,或 Advanced 下設定的位址。中繼自己對 DeepSeek 發出的請求(模型清單、餘額)失敗時,錯誤文字中的金鑰會被移除。
  • 無法透過環境變數設定:中繼本身環境中的 DEEPSEEK_API_KEY 不會傳下去,worker 拿到的是面板上的金鑰。
  • agent 讀得到金鑰。Claude Code 把金鑰放在它的環境中,所以 agent 執行的指令看得到它,就和 CLI 持有的任何金鑰一樣。session worker 送出的所有內容(回覆、思考、工具活動、subagent 文字、提問、任務輸出),中繼都會先把其中的金鑰換成 [redacted],再儲存、顯示或寫入記錄;DeepSeek worker 在自己的記錄中也會這麼做。如果文字被截斷,其中殘留的金鑰片段只要有 8 個字元以上,也會一併移除。你變更或移除的金鑰,在中繼重新啟動之前仍會持續被遮蔽。中繼從任務檔案讀取的任務輸出,是依照金鑰和長 token 的格式清理,而不是比對已儲存金鑰本身的文字。這樣可以讓金鑰不出現在 OAR 儲存和顯示的內容中,但這無法防範 agent:agent 可以在印出之前改寫文字、自行呼叫中繼的本機 API,或讀取中繼的資料庫。

儲存、變更和移除金鑰 #

  • 金鑰必須是 8 到 512 個字元,且不含空白。否則儲存會失敗,並顯示 The DeepSeek API key has an invalid format。
  • 在 DeepSeek 已啟用時儲存金鑰,會向 DeepSeek 查詢它的模型(見模型)。查詢失敗時,通知會說明原因,清單則依該節所述的方式退回。
  • 儲存另一把金鑰會清除探索到的模型,並停止正在執行的 DeepSeek worker,包括正在進行回合的 worker,所以請在回合之間變更金鑰。下一則訊息會以新金鑰啟動它們。
  • 只要有任何 DeepSeek 對話已送出訊息或有排入佇列的訊息,移除金鑰就會被拒絕:Cannot remove the DeepSeek API key while N DeepSeek conversation(s) still exist. Switch DeepSeek off for new conversations instead. 移除成功時,尚未送出訊息的對話會移回 Copilot。關閉 DeepSeek 則不會移動任何對話;它只是把 DeepSeek 從 New Chat 中拿掉。

模型 #

模型 顯示名稱 圖片
deepseek-flash(預設) DeepSeek Flash 支援
deepseek-v4-pro DeepSeek V4 Pro 不支援

清單從哪裡來。 中繼會用你的金鑰查詢 DeepSeek 的 GET /models,並保留以 deepseek- 開頭的 ID。查詢的時機是:儲存金鑰時、重新啟用 DeepSeek 時、變更基礎 URL 時,以及在 🤗 Select Models 中按 Refresh(重新整理)時。請求在 10 秒後放棄。在讀到清單之前,選擇器提供 deepseek-flash 和 deepseek-v4-pro。讀取失敗,或讀到的清單中沒有任何 DeepSeek 模型時,中繼會保留原本的清單;按 Refresh 之後,通知會顯示 DeepSeek model discovery failed. Cached DeepSeek models were kept: …。

哪些模型會顯示。 🤗 Select Models → DeepSeek(選擇模型 → DeepSeek)決定輸入區提供哪些模型;💾 Save enabled models(儲存已啟用的模型)會儲存這個選擇。如果沒有做任何選擇,就會提供全部模型。Default model 一律會提供,且無法取消勾選。

以訊息為單位。 對話可以在回合之間變更模型。切換模型會在下一則訊息之前,以新模型重新啟動對話的 Claude Code;對話會從原處繼續。中繼沒有提供的模型會被拒絕,並顯示 DeepSeek model "…" is not available。

圖片。 DeepSeek V4 Pro 不接受圖片輸入,OAR 不認識的模型也一樣。這類模型收到的每張附加圖片都會改為檔案路徑。對話中一旦有圖片,就會拒絕切換到這類模型,因為它接續的歷史會讓請求失敗:DeepSeek V4 Pro takes no images, and this conversation already has some. Stay on DeepSeek Flash, or start a new DeepSeek conversation for DeepSeek V4 Pro.

Reasoning effort #

DeepSeek 的模型一律會思考。reasoning effort 選擇器決定思考多少:low、high 或 max,每個模型都是這三個。預設為 high。

沒有 none:Claude Code 從不要求 DeepSeek 關閉思考,所以 OAR 也不提供這個選項,DeepSeek 的 🧠 對話框中也沒有 Thinking(思考)控制項。

reasoning effort 是在 Claude Code 啟動時設定的。因此,換成不同的 reasoning effort 會像切換模型一樣,在回合之間重新啟動對話的 Claude Code,對話則從原處繼續。

來自其他地方的 reasoning effort,例如來自另一個中繼上的 agent,會對應到 DeepSeek 的等級:none 和 minimal 以 low 執行,medium 和 xhigh 以 high 執行,ultra 和 ultracode 以 max 執行。沒有指定 reasoning effort 的訊息,或指定了 DeepSeek 沒有對應等級的名稱,會沿用對話的 reasoning effort。沒有指定 reasoning effort 的新對話從 high 開始;以 DeepSeek 沒有對應等級的名稱建立的新對話則從 low 開始。

資料夾與 session #

DeepSeek 對話執行的 worker 和 Claude 對話相同,建構在 Claude Agent SDK 之上,在中繼所在的機器上執行:每個對話一個,位於對話的工作資料夾中。它使用的 Claude Code 是 Agent SDK 隨附的建置版本;如果中繼為 Claude 對話設定了 claude 執行檔(CLAUDE_CODE_EXECUTABLE,從 Claude 子分頁安裝 CLI 時會設定),則使用該執行檔。Claude Code 會指向 <base URL>/anthropic,也就是 DeepSeek 與 Anthropic 相容的 API。worker 的第一個回合會顯示活動行 Starting Claude Code for DeepSeek (cold start)…。

專屬的設定資料夾。 DeepSeek 對話中的 Claude Code 會把它的狀態、session 和對話紀錄放在中繼資料目錄中的 deepseek-claude,只有中繼使用者能讀取。它從不使用 ~/.claude(或 CLAUDE_CONFIG_DIR):機器上的 Claude 登入、你的全域設定、skill、外掛和 MCP 伺服器都不在它的存取範圍內。儲存庫自己的 CLAUDE.md 和 .claude/ 資料夾仍然適用,只是它們無法改變 DeepSeek 流量的去向。

不使用 Claude 登入。 worker 交給 Claude Code 的只有 DeepSeek 金鑰,不含機器上任何 Claude 設定。中繼環境中的 Claude 登入 token 不會傳到它那裡。OAR 也會關閉 Claude Code 自己對 Anthropic 發出的流量,例如更新檢查和遙測。

和 Claude 上一樣的功能。 以下功能來自和 Claude 對話相同的執行器,行為和 Claude 頁面所述相同:

  • 全部四種中繼模式;plan 最後會出現 Plan ready for review(計畫已就緒,待審閱)看板;
  • 中繼所在機器上的工具、支援多選的提問卡片、subagent 檢視器、任務面板中的背景任務、Stop(停止),以及導正,回合進行中傳送按鈕會顯示 Steer(導正);
  • OAR 的 preview 和 relay_tool agent 工具;
  • 檔案瀏覽器中的 Session root(Session 根目錄)按鈕,會開啟 deepseek-claude/projects 下該 session 的資料夾;
  • Claude 子分頁中的背景指令上限;
  • 重新啟動後依儲存的 session ID 接續。刪除 DeepSeek 對話會刪除它在 deepseek-claude 中的 Claude Code session;它產生的花費仍會留在用量卡片的總計中。

Subagent 使用對話的模型。 Claude Code 以別名稱呼它的模型。OAR 會固定這些別名:agent 以「opus」、「sonnet」或「fable」要求的 subagent,或沒有指定模型的 subagent,會使用對話的模型;以「haiku」要求的則使用 DeepSeek Flash。Claude Code 自己的小型呼叫,例如產生標題和摘要,也會送到 DeepSeek Flash。subagent 的徽章會顯示 DeepSeek 模型的名稱。切換模型會重新啟動 Claude Code,讓固定的對應跟著更新。

上下文與壓縮。 DeepSeek 的模型有 1,048,576 個 token 的視窗。輸入區的 Context window(上下文視窗)小標籤會顯示這唯一的視窗,寫作 1.05M;沒有其他可選。🧠 對話框依 Claude Code 的回報顯示上下文。除非你用對話框中的自動壓縮滑桿設定了其他視窗,否則 DeepSeek 對話會在 400K token 時壓縮:這遠低於視窗大小,這樣在 DeepSeek 的快取過期後,下一個回合就不會以快取未命中的價格再送出將近一百萬個 token。

附件。 在接受圖片的模型上,5 MB 以內的圖片會放在訊息中;更大的圖片和其他檔案則以路徑提供,由 agent 自行讀取。不接受圖片的模型請見模型。

DeepSeek 上沒有的功能。 Claude 的方案用量計量和用量上限暫停不適用。DeepSeek 的回覆下方沒有用量行;費用顯示在用量卡片上。

資料夾設定無法改變 DeepSeek 流量的去向 #

資料夾中的 .claude/settings.json 或 .claude/settings.local.json 可以為 Claude Code 設定環境變數和金鑰 helper。在 DeepSeek 對話中,中繼會以固定的基礎 URL 和金鑰覆蓋這些設定,連同 proxy、TLS 信任、供應商和憑證設定也一併固定:資料夾的設定無法讓 Claude Code 指向其他位址、把金鑰換成另一把,或讓請求經過它們自己的 proxy。為此,金鑰不會放在命令列上。

0.9.18 新增 不執行 hook。 DeepSeek 對話中的 Claude Code 啟動時,所有 hook 和狀態列都是關閉的:DeepSeek 自己設定資料夾中的 hook、對話資料夾中的 hook(.claude/settings.json、settings.local.json),以及外掛的 hook 都不會執行。這些 hook 會以中繼使用者的身分執行,而且環境中帶有金鑰;資料夾的 SessionStart hook 甚至會在中繼固定端點和金鑰之前就執行。這個設定位於 Claude Code 的命令列上,所以設定檔無法重新開啟它們。受管設定(機器管理員的設定)中的 hook 仍會執行。在 0.9.17 中,這些 hook 會執行;退回 0.9.17 會讓它們再次啟用。

如果 Claude Code 在一分鐘內沒有套用固定的設定,回合會在送出任何內容之前失敗,並顯示 Claude Code did not take the DeepSeek connection settings before the first message, so nothing was sent. 請再傳送一次訊息;如果仍然失敗,請更新中繼,並在它的記錄中查看原因。

哪些內容會送到 DeepSeek #

agent 在回合中讀取和寫入的一切都會送到 DeepSeek:你的訊息、它開啟的檔案、它執行指令的輸出,以及 Claude Code 加到每個 session 的上下文,例如資料夾的路徑和 CLAUDE.md 檔案。在一次實測的回合中,DeepSeek 的 API 是 Claude Code 唯一連線的主機。

提交署名 #

選項 Commit Pull request
OAR(預設) 結尾為 Co-authored-by: Open Agent Relay (DeepSeek Flash) <no-reply@oar.sh>,括號中是使用中模型的名稱。 結尾為 🤖 Generated with [Open Agent Relay](https://oar.sh)。
Off(關閉) 沒有署名行。 沒有署名行。

沒有 Vanilla(原版)選項:Claude Code 自己的署名行會把 DeepSeek 的成果歸功於 Claude。資料夾自己的選擇(在該資料夾中某個 Claude 對話的 🧠 對話框中設定)也適用於該資料夾中的 DeepSeek 對話,其中 Vanilla 會當作 OAR 處理。DeepSeek 對話自己的 🧠 對話框中沒有署名選項。

另一個端點 #

Advanced → Base URL 可以填入另一個位址,例如 proxy 的位址。保持空白則使用 https://api.deepseek.com。位址必須使用 https,或本機上的 http(localhost、127.0.0.1 或 ::1),而且不得包含使用者名稱、密碼、查詢字串或片段。金鑰只會傳送到那裡,不會送到其他地方。儲存新位址會清除探索到的模型,並從新位址重新讀取。已在執行的 DeepSeek worker 會繼續使用它啟動時的位址。

WebSearch 和 WebFetch #

Claude Code 有兩個網頁工具,它們在不同的地方執行:

工具 在哪裡執行 費用
WebSearch 在 DeepSeek 的伺服器上,透過 DeepSeek 的搜尋。 按搜尋請求計費:自 2026-10-31 16:00 UTC 起,每 1,000 次成功的搜尋 $0.75 或 ¥5。在此之前以零費用計算。
WebFetch 在中繼所在的機器上:Claude Code 自己抓取網頁,再交給 DeepSeek Flash 閱讀。 只有 Flash 的 token,和其他回合一樣入帳。不按請求計費。

用量卡片會把搜尋次數另外列在 Search(搜尋)列中。次數來自 Claude Code 自己的總計,它會計算 WebSearch 工具執行的每一次搜尋。

用量卡片 #

DeepSeek 啟用時,📊 Check Usage(檢查用量)中會有一張 DeepSeek 卡片。DeepSeek 採用隨用隨付,所以卡片顯示的是金額:以已儲存的金鑰即時讀取的帳戶餘額,以及此中繼的 DeepSeek 回合花了多少錢,這是依它們的 token 用量以 DeepSeek 的價格估算出來的(見估算方式)。

花費以餘額的幣別(有餘額的那個幣別)顯示;沒有餘額可依據時則以美元顯示。卡片一次顯示所有內容,數字在前,寬度符合手機畫面。由上到下:

部分 顯示內容
Balance (USD)(餘額,USD)、Balance (CNY)(餘額,CNY)長條 每個有餘額的幣別一條:剩下多少,相對於最後一次儲值後的餘額。長條下方的一行文字說明計算的起點。見初始餘額與儲值。
Monthly budget (USD)(每月預算,USD)或 (CNY) 長條 只有設定預算時才會出現。見每月預算。
數字 每個幣別的餘額,以及儲值和贈送的金額,還有從第一個 DeepSeek 回合起算的 Estimated spend on this relay(此中繼上的估算花費)。
Daily spend, last 30 days(每日花費,最近 30 天) 每個 UTC 日一欄,依模型堆疊。將游標停在某欄上或點一下,可查看當天的總計和各模型所佔的比例。
Where the money goes(錢花在哪裡) 每個模型一條,分為 Cache hit(快取命中)、Cache miss(快取未命中)、Output(輸出),有搜尋時還有 Search。標題會說明快取省下了多少。
Estimated spend by model(依模型估算花費) 每個模型一列,附上它的回合數;有搜尋時另有一列 Search:網頁搜尋的花費和次數,例如 3 searches。
Tokens by model(依模型的 token) 每個模型的快取命中、快取未命中和輸出 token,以及輸入中有多少來自快取。
估算說明 價格、尖峰時段和未計入的項目,附 Prices(價格)連結。

和每張卡片一樣,長條會隨著填滿而變色,到 90% 時轉為紅色;見閱讀卡片。卡片底部有連到 DeepSeek 平台上 DeepSeek usage(DeepSeek 用量)和 Top up(儲值)的連結。

匯入 DeepSeek 的用量匯出檔後,卡片會在匯出檔涵蓋的日子顯示 DeepSeek 自己的數字,標籤也會變成 Spend, actual and estimated(花費,實際與估算)和 Spend by model, actual and estimated(依模型花費,實際與估算)。見匯入用量匯出檔。

圖表。 圖表不使用圖表函式庫繪製,在兩種配色下都能正常顯示。在 Daily spend(每日花費)上,每個模型在每次讀取之間都維持相同的顏色:先是 DeepSeek Flash,再來是 DeepSeek V4 Pro,其他模型依名稱排序;超過四個模型時,第四個及之後的模型合併為 Other models(其他模型)。每一欄和每一條長條都有供螢幕閱讀器使用的文字說明,也會在游標停留、取得焦點或點一下時顯示工具提示;每個圖表都有一個 As a table(以表格顯示)摺疊區,內含相同的數字。最近 30 天沒有花費時,Daily spend 會省略;如果此中繼的每日歷史紀錄是較晚才開始的,說明中會註明開始的日期。快取省下的金額,是快取命中的 token 以快取未命中價格計算的費用,減去它們實際的費用。

無法讀取餘額時。 讀取在 5 秒後放棄。讀到的結果會保留一分鐘,失敗的結果保留 15 秒。讀取失敗時,卡片會標示為 Partial(部分),顯示 The balance could not be read: …,並顯示上次讀到的餘額,標示 as read 和讀取時間。DeepSeek 回報餘額不足以進行 API 呼叫時,卡片會顯示 DeepSeek reports this balance as not enough for API calls: DeepSeek turns fail until it is topped up.,並附上 Top up 連結。

agent 可以用 relay_tool 的 usage 動作讀取同一張卡片。

每月預算 #

DeepSeek 子分頁上的 Monthly budget (optional) 會在卡片上加一條預算長條:顯示此中繼在本日曆月的 DeepSeek 估算花費相對於該金額的比例。

  • Budget currency:USD ($)(新預算預先選取此項)、CNY (¥),或 The balance's currency (may change)(餘額幣別,可能變更)。長條會標示它的幣別,例如 Monthly budget (CNY)(每月預算,CNY),並以該幣別計算花費,不論餘額是什麼幣別。在可以選擇幣別之前儲存的預算,會跟隨餘額的幣別。
  • 長條會標示為 estimated(估算)。如果本月有匯入的用量匯出檔涵蓋的日子(且預算的幣別與卡片相同),就不會標示,說明會指出那些日子的花費是實際數字,其他日子則是估算。長條在預算的 50% 和 75% 時變色,到 90% 時轉為紅色。
  • 它以 UTC 日計算,並在每月 1 日(UTC)歸零;長條會顯示何時重設。
  • 金額保持空白或輸入 0,就不顯示長條。金額保留到小數點後兩位。

初始餘額與儲值 #

DeepSeek 告訴 OAR 的是餘額,而不是你儲值了多少。因此餘額長條需要一個比較的基準,OAR 會在中繼上依幣別保存這個基準:

  • 沒有初始餘額時,長條從最後一次儲值後的餘額開始計算。在中繼看到儲值之前,它從讀到的最高餘額開始計算,所以長條一開始是空的,隨著花費逐漸填滿。長條下方的一行文字會寫出這個金額和讀取的日期,例如 Measured from ¥110.00, the highest balance seen (2026-10-20).
  • 儲值(或贈送額度)是兩次讀取之間餘額的任何增加。中繼在卡片開啟時(或 agent 讀取卡片時)讀取餘額,所以會在下一次讀取時發現儲值。從那時起,長條從儲值後的餘額開始計算。
  • Starting balance (optional) 則讓你指定改從哪個金額開始計算,例如你的第一次儲值金額。它以餘額的幣別計,套用到該幣別的長條。長條下方的一行文字會顯示 Measured from …, the starting balance set on the DeepSeek tab. 保持空白,就和沒有設定時一樣計算。

儲值對初始餘額的影響。 在你設定初始餘額之後的儲值會取代它:長條改從儲值後的餘額開始計算,DeepSeek 子分頁則會顯示 No longer used: the balance rose on <date> (a top-up), so the bar measures from the balance after it. Enter an amount again to measure from it. 要再次使用初始餘額,請在欄位中輸入金額(輸入相同的金額也可以)並儲存。儲存子分頁的其他欄位不會讓舊金額恢復。

在你設定初始餘額之前做的儲值不會取代它,即使現在的餘額高於該金額也一樣。儲存初始餘額時,中繼會立刻讀取餘額,只有在中繼於你設定之後讀過餘額,餘額的增加才會取代該金額。所以你可以先儲值,再輸入新的餘額並儲存。如果那次讀取失敗,該金額會一直保留,直到中繼下一次成功讀取之後又發生儲值為止。

匯入用量匯出檔 #

卡片上的花費是估算值。若要使用 DeepSeek 自己的數字,請在 DeepSeek 的用量頁面匯出你的用量(卡片底部的 DeepSeek usage 會連到那裡),再匯入。匯出檔是你所選期間的兩個 CSV 檔案:數量(每個模型和 API 金鑰的 token 和請求數,附價格)和費用。

  1. 在 DeepSeek 的用量頁面匯出一個期間。
  2. 在 Settings → Providers → DeepSeek 的 Import usage export 下,選擇 Amount file 和 Cost file,然後按 Import usage export。
  3. 按鈕下方的一行文字會說明匯入了什麼(列數、日期、模型),以及卡片是否採用。

匯入後卡片顯示什麼。 在匯出檔涵蓋的日子,以分頁上已儲存金鑰的數字取代估算值:每個模型的 token、請求數和費用,依匯出檔的日期計。其他日子仍是估算值,包括兩次匯入之間的空檔。標籤會變成 Spend, actual and estimated 和 Spend by model, actual and estimated,模型的那一列會加上匯出檔計算的請求數,說明中也會寫出最後一次匯出的結束日期。

  • 只計已儲存的金鑰。 匯出檔會列出帳戶中的每把金鑰;卡片只計算已儲存金鑰的列,而且包括該金鑰在任何地方的使用,不只是此中繼。
  • 單一幣別。 卡片只採用和它自己的幣別(也就是餘額的幣別)相同的列。匯出檔是其他幣別時,匯入會提示這點,卡片則維持估算值。
  • 搜尋。 在匯出檔涵蓋的日子,匯出檔的費用已包含網頁搜尋,所以卡片不會再為那些日子加上搜尋的估算。
  • 略過的日子。 包含尚未結束之期間的日子(例如白天匯出時的當天),以及此中繼每日歷史紀錄開始那天(含)之前的匯出日期,因為那些日子的回合並非全都在歷史紀錄中。說明中會註明這點。
  • 時區。 匯出檔的日期以匯出時所在的時區計算,估算值則以 UTC 計算。在匯出日期和估算日期的交界處,可能有一個小時被重複計算或完全沒有計算。
  • 每月預算。 本月有匯出檔涵蓋的日子時,預算長條不再標示 estimated。

匯入如何檢查檔案。 每個期間和模型的數量乘以價格,加總後必須與費用檔案相符。否則不會匯入任何資料,那一行文字會顯示 The files do not match for …。再次匯入相同的檔案不會改變任何內容。較新的匯出檔會針對其中的每把金鑰,取代它所涵蓋的日子,即使是在另一個時區匯出的也一樣。兩個檔案合計最多 2 MB。中繼會把這些列存放在專用的資料表中,每把金鑰都會遮蔽成只顯示頭尾幾個字元;中繼自己對你的回合所做的計數不會改變。配對的中繼上的 agent 無法匯入。

在中繼所在的機器上,於 OAR 的資料夾中執行 npm run deepseek:import -- amount.csv cost.csv <database> 也能達到相同效果。請指定資料庫,也就是資料目錄中的 copilot.db:沒有指定時,指令會使用伺服器旁的 data/copilot.db。

估算方式 #

DeepSeek 不會回報每個請求的費用,而 Claude Code 自己計算的費用是以 Claude 的價格計。因此,OAR 會依模型計算此中繼上每個 DeepSeek 回合回報的 token,並以 DeepSeek 公布的價格(2026-10-19 讀取)計價,同時以美元和人民幣計算。每百萬 token 的離峰價格:

模型 快取命中 快取未命中 輸出
DeepSeek Flash $0.003 · ¥0.02 $0.15 · ¥1 $0.60 · ¥4
DeepSeek V4 Pro $0.022 · ¥0.15 $0.66 · ¥4.5 $1.98 · ¥13.5
  • 尖峰時段與離峰時段。 尖峰價格正好是上表的兩倍。尖峰時段是週一至週五 UTC 01:00–04:00 和 06:00–10:00(北京時間 09:00–12:00 和 14:00–18:00);卡片會以你瀏覽器的時區顯示這些時段。每個回合依它自己的時間計價。
  • 假日。 在中國的國定假日,DeepSeek 整天都收離峰價格。估算不知道這些日期,所以假日尖峰時段的回合會以實際價格的兩倍計算。
  • 搜尋。 自 2026-10-31 16:00 UTC(北京時間 2026-11-01 00:00)起,網頁搜尋以每 1,000 次 $0.75 或 ¥5 計算,任何時段都一樣;在此之前的搜尋不計費用。見 WebSearch 和 WebFetch。
  • 不計費的請求。 Claude Code 在每個 session 開始時送出的 count_tokens 請求,DeepSeek 不會計費,估算也不計入。
  • 未知的模型。 deepseek-v4-flash 和 deepseek-v4-flash-vision-exp 以 Flash 的價格計算。沒有已知價格的模型不會有估算:它的那一列顯示 no price known,總計會說明排除了幾個模型。
  • 只計此中繼。 其他中繼上的回合,以及這把金鑰的其他用途,都不包含在內。卡片連結的 DeepSeek 用量頁面列有帳戶中的每個請求。
  • 實際數字。 在匯入的用量匯出檔涵蓋的日子,卡片會顯示 DeepSeek 自己針對已儲存金鑰的數字,取代估算值,其中包括該金鑰的所有用途。
  • 重新啟動。 重新開始的 Claude Code 處理程序,或延遲送達、重複送達的報告,只會入帳一次。只剩一種情況例外:舊處理程序的延遲報告若在新處理程序啟動後才送達,會全額入帳,新處理程序的下一份報告也會全額入帳。
  • 記在 Claude 名稱下的列。 在 subagent 被固定到對話模型之前的建置版本,曾把部分回合記在 Claude 模型名稱下。中繼啟動時,會把這些列併入實際服務它們的 DeepSeek 模型。併入的列以單一時間計價,也就是它最後一個回合的時間,所以跨越尖峰和離峰回合的列只是近似值:它的 token 費用最多可能相差兩倍。

如果回合的時間比中繼的時鐘快 5 分鐘以上,會改以中繼自己的時間計算。

限制 #

  • 無法關閉思考,none 會以 low 執行。
  • DeepSeek V4 Pro 不接受圖片;對話中一旦有圖片,就會拒絕切換到它。
  • 花費是估算值,只計算此中繼的回合,而且會高估中國國定假日的尖峰回合。只有匯入的用量匯出檔涵蓋的日子,才會顯示 DeepSeek 自己的數字。
  • 變更 reasoning effort 或模型,會在回合之間重新啟動對話的 Claude Code。
  • DeepSeek 上無法使用 Claude Code 的伺服器端網頁抓取;WebFetch 在中繼所在的機器上執行。
  • 沒有用量上限暫停:因餘額而被拒絕的回合會失敗,儲值後請再傳送一次。

錯誤碼 #

失敗的 DeepSeek 回覆結尾會有 Error code: relay.<code>.,某些代碼還會附上直接前往修正位置的按鈕:

代碼 時機 按鈕
relay.deepseek-balance DeepSeek 因餘額不足拒絕了請求(HTTP 402)。 Top up DeepSeek(儲值 DeepSeek)(開啟 DeepSeek 的儲值頁面)、DeepSeek settings(DeepSeek 設定)
relay.deepseek-api-key DeepSeek 不接受金鑰(HTTP 401)。 DeepSeek settings
relay.deepseek-rate-limit DeepSeek 已達到該帳戶的並行上限(HTTP 429)。 無
relay.deepseek-api-error 其他被拒絕的請求。 無
relay.deepseek-turn-error 回合的其他失敗。 無

DeepSeek settings 會開啟 Settings → Providers → DeepSeek。其他代碼遵循相同的格式,即 relay.deepseek- 加上 Claude Code 回報的原因,例如 relay.deepseek-overloaded(HTTP 529)或 relay.deepseek-model-not-found。這些代碼都不會附上 Claude 帳戶相關的建議。

疑難排解 #

問題 該怎麼做
New Chat 中沒有 DeepSeek 在 Settings → Providers → DeepSeek 中儲存金鑰,並確認已勾選 Enable DeepSeek for New Chat model selection。
relay.deepseek-balance,或卡片顯示餘額不足以進行 API 呼叫 按 Top up DeepSeek,在 DeepSeek 平台上儲值,然後再傳送一次訊息。
relay.deepseek-api-key 金鑰錯誤或已被撤銷。請在回合之間貼上有效的金鑰並儲存。
relay.deepseek-rate-limit 稍等一下,再傳送一次訊息。
DeepSeek model discovery failed: …,或 DeepSeek listed no DeepSeek models 檢查金鑰和基礎 URL,然後在 🤗 Select Models 中按 Refresh。在成功之前,會繼續提供上一份清單,或 deepseek-flash 和 deepseek-v4-pro。
DeepSeek model "…" is not available 該模型不在中繼的清單上。重新整理清單,或選擇其他模型。
… takes no images, and this conversation already has some. 繼續使用 DeepSeek Flash,或為純文字模型開始新的 DeepSeek 對話。
DeepSeek model selection requires creating a new DeepSeek conversation 其他供應商的對話無法切換到 DeepSeek 模型。請在 DeepSeek 上開始新的對話。
Cannot remove the DeepSeek API key while N DeepSeek conversation(s) still exist. 封存或刪除這些對話,或改為關閉 DeepSeek。
Claude Code did not take the DeepSeek connection settings before the first message, so nothing was sent. 再傳送一次訊息。如果仍然失敗,表示中繼執行的 Claude Code 沒有套用固定的設定:請更新中繼,並在它的記錄中查看原因。
The DeepSeek base URL must use https (http only on a loopback address) 使用 https,或本機上的 http 位址。
餘額長條的起始金額不對 在 DeepSeek 子分頁上以餘額的幣別設定 Starting balance(初始餘額)。
子分頁顯示初始餘額為 No longer used 儲值取代了它。請再次輸入金額並儲存,或清空欄位。
用量卡片上的花費比 DeepSeek 用量頁面低 卡片只計算此中繼的 DeepSeek 回合。DeepSeek 的頁面列有帳戶中的每個請求。若要在卡片上顯示 DeepSeek 的數字,請匯入用量匯出檔。
用量卡片在假日的花費較高 中國國定假日的尖峰時段是以尖峰價格計算;DeepSeek 實際收的是離峰價格。匯入用量匯出檔後,那些日子會改為顯示 DeepSeek 自己的數字。
The files do not match for … 金額檔案和費用檔案來自不同的匯出。請匯出同一期間的兩個檔案,並一起匯入。
The … file is not a DeepSeek usage export: … 請選擇 DeepSeek 用量頁面匯出的原始檔案:金額檔案放在 Amount file,費用檔案放在 Cost file。
匯入顯示已儲存的金鑰不在這份匯出檔中 匯出檔中沒有分頁上已儲存金鑰的用量:它屬於另一個帳戶,或該金鑰在那段期間沒有被使用。卡片維持估算值。
匯入顯示卡片不採用這些數字 匯出檔的幣別與餘額的幣別不同。卡片只採用餘額幣別的列。