dsh-web-tools:为 DeepSeek Harness 接入多源联网搜索与抓取

前言

在 DeepSeek Harness(DSH)里给智能体加联网能力,常见做法是接一个搜索 API,或者自己包一层代理。单 Provider 方案的问题是:额度用完、限流、超时都会直接断链;多 Provider 简单拼接时,又往往只能用到各家都支持的最小公共能力,分类、时效、域名策略、正文提取等原生特性用不上。

下面介绍社区插件 dsh-web-tools(维护者 A3Boy,分类:联网工具)。它把 Exa、Tavily、Firecrawl、Parallel、Brave、You.com、Jina、SearXNG,以及小红书、Twitter / X 接到 DSH 标准的 web_search / web_fetch 接口上,在统一工具契约的前提下,用 SearchHints 把查询意图编译成各 Provider 的原生参数,并配合多 Key 调度与自动降级提高可用性。插件当前版本 0.3.0,GitHub 约 16 stars,MIT 许可证。

这是什么

dsh-web-tools 是面向 DSH 的联网工具插件,定位是「多 Provider 搜索 + 正文抓取 + 社媒平台检索」的统一接入层。

对 Agent 侧来说,接口不变:仍然调用标准的 web_searchweb_fetch。对运维侧来说,可以在 DSH 设置界面配置各 Provider 的 API Key、路由顺序和降级链条,不必为每个搜索源单独写工具声明。

核心功能

统一接口,保留各家原生能力

插件通过 SearchHints 归一化查询中的技术/论文/新闻意图、时效、域名、地区与语言等约束,再用确定性代码(不额外调用 LLM)编译成各 Provider 支持的参数。

以「搜索最近一周的 AI 编程资料」为例,不同后端会走不同映射:

  • Exa:分类、ISO 日期范围、域名限制
  • Firecrawl:技术查询映射 github 分类,研究类映射 research,结合 tbs 时效
  • Parallel:组合 objectivesearch_queriessource_policy
  • Brave Search:freshness、国家与语言,优先 LLM Context 端点
  • You.comboost_domains 软加权

web_fetch 则按 Provider 原生提取接口路由,例如 Exa /contents、Tavily /extract、Firecrawl /scrape、Jina Reader 等。

8 大 Web Provider 支持矩阵

Provider 搜索 抓取/提取 备注
Exa 支持 支持 语义检索、垂直分类、日期与域名限制
Tavily 支持 支持 basic / advanced / fast / ultra-fast 深度档位
Firecrawl 支持 支持 技术/学术分类映射,Clean Markdown 提取
Parallel 支持 支持 objective 软引导 + source_policy 过滤
Brave Search 支持 LLM Context 优先,失败回退 Classic
You.com 支持 支持 boost_domains、时效与地区过滤
Jina 支持 支持 ReaderLM-v2 Markdown 转换
SearXNG 支持 自托管元搜索,适配器无需 API Key

小红书与 Twitter / X

区别于通用搜索引擎,这两个平台通过本机 Edge / Chrome 专用 Profile 与 CDP 通信完成站内操作:

  • 不依赖 Playwright 打包或浏览器扩展
  • Cookie 由浏览器 Profile 管理,插件不写入配置或日志
  • 小红书web_fetch 解析笔记详情与评论;web_search/explore 真实搜索框进入
  • Twitter / X:捕获 GraphQL 数据流,支持 from:since:until: 等算子

Agent 用平台前缀路由,例如 小红书: DeepSeek HarnessX: ...;前缀只选平台,实际站内搜索前会移除。

单次详情抓取最多附带 30 条评论或回复,单条内容最多 800 字符;超出分页会标记截断。

排查浏览器问题时,可设 XHS_NATIVE_SEARCH=0 临时关闭小红书站内搜索。

调度与容灾

  • 单 Provider 支持多 API Key,优先分配低 inFlight 的 Key,401 自动切换
  • 网络异常、超时、5xx、429、配额耗尽时,按配置链条降级到下一 Provider
  • 429 响应带 Retry-After 时进入零请求冷却
  • web_search 支持 Ordered / Round-Robin / Random 路由;web_fetch 按确定性链条执行
  • 会话级 Search Mode:开启后要求 Agent 回答前至少调用一次 web_searchweb_fetch
  • 支持 HTTP_PROXYHTTPS_PROXYNO_PROXY 与 Windows 系统代理

安装与启用

在 SkillHub 目录页或 GitHub README 中,官方安装命令如下:

# 安装插件
dsh plugin --profile web add github:A3Boy/dsh-web-tools

# 更新插件
dsh plugin --profile web update dsh-web-tools

# 卸载插件
dsh plugin --profile web remove dsh-web-tools

安装后重启 dsh web,在左侧侧边栏进入 SettingsWeb Search,配置各 Provider 的 API Key 与路由策略。新安装默认首选 Provider 为 Exa。

若本地包或软链接升级遇到缓存问题,可在 Profile 目录重装:

cd ~/.dsh/profiles/web && pnpm install

典型用法

通用联网搜索

Agent 直接调用 DSH 内置的 web_search / web_fetch 即可,无需学习新工具名。查询中的时效、域名、地区等约束会由 SearchHints 自动解析并编译。

社媒平台检索

在查询前加平台前缀选择来源:

小红书: DeepSeek Harness
X: DeepSeek Harness plugin

平台来源未启用或发生可重试故障时,会降级到已配置的通用 Web Provider;登录失效、访问受限等非重试错误会直接返回,不会用网页索引冒充站内结果。

开启会话级联网模式

在设置中打开 Search Mode 后,Agent 回答前必须至少完成一次联网调用;调用失败也算已尝试,但需说明哪些内容未能验证。

适用场景与注意

适合谁:

  • 需要为 DSH Agent 配置多个搜索/抓取 Provider,并希望在单源故障时自动切换
  • 希望保留 Exa、Tavily 等各家原生参数能力,而不是统一压成最低公共集
  • 需要在 Agent 工作流中检索小红书或 Twitter / X 站内内容
  • 有自托管 SearXNG 实例,想接入 DSH 联网链路

使用前注意:

  1. 插件以当前 dsh 进程权限运行,安装前应阅读 GitHub 源码 并确认 MIT 许可证条款。
  2. 多数 Provider 需要自备 API Key(SearXNG 除外);Exa、Parallel 余额需在各自控制台查看。
  3. 小红书与 Twitter / X 依赖本机已安装的 Edge 或 Chrome 及独立浏览器 Profile,首次使用需完成平台登录。
  4. SkillHub(skillhub.cn)是社区插件目录,与 DeepSeek / 幻方无官方从属关系;DSH 生态遵循「一切皆插件」理念,插件选择与配置由使用者自行负责。

结尾

dsh-web-tools 把多源搜索、正文提取和社媒检索收敛到 DSH 标准的 web_search / web_fetch 接口,用 SearchHints 保留各家原生能力,用多 Key 与 Fallback 提高链路可用性。若你正在为 DSH 搭建联网能力,可以从目录页了解概况,再到 GitHub 查看完整 Provider 矩阵与配置说明。

  • 目录页:https://www.skillhub.cn/plugins/A3Boy/dsh-web-tools
  • GitHub:https://github.com/A3Boy/dsh-web-tools
羽毛球分组比赛记分
小程序二维码

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

小夜