前言¶
在 DeepSeek Harness(DSH)里做联网问答时,web_search 和 web_fetch 往往走两条路:公开搜索引擎(例如 dsh-free-search),或官方 deepseek-official provider——后者把搜索嵌进一次完整的 Anthropic Messages 调用(web_search_20250305 server tool),每次搜索都要跑一整轮模型并产生 token。
若你更希望搜索与页面抓取是「一次 HTTPS 请求、返回已整理好的结果」,而不是再占一轮推理,社区插件 deepseek-search-tools(维护者 ansellchen-boop,分类:联网工具)把 DeepSeek 专用工具 API 注册为 DSH 的 web provider,让内置 web_search / web_fetch 直接命中 POST /v1/tools/search 与 POST /v1/tools/fetch。
这是什么¶
deepseek-search-tools 是面向 DSH web profile 的插件包(npm 名 deepseek-search-tools,当前版本 0.1.0,MIT 许可证)。它在 ctx.web 的搜索与抓取两个注册表各注册 id 为 deepseek-tools 的 provider,整条链路只需切换一次 provider,无需改动官方包。
| 工具 | 端点 | 返回要点 |
|---|---|---|
web_search |
POST https://api.deepseek.com/v1/tools/search |
results[](title / url / snippet / summary / content / date / authority 等) |
web_fetch |
POST https://api.deepseek.com/v1/tools/fetch |
{ title, content },content 为 Markdown |
API 说明见 DeepSeek 搜索指南。资料记载:搜索与抓取各 每 1,000 次成功请求 5 元,count 不影响价格,QPS 各 5。
依赖环境:Node >=20,DSH >=0.2.0-rc.1(package.json 中 dsh.engines)。
核心功能¶
下面按 README 已写明的能力归纳,不展开未在资料中出现的行为。
不占用模型 token¶
调用专用 Tools API 后,搜索侧返回 API 已整理好的 summary(约 600–800 字),并附带 date 与 authority 等字段,而不是再让模型在当轮里「自己搜一遍」。
安装后自动接管(可配置)¶
apply 时可在「未设置 / 仍是出厂默认 / 被 dsh-free-search 抢先注册」等条件下自动接管 web.searchProviderId 与 web.fetchProviderId;若已被其他配置钉死,插件只打警告、不抢注册。插件未加载时,原有 provider 继续工作。
抓取降级¶
web_fetch 在 403/404/超时或空正文等情况下,可配置退回匿名 HTTP 抓取(fetchFallback,默认 true)。
设置页 Search Tools¶
可选挂载设置栏目(enableSettingsPage,默认 true):生效状态、密钥管理、真实连通性测试、搜索/抓取明细、用量汇总(简中 / English)。明细与用量写入 <DSH_HOME>/plugin-data/deepseek-search-tools/usage.json,原子写入;写失败不影响搜索本身。
离线自检¶
仓库提供不依赖 API key 与 DSH 的 harness 测试(README 称 87 项检查);加 --live <apiKey> 可跑端到端真请求。
安装与启用¶
前置:dsh plugin 把参数转发给 pnpm,终端安装需保证 pnpm 在 PATH 中。
1、安装包¶
从 npm(推荐):
dsh plugin --profile web add deepseek-search-tools
从 GitHub:
dsh plugin --profile web add github:ansellchen-boop/deepseek-search-tools
或安装 release 附件(示例为 v0.1.0):
dsh plugin --profile web add https://github.com/ansellchen-boop/deepseek-search-tools/releases/download/v0.1.0/deepseek-search-tools-0.1.0.tgz
dsh plugin add 只完成包安装,还要让 profile 加载 bundle。
2、写入 bundles 并重启¶
编辑 ~/.dsh/profiles/web/package.json,在 dsh.profile.bundles 中加入 deepseek-search-tools,例如:
{
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"deepseek-search-tools"
]
}
}
}
也可在 DSH 设置页 Plugins 页签启用(安装成功后会自动把声明了 dsh.bundle 的依赖写入 bundles)。然后重启 dsh web(桌面端则重启应用)。从旧包名 dsh-deepseek-tools 升级时,旧明细日志会自动接续读取。
配置与凭据¶
可选固定 provider 时,可将 README 中的片段贴入 ~/.dsh/profiles/web/cordis.patch.yml:
- insert:
- id: web-search-deepseek-tools
name: deepseek-search-tools
config:
# apiKeyEnv: DEEPSEEK_API_KEY
# baseUrl: https://api.deepseek.com
# searchPath: /v1/tools/search
# fetchPath: /v1/tools/fetch
常用键(默认值见 README 表格):apiKeyEnv(默认 DEEPSEEK_API_KEY)、baseUrl、searchPath、fetchPath、localization、includeContent、fetchFallback、takeOverSearch、takeOverFetch、timeoutMs(默认 60000)、maxSourceChars(默认 4000)等。
凭据解析顺序:先 ctx.get("credentials").resolve(apiKeyEnv),再 process.env[apiKeyEnv]。DEEPSEEK_API_KEY 常在 ~/.dsh/.credentials.yaml 中已存在;缺失时报 WEB_PROVIDER_CREDENTIAL_MISSING 并写出变量名。也可在设置页保存或清除密钥。
若要在配置里显式钉死 provider(插件卸载后会报未注册,属刻意行为),README 示例为:
- id: web
config:
searchProvider: deepseek-tools
fetchProvider: deepseek-tools
注意 patch 为整行覆盖,不 merge。
典型用法¶
经过上面的安装与 bundle 启用,重新打开会话,问一个需要联网的问题即可验证 web_search 是否走 /v1/tools/search。设置页 Search Tools → API 管理 中的「测试连接」会对 /v1/tools/search 发真实请求。
本地开发可用 link 安装(README 示例为 Windows 路径形式):
dsh plugin --profile web add link:C:\path\to\deepseek-search-tools
改 lib/client.js 后浏览器端可按 Ctrl+R 刷新;改 lib/index.js 需重启进程。
离线自检:
node --import ./test/register-loader.mjs test/harness.mjs
带真 key 的 live 检查:
node --import ./test/register-loader.mjs test/harness.mjs --live sk-xxxx
适用场景与注意¶
适合谁:已在 DSH web profile 里使用 web_search / web_fetch,希望改用 DeepSeek 计费明确的 Tools API、并减少「搜索占一整轮模型」成本的开发者。
与 dsh-free-search 的关系:README 说明本插件只接管其趁默认值抢下的 web-search-free / fs-quality-fetch;该包的 advanced_search、multi_search 等其它工具不受影响。
计费与错误:401/402(鉴权、余额)原样上报、不重试;429 等有重试逻辑(见 README 特性与测试说明)。
安全与信任:插件以当前 DSH 进程权限运行,会访问网络并向 DeepSeek API 发送查询与 URL;安装前请自行查看 GitHub 仓库 源码与 MIT 许可证,仅在信任维护者与代码的前提下安装。DSH 社区插件目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
常见问题:仅执行 dsh plugin add 而未把包名加入 bundles 时可能「装完没反应」;桌面版 desktop profile 由 Electron 独占,需在应用内重启或 Ctrl+R。
结尾¶
deepseek-search-tools 把 DeepSeek 专用搜索/抓取 API 接到 DSH 的 web provider 层,用一次 HTTPS 换结构化结果,并附带设置页与本地用量记录。进一步了解可从社区目录页与仓库入手: