前言¶
在 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_search 和 web_fetch。对运维侧来说,可以在 DSH 设置界面配置各 Provider 的 API Key、路由顺序和降级链条,不必为每个搜索源单独写工具声明。
核心功能¶
统一接口,保留各家原生能力¶
插件通过 SearchHints 归一化查询中的技术/论文/新闻意图、时效、域名、地区与语言等约束,再用确定性代码(不额外调用 LLM)编译成各 Provider 支持的参数。
以「搜索最近一周的 AI 编程资料」为例,不同后端会走不同映射:
- Exa:分类、ISO 日期范围、域名限制
- Firecrawl:技术查询映射
github分类,研究类映射research,结合tbs时效 - Parallel:组合
objective、search_queries与source_policy - Brave Search:freshness、国家与语言,优先 LLM Context 端点
- You.com:
boost_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 Harness 或 X: ...;前缀只选平台,实际站内搜索前会移除。
单次详情抓取最多附带 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_search或web_fetch - 支持
HTTP_PROXY、HTTPS_PROXY、NO_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,在左侧侧边栏进入 Settings → Web 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 联网链路
使用前注意:
- 插件以当前
dsh进程权限运行,安装前应阅读 GitHub 源码 并确认 MIT 许可证条款。 - 多数 Provider 需要自备 API Key(SearXNG 除外);Exa、Parallel 余额需在各自控制台查看。
- 小红书与 Twitter / X 依赖本机已安装的 Edge 或 Chrome 及独立浏览器 Profile,首次使用需完成平台登录。
- 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