DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Serper Provider — DeepSeek Harness 插件(DSH Plugin)
← Plugins

dsh-serper-provider

Serper Provider

DSH 插件 dsh-serper-provider

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-serper-provider@1.0.1
README兼容性版本

说明

DSH 插件 dsh-serper-provider

兼容性与来源证明

Serper Provider 以 dsh-serper-provider 发布,当前版本为 1.0.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/10/18

版本

1.0.1stable
2026/10/18

相关插件

正在加载相关插件…

最新版
1.0.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
49.6 kB
文件数
9
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 0
周下载
0
最近提交
2026/10/18
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

相关插件

继续浏览 integrations-communication 分类下经过校验的插件。

Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理Experimental Plugin Market Bundle@deepseek-ai/dsh-experimental-plugin-market-bundle实验性自定义插件市场:用于浏览和安装来自插件市场索引的捆绑包的“发现”选项卡Workbuddy Connectdsh-workbuddy-connect将 WorkBuddy 桌面 App 中包含的模型自动接入 DeepSeek Harness,无需配置。Ab Wechat Scrapedsh-ab-wechat-scrape--- description: "树外 wechat_scrape 工具:获取微信公众号文章,过滤推广区块,并将每篇文章保存为 Markdown 文件,供此机器的 dsh 配置文件维护者使用。" kind: "package-reference" ---

README

Serper Web Search provider (dsh-serper-provider)

A Cordis bundle that registers a Serper backend into the Harness web capability seam (ctx.web), following the shape of the official @deepseek-ai/dsh-web-search-deepseek provider: name / inject / Config / apply, a provider object with id, a cheap available(), and search(request, signal). It owns only transport and mapping — the model-facing web_search schema stays with @deepseek-ai/dsh-tool-web — and it also registers its own serper_search tool (see below). The browser half is the settings form the Plugins page renders for this bundle's row.

Provider id and selection

  • Registers under provider id serper.

  • The patch does not pin searchProvider. With the profile's existing DeepSeek provider also registered and usable, an un-pinned search reports WEB_PROVIDER_AMBIGUOUS; to route searches to Serper, add to the profile patch:

    - id: include:web
      config:
        searchProvider: serper
    

Request

POST https://google.serper.dev/search with header X-API-KEY and body:

{ "q": "<query>", "gl": "us", "hl": "en", "num": 10, "page": 1 }

num follows the caller's maxResults when that is smaller than the configured page size. The seam enforces the final cap, so truncated is never set here.

Mapping to the seam result

  • organic[] → sources[] (link → url, title, snippet, date → publishedAt), deduped by URL.
  • answerBox.answer / answerBox.snippet → the optional provider content.
  • Redirects are refused (redirect: "error"), as in the official provider.

Config (web-search-serper)

FieldDefaultMeaning
apiKey—literal key, role: secret (prefer the credentials service)
apiKeyEnvSERPER_API_KEYcredential reference resolved per search
endpointhttps://google.serper.dev/searchSerper Search API endpoint (SERPER_SEARCH_ENDPOINT env fallback)
gl / hlus / enSerper locale parameters
num10 (1–100)results per page
page1result page
includeAnswerBoxtruesurface Serper's answer box as the provider answer
tooltrueregister this plugin's own serper_search tool
toolMaxResults8 (1–100)source cap the tool enforces on its own result
toolTimeoutMs30000the tool's cooperative timeout budget (ToolDefinition.timeoutMs)

Settings namespace: web-search-serper (the row id), which is what the Plugin Manager resolves as props.form for the row. The plugins.row.config slot key is dsh-serper-provider#web-search-serper (<package name>#<row id>), and client.js registers the form there. The official Settings → Web search page is bound to the web-search-deepseek namespace, so it never shows Serper.

The plugin's own tool (serper_search)

dsh-tool-web owns the model-facing web_search, and that tool goes through the seam, so it depends on provider selection. serper_search calls this plugin's provider object directly, so it works without searchProvider being configured:

{ "query": "deepseek harness", "type": "news", "page": 2, "maxResults": 5 }
  • query is required; type (organic | news), page (1–10), maxResults, gl, and hl are optional and fall back to the plugin settings.
  • The tool enforces its own toolMaxResults cap and reports truncated.
  • Presentation returns the card: "web" / kind: "search" view, so the Chat tool card matches the official web tools.
  • Both paths share one search() implementation; the tool owns schema, validation, formatting, and presentation only.

Error codes

SituationWebError code
No key resolvesWEB_PROVIDER_CREDENTIAL_MISSING
Serper rejects the key (HTTP 401/403)WEB_PROVIDER_CREDENTIAL_MISSING
Caller cancellationWEB_ABORTED
Transport / provider / unmappable bodyWEB_PROVIDER_ERROR (names the endpoint)

Install

From the DSH 1024Store catalog (the package is published to npm as dsh-serper-provider):

dsh1024 plugin --profile web add dsh-serper-provider
# or the official command
dsh plugin --profile web add dsh-serper-provider

Or from this directory as a local bundle:

# plugin_manager: action install_bundle, target <absolute path to this directory>

Then restart the profile if the plugin module is already loaded (replacing an installed package needs a fresh JavaScript module generation). The browser half needs only a renderer reload.

  • index.js — provider, Config, apply, and the serper_search tool
  • client.js — the settings form the Plugins page renders for this row
  • cordis.patch.yml — the inserted Host row
  • package.json — bundle manifest with display metadata, icon, and dsh.client
  • locale/en.json, locale/zh.json, icon.svg

The seam request shape carries only query and maxResults; the extra fields the tool passes (block, page, gl, hl) are provider-private extensions used on the tool path only.