dsh-web-search-tinyfish:为 DSH 接入 TinyFish 搜索与网页抓取

前言

在 DeepSeek Harness(DSH)里做需要联网的智能体时,常见做法是依赖 ctx.web 这一能力接缝:由插件注册搜索(web_search)与抓取(web_fetch)提供方,Harness 再按配置选用具体后端。官方仓库里已有以 Exa 为后端的 @deepseek-ai/dsh-web-search-exa 等实现;若你希望改用 TinyFish 的搜索与抓取 API,又不想自己写一套提供方注册逻辑,社区维护的 dsh-web-search-tinyfish 提供了一条与官方 Exa 插件结构对齐的安装路径。

下面介绍该插件的定位、能力与安装配置方式。事实以仓库 README 与 package.json 为准;社区插件目录见 SkillHub 条目,与 DeepSeek / 幻方无官方从属关系。

这是什么

dsh-web-search-tinyfish(npm 包名 @lliangworld/dsh-web-search-tinyfish,当前版本 1.0.9)由维护者 lliangworld 发布,是一个 DSH 网页能力插件:以 ctx.web 提供方形式注册,同时提供搜索和抓取两个能力,整体结构与官方 @deepseek-ai/dsh-web-search-exa 一致。

后端对应 TinyFish 服务:

能力 后端
web_search api.search.tinyfish.ai
web_fetch api.fetch.tinyfish.ai

使用上述能力必须配置 API 密钥:可在 profile 配置中写 apiKey、通过凭据服务引用,或使用环境变量 $TINYFISH_API_KEY(申请地址见 TinyFish API Keys)。

姊妹插件 dsh-web-search-keenable 使用 Keenable 后端;两个仓库互相独立、版本各自管理,可只装其一,也可两个都装后在 cordis.patch.yml 里为搜索与抓取分别指定提供方。

版本与环境要求

README 写明:需要 dsh ≥ 0.2.1-rc.2。配置热更新(改配置不重启)以及插件管理页内的配置面板,都依赖该版本的 loader 与客户端组件。package.json 中的 peer 依赖同样指向 @deepseek-ai/dsh-web、@deepseek-ai/dsh-credentials 等 ≥ 0.2.1-rc.2 系列。

核心功能

  1. 注册 ctx.web 提供方:在 Harness 的 web 能力接缝上挂载 TinyFish 实现的 web_search 与 web_fetch。
  2. 与官方 Exa 插件同构:便于从官方示例或 Exa 插件迁移时对照配置与行为。
  3. 配置热更新:插件配置字段均为易变(volatile);在 profile 中修改端点、检索模式、数量上限、过滤条件、密钥引用等,下一次调用即生效,无需重启 Harness。
  4. 插件管理页配置(1.0.5 起):带浏览器端设置卡;在插件管理页中对应 bundle 的行标题即配置入口。API 密钥经凭据服务管理(不写入设置文件);除 apiKeyEnv 外其余字段可在 UI 中编辑,保存后下一次调用生效。配置入口仅在插件加载后出现。
  5. 纯 ESM、无构建:入口为单文件 index.js(提供方实现与注册),client.js 为管理页设置卡,通过 cordis.patch.yml 注入 web seam。

各配置字段的完整说明见仓库内 docs/PACKAGE.zh.md(中文)与 docs/PACKAGE.md(英文)。

安装与启用

安装命令里的 --profile <name> 决定插件装进哪个 profile:web(Web GUI)与 desktop(桌面客户端)互相独立(各有 manifest 与 lockfile),需要时在两边分别执行。

Web profile:

dsh plugin --profile web add github:lliangworld/dsh-web-search-tinyfish

Desktop profile:

dsh plugin --profile desktop add github:lliangworld/dsh-web-search-tinyfish

github:用户名/仓库名 也可写成完整地址 https://github.com/lliangworld/dsh-web-search-tinyfish。

升级时不要重复执行 add(spec 未变时 pnpm 可能跳过重新解析),应使用:

dsh plugin --profile web update @lliangworld/dsh-web-search-tinyfish

desktop profile 将 web 换成 desktop 即可。web 与 desktop 需各自升级;更新后的代码在下次启动 Harness 时生效。

固定使用 TinyFish 提供方

若同时安装了 Keenable 等其它 web 插件,可在 profile 的 cordis.patch.yml 中显式指定搜索与抓取提供方(可混搭):

- id: web
  config:
    searchProvider: tinyfish   # 或 keenable
    fetchProvider: tinyfish    # 或 keenable

不指定时,ctx.web 会自动选用各能力下已注册且可用的提供方。

API 密钥解析顺序(README 说明):配置字面量 apiKey → 凭据服务(如 TINYFISH_API_KEY 引用)→ 启动环境变量,任一方式均可。

典型用法

插件本身不向终端暴露独立 CLI;用法体现在 Harness 运行时通过 ctx.web 调用已注册的搜索与抓取能力。安装并完成密钥配置后:

  1. 确认对应 profile 已 add 插件且 dsh 版本满足 ≥ 0.2.1-rc.2。
  2. 在 cordis.patch.yml 中按需设置 searchProvider / fetchProvider 为 tinyfish,或依赖默认自动选用。
  3. 在插件管理页或通过 profile 配置填写 TinyFish 相关项;修改后无需重启即可在下次调用生效。
  4. 在智能体或 Harness 工作流中,使用依赖 ctx.web 的搜索、抓取能力(与使用官方 Exa 插件时相同的接缝,后端换为 TinyFish)。

具体请求参数、默认值与高级字段以 docs/PACKAGE.zh.md 为准。

适用场景与注意

适合谁:已在用或计划用 DSH 做联网智能体,希望搜索与抓取走 TinyFish API,并想要与官方 Exa 网页插件相近的插件形态与配置体验的开发者。

权限与安全:社区插件以当前 dsh 进程的权限运行;安装前建议阅读 GitHub 仓库 源码与 MIT 许可证,自行评估是否纳入你的环境。

生态:DSH 奉行「一切皆插件」;本插件为社区贡献,目录信息可在 SkillHub 查看(分类:联网工具)。

结尾

dsh-web-search-tinyfish 把 TinyFish 的搜索与抓取接到 DSH 的 ctx.web 接缝上,结构与 @deepseek-ai/dsh-web-search-exa 对齐,支持 profile 分端安装、配置热更新与插件管理页配置。需要密钥与 dsh 0.2.1-rc.2 及以上环境。

  • 目录页:https://www.skillhub.cn/plugins/lliangworld/dsh-web-search-tinyfish
  • 源码与说明:https://github.com/lliangworld/dsh-web-search-tinyfish
羽毛球分组比赛记分
小程序二维码

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

Xiaoye