dsh-search-audit
Verifieddsh-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,本插件会失效(届时靠回归与真实搜索验证)。