v0.1.0 — dsh-tinyfish-search 首发 / Initial Release
v0.1.0 — dsh-tinyfish-search 首发 / Initial Release
中文
TinyFish 搜索后端插件:把 DeepSeek Harness 内置的 web_search 工具接入 TinyFish Search API。
- 在 web 能力缝(
ctx.web)上注册 TinyFish 网页搜索提供方(ID:tinyfish),内置web_search改为调用GET https://api.search.tinyfish.ai,不再走 DeepSeek 的 Anthropic 兼容端点。 - 每次搜索不消耗一次模型调用——纯 REST GET 请求,携带
X-API-Key头;TinyFish Search 在任意钱包余额下免费。 - 结果归一化(title / snippet / url / date →
WebSearchSource),按 URL 去重,并在请求层提前遵守maxResults上限。 - 配置(bundle patch 层):
apiKey(secret 角色)、apiKeyEnv(默认TINYFISH_API_KEY)、baseURL(默认 TinyFish 官方端点)。 - 错误映射遵循缝接口词表:
WEB_PROVIDER_CREDENTIAL_MISSING/WEB_PROVIDER_ERROR/WEB_ABORTED。 - 以可安装 bundle 发布(
dsh.bundle+cordis.patch.yml):dsh plugin --profile web add dsh-tinyfish-search - 8 项单元测试全部通过(node:test,mock fetch);真实密钥端到端实测通过。
- 安装与配置详见 README(中英双语)。
已知限制
- 目前只透出缝接口的
query/maxResults;TinyFish 的扩展参数(location、language、domain_type、recency_minutes等)暂未透传。
English
A TinyFish-backed search provider plugin for DeepSeek Harness: reroutes the built-in web_search tool to the TinyFish Search API.
- Registers a TinyFish web search provider (ID:
tinyfish) on the web capability seam (ctx.web); the built-inweb_searchnow callsGET https://api.search.tinyfish.aiinstead of the DeepSeek Anthropic-compatible endpoint. - No LLM turn is consumed per search — a plain REST GET with the
X-API-Keyheader; TinyFish Search is free at any wallet balance. - Normalizes results (title / snippet / url / date →
WebSearchSource), dedupes by URL, and honorsmaxResultsearly at the request layer. - Config (bundle patch layer):
apiKey(secret role),apiKeyEnv(defaultTINYFISH_API_KEY),baseURL(default TinyFish canonical endpoint). - Errors follow the seam vocabulary:
WEB_PROVIDER_CREDENTIAL_MISSING/WEB_PROVIDER_ERROR/WEB_ABORTED. - Ships as an installable bundle (
dsh.bundle+cordis.patch.yml):dsh plugin --profile web add dsh-tinyfish-search - All 8 unit tests pass (node:test, mocked fetch); live end-to-end search verified with a real key.
- Installation and configuration: see the README (bilingual).
Known limitations
- Only the seam's
query/maxResultssurface is exposed so far; TinyFish extras (location,language,domain_type,recency_minutes, …) are not forwarded yet.