前言¶
在 DeepSeek Harness(DSH)里,智能体通常已经具备推理与工具调用能力,但「联网」往往还要单独接搜索 API、再自己把 HTML 转成可读文本,按次计费也会堆在主机侧。DSH 的 web_search 与 web_fetch 走统一的 web 能力接缝(ctx.web),默认提供方是 deepseek-official 与 http,搜索按调用计费,抓取到的页面还要经过 turndown 一类转换。下面介绍社区插件 dsh-tinyfish:把搜索与抓取接到 TinyFish 后端,文档写明两端点均可免费使用,并可通过 Monid 钱包走同一套接口。
这是什么¶
dsh-tinyfish 由维护者 viztor 发布,npm 包名 dsh-tinyfish(与 @viztor/dsh-tinyfish 为同一构建产物)。插件在 Cordis 层注册 TinyFish 实现的 search / fetch provider,并通过 bundle 默认把 web 接缝的 searchProvider、fetchProvider 指到 TinyFish。分类上属于 DSH 社区目录中的联网工具;GitHub 仓库 viztor/dsh-tinyfish 当前约 1 star,许可证 MIT。
核心功能¶
接入原生 web 工具¶
插件不新增一套平行 API,而是让 Harness 自带的 web_search、web_fetch 走 TinyFish:搜索侧提供 SERP 结果,抓取侧返回文档所称的浏览器级提取后的 Markdown,而不是先拿整页 HTML 再 clumsy 转换。
双通道、同一套载荷¶
| 通道 | 默认 | 凭证来源 | 文档标注费用 |
|---|---|---|---|
| direct | 是 | tinyfish.ai 免费 key;CLI 可用 tinyfish auth login |
$0 |
| monid | 否 | app.monid.ai 平台 key;CLI 可用 monid keys add |
$0 |
两种通道背后仍是 TinyFish 端点(Monid 经钱包转发)。两种 key 可同时保存,切换 channel 不会互相覆盖。
默认接管与可覆盖¶
安装 bundle 后,默认会把 search 与 fetch 都选到 TinyFish(按 row id 匹配 provider)。若只想改其一,可在 profile 的 cordis.patch.yml 里覆盖 web 行的 searchProvider / fetchProvider(两字段独立)。环境变量 DSH_WEB_SEARCH_PROVIDER、DSH_WEB_FETCH_PROVIDER 也会写入同一配置,但在 stock profile 下 patch 中的值优先。
与更贵路径的分工(README 对照表)¶
日常在原生工具里免费搜、抓,用 dsh-tinyfish 即可。若任务需要 SERP 地理/排名等细粒度字段或批量查询,文档建议改用 Monid SERP mirror(monid_run,按次约 \(0.002–\)0.18,视 provider 而定)。若 fetch 读不了 JS 重页或需登录交互,再考虑 CLI 的 tinyfish agent / browser(按步/分钟计费)。这些 escalation 路径在插件 README 的对比表里写清,本文不展开计费细节以外的能力。
安装与启用¶
方式一:DSH Web 界面(文档推荐)¶
- 打开 DSH Web,侧栏进入 Plugins(插件)。
- 点击 Add plugin(添加插件)。
- 在自由文本框输入包名
dsh-tinyfish或@viztor/dsh-tinyfish(不是 registry 搜索)。 - 点击 Install,DSH 从 npm 拉包并加载 bundle 声明的 patch;live profile 可热更新,否则需下次启动生效。
- 在同一页打开 Tinyfish 卡片:选择通道
direct或monid,填写对应 key(可同时保存两种),Save。 - 向智能体提一个时效性问题验证;成功时结果通常不标注 provider,失败信息会提到
tinyfish。
方式二:Profile 的 package.json¶
适用于无头环境、服务器或 dotfiles 管理 profile 的场景。进入 web profile 目录后安装依赖:
cd ~/.dsh/profiles/web
npm install dsh-tinyfish
也可使用 npm install @viztor/dsh-tinyfish,二者勿重复挂载。然后在同一 profile 的 package.json 里加入 bundle 并重启 DSH(通过 package.json 安装的 bundle 在启动时解析,仅 reload patch 不够):
{
"dependencies": { "dsh-tinyfish": "^0.11.0" },
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-tinyfish"
]
}
}
}
npmjs 不可达时,README 说明 release 会镜像到 GitHub Packages 的 @viztor/dsh-tinyfish,需配置 registry 与 read:packages token;除非 npm 宕机,一般仍优先 npm,免 token。
固定 Monid 通道¶
若希望默认走 Monid 而非 direct,在 profile patch 中增加:
- id: dsh-tinyfish
config:
channel: monid
改回官方搜索或 http 抓取¶
插件可保持挂载但 idle,仅改 web 提供方,例如:
- id: web
config:
searchProvider: deepseek-official
fetchProvider: http
典型用法¶
安装并完成 key 保存后,无需改智能体提示词里的工具名:照常使用 Harness 的联网工具即可。文档建议用当前事实类问题做冒烟测试(示例:「上一场 F1 谁赢了?」),有 live source 返回即表示 credential 与 provider 解析成功。GUI 侧在 Plugins → Tinyfish 可改通道、key,以及搜索排序相关选项(文档提及 domain、language、recency、date bounds、cache TTL、selectors 等 standing defaults;具体字段以卡片与 locale 为准,截断资料未列全表)。
若需确认当前 pin 的是 TinyFish,可查看 profile patch 里的 searchProvider / fetchProvider,或故意触发一次失败以在报错中看到 tinyfish 名称。
适用场景与注意¶
适合谁: 已在 DSH 上使用 web_search / web_fetch,希望把搜索与页面提取换成文档标注为 $0 per call 的 TinyFish 路径,并愿意在 direct(TinyFish 账号)与 monid(已有 Monid 生态 key)之间二选一或并存备 key 的开发者。
权限与安全: 插件随当前 DSH 进程权限运行,会向 TinyFish(或经 Monid)发起外网请求;安装前应在 GitHub 阅读源码与 MIT 许可证,并自行保管 API key,勿提交到版本库。
生态说明: DSH 社区插件目录(如 skillhub 上的 viztor/dsh-tinyfish 页)为独立站点,与 DeepSeek / 幻方无官方从属关系;安装来源以 npm 包与仓库 README 为准。
结尾¶
dsh-tinyfish 把 TinyFish 的免费搜索与 Markdown 抓取接到 DSH web 接缝,默认替换官方按次搜索与 http+turndown 抓取路径,配置通道与 key 后即可在原生工具里验证。更多信息见目录页 https://www.skillhub.cn/plugins/viztor/dsh-tinyfish 与仓库 https://github.com/viztor/dsh-tinyfish。