Skip to content

dsh-search-audit

Verified

dsh-search-audit · v0.1.0 · MIT

DSH Host 插件:旁路观察官方 DeepSeek 搜索的模型调用,把响应里的 usage 落盘到 ~/.dsh/search-usage.jsonl。只读观察,不改请求、不改响应、失败不影响官方搜索。

Install

dsh plugin add dsh-search-audit

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Tags

Creators

Readme

dsh-search-audit

用途:旁路观测官方 DeepSeek 搜索的模型调用开销。 官方 @deepseek-ai/dsh-web-search-deepseek 自己 fetch 打 api.deepseek.com/anthropic/v1/messages (原生 server tool web_search_20250305),响应里的 usage 被直接丢弃、也不进会话日志 —— 所以任何统计都看不到这笔钱。本插件包一层 globalThis.fetch,把那些响应的 usage 落盘, 供 dsh-turn-cost 等消费者读取。

命令

node tool/dsh-search-audit/tests/run_tests.mjs   # 44 项回归,退出码 0 = PASS

输入

项 说明
环境变量 DSH_SEARCH_AUDIT_LOG 覆盖落盘路径(默认 ~/.dsh/search-usage.jsonl)
运行时 无需配置、无需 API key;随 Host 启动自动包 fetch

输出(每行一条 JSON)

{"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),方便区分"搜了但失败"和"没搜"。

依赖与边界

  • 纯旁路:不改官方代码、不碰 app.asar、官方升级不会覆盖它;对非目标请求原样透传。
  • 只认「/anthropic/v1/messages + body 里带 web_search_20250305」的请求;free-search 等普通工具不经过这里,也不需要。
  • 记账全程异步 + try/catch,永远不影响原调用;记不下来就少一条记录,不会报错给调用方。
  • 只记原始 usage,不折算成钱(价格策略留给消费者,避免两处维护)。
  • 若官方哪天改成注入式 fetch / undici,本插件会失效(届时靠回归与真实搜索验证)。