我给DeepSeek Harness做了个不产生计费的联网搜索插件

零 API key、零依赖、零模型账单——用你自己的浏览器给 DSH 提供搜索能力。 #dsh-plugin

一个被忽视的账单细节

如果你在用 DSH(DeepSeek Harness),可能没注意到一件事:模型每调用一次 web_search 工具,后台就是一次 deepseek-v4-flash 的完整计费请求

这是 DSH 自带搜索路由的实现方式——DeepSeek 没有独立的搜索端点,DSH 的做法是发起一次携带 web_search 服务器工具的完整模型调用。问题在于:

  • 这个搜索模型写死在配置里,跟你会话里选什么模型完全无关。你主力用 GLM、Kimi 还是别的模型,搜索照样按 flash 计费;
  • 单次搜索带 4096 token 输出预算和最多 5 次服务器侧搜索,让 Agent 频繁查资料的话,这笔账攒得很快。

今天推荐的开源插件 dsh-web-search-ddg,就是来解决这件事的:它把搜索提供方换成你本地的浏览器——用机器上已经装好的 Chrome/Edge 以 headless 模式访问 DuckDuckGo,解析出结果链接返回给模型。

三个”零”:

  • 零模型 token——搜索不再产生任何模型账单
  • 零 API key——不需要注册任何服务
  • 零依赖——纯 Node 内置模块,不下载 Playwright/Puppeteer

安装:两分钟搞定

全自动安装:直接把文末github地址扔给DeepSeek Harness。

手动安装:

第一步,在你的 DSH profile 目录下(通常是 ~/.dsh/profiles/web)安装:

ounter(linepnpm add dsh-web-search-ddg

第二步,编辑 cordis.patch.yml,加两段:

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line# 把默认搜索提供方切到本地浏览器- id: web  config:    searchProvider: ddg-browser
# 挂载插件- insert:    - id: web-search-ddg      name: dsh-web-search-ddg

重启 dsh web,生效。之后模型的每次 web_search 都走本地浏览器,DeepSeek 账单里再也不会出现搜索产生的扣费。

验证配置是否正确(不用启动宿主):

ounter(linedsh --profile web --dump-config | grep -A2 searchProvider

想切回官方搜索?一行的事

自带的 DeepSeek 搜索提供方始终保持注册,切回来只是把 searchProvider 改回 deepseek-official

这里有个设计细节值得说一下:DSH 的提供方选择是单一显式 ID,不是优先级链,没有静默降级。所以如果哪天 DuckDuckGo 反爬收紧,插件会明确报错、告诉你原因和怎么切回——而不是悄悄换个通道,让你以为一切正常结果搜索质量悄悄变差。对账单敏感的场景,这种”笨拙的诚实”其实很宝贵。

工作原理

插件本体只有一个约 250 行的 index.js,流程很直白:

  1. 以 headless 模式启动你的浏览器,访问 DuckDuckGo 的 HTML 端点;
  2. 读取 dump 出的 DOM,解析结果页的标题、摘要和真实链接(DuckDuckGo 的链接是跳转格式,插件会解出真实目标 URL);
  3. 通过 DSH 的 web 能力 seam 返回结构化结果——面向模型的 web_search 工具和结果卡片无需任何改动,体验一致。

几个工程上的处理:headless 浏览器的 UA 会被覆盖成普通桌面 Chrome(否则会被反爬识别拦截);每次搜索有超时兜底和两次尝试;临时浏览器配置用完即删。

配置项

全部可选,不配也能跑:

配置键默认值说明
chromePath自动探测浏览器可执行文件路径。macOS 的 Chrome/Edge/Chromium 和 Linux 常见路径会自动识别
timeoutMs20000单次尝试的超时预算,每次搜索共两次尝试
virtualTimeBudgetMs8000页面沉寂多久后 dump DOM

浏览器探测覆盖:macOS(Chrome、Edge、Chromium)与 Linux(/usr/bin/chromium/usr/bin/google-chrome),找不到时用 chromePath 指定即可。

缺点和限制

开源工具先说清限制,你再决定要不要用:

  • 单次搜索延迟约 10–20 秒。 DOM 很快就绪,但浏览器进程经常不主动退出,结果常在超时兜底时拿到。搜索仍然成功,只是不快。追求秒回的场景,官方模型搜索反而合适——它毕竟是个 API。
  • DuckDuckGo 反爬是一场猫鼠游戏。 当前版本的 UA 伪装实测稳定,但如果哪天开始普遍报错,说明 DDG 收紧了检测,去 GitHub 提 issue 或按 README 自助修复。
  • 结果质量以 DuckDuckGo 为准。 开发资料的查询场景够用,但别指望比肩付费搜索 API 的结构化程度。

一句话总结适用人群:主力模型不在 DeepSeek 家、或者单纯不想让搜索产生模型账单的 DSH 用户,延迟不敏感的话,这就是当前最省心的方案。

项目地址

  • GitHub:https://github.com/aooyoo/dsh-web-search-ddg(MIT 协议开源,欢迎star、贡献)(底部阅读原文可直接访问)
  • npm:https://www.npmjs.com/package/dsh-web-search-ddg

README 有中英双语文档、完整的安装和故障排查说明。觉得有用欢迎 star,遇到问题直接提 issue。


在 macOS + DSH 0.1.0-rc.6 环境下实测通过。如果你也在DSH同时使用多家模型,欢迎聊聊你的账单优化心得。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注