前言¶
DeepSeek Harness (DSH) 的设计理念是「一切皆插件」。DSH 自带的搜索路由 (deepseek-official) 在执行 web_search 时,会调用昂贵的模型(如 deepseek-v4-flash)进行完整的一轮对话,无论当前会话模型是什么。这会带来不必要的 Token 消耗和成本。
dsh-web-search-ddg 是 DeepSeek Harness 的一个联网工具插件,由 aooyoo 维护。它提供零 Token 的 Web 搜索能力,通过本地无头浏览器和 API 调用替换了 DSH 内置的高成本搜索路由。
核心功能¶
- 替换路由:将 DSH 内置的搜索路由替换为零成本引擎(Bing 和 DuckDuckGo)。
- 零成本:不消耗模型 Token,无需 API 密钥,不发起辅助模型请求。
- 零依赖:仅使用 Node.js 内置模块,无需 Playwright 或 Puppeteer 等外部依赖。
- 回退机制:引擎回退机制(先成功者胜出),若一个引擎被阻断或 HTML 变更,另一个引擎会接管。
- 保留兼容:保留内置提供者注册,切换回官方搜索只需一行配置。
安装与启用¶
在 DSH 的 profile 目录(例如 ~/.dsh/profiles/web)中,以离线插件的形式安装:
pnpm add dsh-web-search-ddg
在 profile 的 package.json 中声明 bundle,使 DSH 将其加载为一级层(在插件管理器可见,可干净移除):
"bundles": [..., "dsh-web-search-ddg"]
在 profile 的 cordis.patch.yml 中选择 provider:
# 选择该提供者供模型侧的 web_search 工具使用。
- id: web
config:
searchProvider: ddg-browser
注意:patch 行会替换目标行的整个配置(不支持深度合并),因此
web行必须重申所有键。内置的web-search-deepseek行保持不变,切换回官方搜索只需将searchProvider改回deepseek-official。
典型用法¶
- 安装:执行
pnpm add dsh-web-search-ddg。 - 声明:在 profile package.json 的
bundles中加入"dsh-web-search-ddg"。 - 配置:在 cordis.patch.yml 中设置
searchProvider: ddg-browser。
适用场景与注意¶
- 环境要求:需要一个 DSH 主机环境(版本 ≥ 0.1.0-rc)和 Node.js ≥ 18。
- 本地浏览器:DuckDuckGo 引擎需要本地 Chromium 家族浏览器。插件会自动检测 macOS 上的 Chrome、Edge、Chromium 或 Linux 上的
/usr/bin/chromium//usr/bin/google-chrome。Bing 引擎不需要浏览器。 - Cookie 依赖:Bing 引擎的质量依赖于 Cookies。插件会在会话期间访问 Bing 首页并注入 Cookie;如果结果为空,会重新引导 Cookie。
- 权限:插件以主机权限运行,安装前请务必检查源码与许可证。
结尾¶
该插件通过本地引擎和浏览器解决了 DSH 官方搜索的高成本问题,同时保留了良好的灵活性和回退机制。相关文档与源码位于 GitHub 仓库。