前言¶
DeepSeek Harness(DSH)内置的 web_search 工具默认调用官方付费接口,会消耗 Token 并产生费用。dsh-plugin-ai-super-search 通过接管该工具并提供 TinyFish、AnySearch、Bing 爬取、Jina 与 DuckDuckGo 等免费链路,实现了零额外 Token 消耗的搜索功能。
安装与启用¶
本插件以 bundle 形式提供,安装后会自动将配置补丁叠进 profile。
- 安装插件:
dsh plugin --profile <profile> add dsh-plugin-ai-super-search
- 验证安装:
运行以下命令检查插件是否被正确加载:
dsh --profile <profile> --dump-config
启动后在插件列表中应出现 `ai-super-search`(模块名 `dsh-plugin-ai-super-search`),状态为 active。工具列表中应出现四个独立工具:`ai_super_search_web_search`、`ai_super_search_fetch_url`、`ai_super_search_local_files`、`ai_super_search_code`。
-
检查依赖:
确认node_modules/dsh-plugin-ai-super-search文件夹存在。若该链接缺失,loader 会静默跳过整层 patch,导致搜索功能回落到官方付费通道且无报错。 -
桌面端安装:
桌面端(Electron 应用)的desktopprofile 由应用独占管理,CLI 会拒绝操作。请在桌面端通过 设置 → 插件管理器 进行安装或卸载。dsh plugin命令仅适用于web、acp、headless或其他 CLI 管理的 profile。
核心功能¶
插件主要包含两层能力:
-
接管原生
web_search:
通过cordis.patch.yml将web.searchProvider切换至插件提供的tinyfish等后端,使得 DSH 内置的web_search工具直接走免费链路。 -
提供独立工具组:
ai_super_search_web_search:免费搜索网页,支持多引擎降级链路。ai_super_search_fetch_url:使用 Jina Reader 读取网页内容,失败时回退直连 HTML。ai_super_search_local_files:在指定根目录内搜索文本文件。ai_super_search_code:在指定根目录内搜索代码并返回语言、行号和上下文。
免费搜索链路¶
搜索链路的实际顺序由 src/search.js 的 webSearch() 决定。可用后端包括 TinyFish、AnySearch、Bing(爬取)、Jina、DuckDuckGo Lite。即使一个 Key 都未配置,插件也会自动降级,不会中断搜索功能。
| 顺序 | 后端 | 进链条件 |
|---|---|---|
| 0 | DSH_SEARCH_ENGINE |
显式设置时优先,失败后仍按顺序降级 |
| 1 | TinyFish | 必须配置 TINYFISH_API_KEY |
| 2 | AnySearch | 免 Key 也可进链,按 IP 走匿名额度 |
| 3 | Bing | 免 Key 直接抓取结果页 HTML |
| 4 | Jina | 配置 DSH_JINA_API_KEY 可提额度 |
| 5 | DuckDuckGo Lite | 无 JS 轻量版兜底 |
可通过环境变量 DSH_SEARCH_ENGINE 指定首选引擎。
前端呈现¶
插件实现了与官方 web_search 完全一致的呈现钩子,确保前端展示的搜索卡片与官方一致:
output.render:生成模型侧文本(Markdown 源码列表)。output.presentationMeta:提供可重放元数据{ sources, truncated }。presentCall:显示运行中卡片。presentResult:显示完成后的富卡片。
排障¶
安装后若发现搜索功能未生效,需排查以下两点:
-
Bundle 解析失败:
若package.json中声明的 bundle 名称在node_modules中找不到对应的链接(例如包名变更未重新安装、旧 link-projection 机制失效),loader 会静默跳过整层 patch。此时插件列表可能显示为 inactive 或缺失,需重新运行pnpm install确保node_modules存在。 -
配置文件错误:
profile 目录下的cordis.yml是“空根补丁文件”,每次启动都会被覆写。有效的配置来源顺序为:各 bundle 自带的 patch → profile 的cordis.patch.yml→$DSH_HOME/cordis.patch.yml→--patchoverlay。修改cordis.yml无效。
适用场景与注意¶
- 场景:需要频繁使用搜索功能且希望降低 Token 成本的开发者或智能体开发者。
- 运行权限:插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证。
- 构建脚本:从 GitHub 安装时,若使用
pnpm >= 10,默认会拒绝执行 git 依赖的构建脚本。需在pnpm-workspace.yaml中添加allowBuilds配置或在安装时指定版本(如#<sha>)。
参考资料¶
- GitHub 仓库:https://github.com/huguangyu666/dsh-plugin-ai-super-search
- 社区目录:https://www.skillhub.cn/plugins/huguangyu666/dsh-plugin-ai-super-search