dsh-search-audit:旁路記錄官方 DeepSeek 搜索的 token 用量

前言

在 DeepSeek Harness(DSH)裏用官方 @deepseek-ai/dsh-web-search-deepseek 做聯網搜索時,插件會直接 fetch 調用 api.deepseek.com/anthropic/v1/messages,走原生 server tool web_search_20250305。響應體裏的 usage 既不會進入會話日誌,也不會被上層統計看到——若你還想用 dsh-turn-cost 一類插件做整會話成本覈算,搜索這一段調用開銷相當於「黑盒」。

下面介紹社區插件 dsh-search-audit(維護者 WhAIthere,分類 admin-security):在 Host 進程裏只讀包一層 globalThis.fetch,把符合條件的搜索響應裏的 usage 追加寫入本地 JSONL,請求與響應本身不改、不截斷。

這是什麼

dsh-search-audit 是 DSH Host 插件(npm 包名 dsh-search-audit,當前資料中版本 0.1.0,MIT 許可證,要求 Node >=20)。它不做計費折算,只落盤原始 token 字段,價格策略交給下游消費者,避免兩處維護單價。

SkillHub 目錄頁與 GitHub 簡介一致:Read-only observer for native DeepSeek Search calls in DeepSeek Harness (dsh): appends each call’s token usage to ~/.dsh/search-usage.jsonl so accounting plugins can price it. Requests and responses are untouched.

爲什麼要單獨記搜索 usage

官方搜索路徑的特點(來自插件 README 說明)可以概括爲:

  • 調用走 Anthropic 兼容端點 /anthropic/v1/messages,且 body 裏包含 web_search_20250305。
  • 同一路徑上的 usage 在官方實現裏被丟棄,常規會話統計覆蓋不到。
  • free-search 等普通工具不經過這條鏈路,本插件也不需要觀測它們。

因此若你的目標是「會話級 token / 成本可審計」,需要一條旁路把搜索模型的 usage 單獨記下來。

核心功能

旁路 fetch,只認目標請求

Host 啓動後插件自動安裝 fetch 包裝,無需配置、無需 API key。僅當請求 URL 爲 /anthropic/v1/messages 且 body 含 web_search_20250305 時,在響應返回後異步解析 usage 並寫日誌;其餘請求原樣透傳。

落盤格式

默認路徑:~/.dsh/search-usage.jsonl(每行一條 JSON)。可用環境變量覆蓋:

項 說明
DSH_SEARCH_AUDIT_LOG 覆蓋落盤路徑(默認 ~/.dsh/search-usage.jsonl)

成功示例(字段以 README 爲準):

{"ts":1792392407024,"endpoint":"https://api.deepseek.com/anthropic/v1/messages",
 "sessionId":"session-0123…",
 "model":"deepseek-v4-flash","query":"開源 批量 翻譯","maxUses":5,
 "ok":true,"status":200,
 "usage":{"inputTokens":93,"outputTokens":1874,"cacheReadTokens":0,"cacheWriteTokens":0},
 "source":"dsh-search-audit"}

失敗調用也會記一條(ok:false、usage:null),便於區分「搜了但失敗」和「沒搜」。

可靠性與邊界

README 中強調的約束:

  1. 純旁路:不改官方代碼、不碰 app.asar;官方升級不會覆蓋本插件。
  2. 記賬全程異步並 try/catch,不影響原調用;寫失敗則少一條記錄,不向調用方拋錯。
  3. 只記錄原始 usage,不折算金額。
  4. 若官方改爲注入式 fetch / undici 等實現,本插件可能失效,需靠迴歸測試與真實搜索驗證。

安裝與啓用

社區目錄 SkillHub - dsh-search-audit 的安裝指引爲:在 DSH 中安裝插件 WhAIthere/dsh-search-audit(頁面提供「發送給 DeepSeek Harness 安裝」的說明文案)。資料中未給出獨立的 CLI 安裝命令行片段;安裝前請閱讀 GitHub 倉庫 源碼與 LICENSE,確認以當前 DSH 進程權限運行可接受。

啓用後隨 Host 啓動生效,除可選環境變量 DSH_SEARCH_AUDIT_LOG 外無額外配置項。

典型用法與驗證

消費 JSONL

下游插件(如 README 提到的 dsh-turn-cost)讀取 ~/.dsh/search-usage.jsonl,按自家價格表把 usage 併入會話成本。本插件不負責讀回或展示。

迴歸測試

倉庫 README 提供的測試命令(44 項迴歸,退出碼 0 表示 PASS):

node tool/dsh-search-audit/tests/run_tests.mjs

package.json 中另聲明 "test": "node tests/run_tests.mjs";以你克隆或安裝後的目錄結構爲準選用對應路徑。

適用場景與注意

適合:需要在 DSH 內對官方 DeepSeek 搜索做 token 級審計、並與 turn 級記賬插件對接的開發者或管理員。

注意:

  • 插件在 Host 進程內包裝 globalThis.fetch,安裝前應審閱源碼與 MIT 許可證。
  • 只覆蓋原生 web_search_20250305 搜索鏈路,不能替代全鏈路 observability。
  • SkillHub 爲社區目錄站點,與 DeepSeek / 幻方無官方從屬關係;插件星標在目錄線索中爲 0,選用時以實際需求與源碼爲準。

小結

dsh-search-audit 用最小侵入方式補上官方搜索調用丟棄的 usage,寫入 ~/.dsh/search-usage.jsonl,方便記賬類插件定價。目錄頁:https://www.skillhub.cn/plugins/WhAIthere/dsh-search-audit;源碼與說明:https://github.com/WhAIthere/dsh-search-audit。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜