DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

@auggieteo/dsh-synthetic-web-search

Synthetic Web Search

基于 Synthetic 的 DeepSeek Harness Web 能力接口(ctx.web)搜索提供程序和配置卡

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

npx -y @deepseek-ai/dsh plugin --profile web add @auggieteo/dsh-synthetic-web-search@0.5.0
README兼容性版本

兼容性与来源证明

Synthetic Web Search 以 @auggieteo/dsh-synthetic-web-search 发布,当前版本为 0.5.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

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

版本

0.5.0stable
2026/9/27
0.4.0stable
2026/9/13
0.3.1stable
2026/9/5
查看其余 3 个版本收起版本
0.2.4stable
2026/9/2
0.2.3stable
2026/9/1
0.2.0stable
2026/8/29

相关插件

正在加载相关插件…

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

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

MarketdshmarketDeepSeek Harness 内的可视化插件市场——浏览、搜索并一键安装社区插件。· DSH 可视化插件市场:浏览、搜索并一键安装社区插件。Free Searchdsh-free-searchDeepSeek Harness 的免费网页搜索:27 个引擎(Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel/You.com 无需密钥;通过 MCP 支持 Zhihu 全局/站内搜索,以及 Perplexity/SerpBase/DeepSeek(官方 + 原生工具/搜索)/Baidu/Kimi/Aliyun/Douba)Ab Wechat Scrapedsh-ab-wechat-scrape--- description: "树外 wechat_scrape 工具:获取微信公众号文章,过滤推广区块,并将每篇文章保存为 Markdown 文件,供此机器的 dsh 配置文件维护者使用。" kind: "package-reference" ---Ab Market Researchdsh-ab-market-research一个树外 DeepSeek Harness 插件:将 trade_search 工具(多轮扩展方面的查询规划、出版商级别排序、来源多样性、JSON 快照)及其浏览器卡片集成在一个包中。

README

@auggieteo/dsh-synthetic-web-search

A Synthetic Search-backed WebSearchProvider and configuration card for the DeepSeek Harness ctx.web capability seam.

This is a host-plane plugin: it registers the synthetic provider into the Harness-owned web service. It does not provide ctx.web or a model-facing tool. Use it with the existing @deepseek-ai/dsh-tool-web row.

Table of Contents

  • Background
  • Install
  • Usage
  • Behavior
  • Compatibility
  • Development
  • Maintainers
  • Thanks
  • Contributing
  • License

Background

The Harness web seam keeps a registry of search providers and selects one at execution time. Deployments that point web.config.searchProvider at synthetic need a provider that talks to Synthetic's documented search API and maps its responses into the Harness source vocabulary. This package is that provider, plus the configuration card that stores its API key in the DSH credentials domain.

It works with the shipped @deepseek-ai/dsh-tool-web agent-preset row, which exposes web_search to the model through the same seam.

Install

Requirements:

  • DeepSeek Harness 0.1.1-rc.2, 0.1.2-rc.1, 0.1.5-rc.2, or 0.1.7-rc.2 with the web profile.
  • Node.js 22.12 or newer.
  • A Synthetic API key.

Install the package as a profile layer in the profile that hosts web (normally web). The layer activates the provider row automatically. Choose one route.

npm registry

dsh plugin --profile web add @auggieteo/dsh-synthetic-web-search

Public Git URL

Install directly from the public Git repository:

dsh plugin --profile web add git+https://github.com/auggie246/dsh-synthetic-web-search.git

pnpm prepare allowlist for Git installs

A Git install builds this package from source with its prepare script. DSH forwards the install to pnpm, and pnpm may block that script. If it does, the command prints the package/build key that pnpm requires. Copy that exact printed key into $DSH_HOME/profiles/web/pnpm-workspace.yaml, for example:

allowBuilds:
  # Replace this with the exact key pnpm printed for this install.
  <exact-key-printed-by-pnpm>: true

Then rerun the same dsh plugin --profile web add git+https://… command. Do not guess or substitute a package name: pnpm requires the exact key it printed.

Activate the provider

The install command adds this package to dsh.profile.bundles. Its bundled cordis.patch.yml inserts the synthetic-web-search row and selects synthetic as the web search provider, replacing DSH's shipped deepseek-official selection. No DSH_WEB_SEARCH_PROVIDER environment variable is needed.

The row belongs in the web host profile, not an agent preset: ctx.web is process-wide and each provider must register once. examples/synthetic.cordis.yml shows the provider row; add the following selection override when mounting it manually:

- id: web
  config:
    searchProvider: synthetic

Restart the DSH web profile after installation. Do not start a separate Vite server; it does not update an existing DSH GUI.

Usage

Configure credentials

Open Settings → Plugins → Plugin configuration → Synthetic web search, enter the API key, and select Save. DSH stores it in its credentials domain and does not return it to the browser after saving.

For headless use, the plugin also reads the launch environment reference (by default SYNTHETIC_API_KEY):

export SYNTHETIC_API_KEY='…'

Provider selection is intentionally unambiguous: installation pins web.config.searchProvider to synthetic. To use another provider later, apply a higher-precedence profile or --patch override with that provider's id. The existing @deepseek-ai/dsh-tool-web agent-preset row exposes web_search to the model.

Configuration

KeyDefaultMeaning
apiKey(unset)Literal API key for non-interactive composition. Prefer the card or environment reference; this secret is redacted from Settings responses.
apiKeyEnvSYNTHETIC_API_KEYCredential reference used by the Settings card and launch environment.
baseURLhttps://api.synthetic.newSynthetic API origin; the provider appends /v2/search.

Uninstall

  1. Remove the profile layer:

    dsh plugin --profile web remove @auggieteo/dsh-synthetic-web-search
    
  2. Restart the DSH web profile.

  3. If no other configuration uses it, remove SYNTHETIC_API_KEY from the process environment and remove the stored credential through your normal DSH credentials management.

Behavior

The provider sends the documented request:

POST https://api.synthetic.new/v2/search
Authorization: Bearer $SYNTHETIC_API_KEY
Accept: application/json
Content-Type: application/json
User-Agent: deepseek-harness-synthetic/0.1.0

{ "query": "…" }

It maps valid results into the Harness source vocabulary:

Synthetic fieldHarness field
urlurl
titletitle
textsnippet
publishedpublishedAt

Malformed or non-URL entries are ignored. The provider does not create a generated answer (content) and returns truncated: false; the ctx.web seam applies the caller's maxResults cap. Network, redirect, HTTP, and response-shape failures surface as WEB_PROVIDER_ERROR; a missing API key surfaces as WEB_PROVIDER_CREDENTIAL_MISSING; aborted requests surface as WEB_ABORTED.

Synthetic's documented API currently exposes only query, so maxResults is intentionally not sent upstream.

Compatibility

0.5.0 supports DeepSeek Harness 0.1.1-rc.2, 0.1.2-rc.1, 0.1.5-rc.2, and 0.1.7-rc.2 with runtime detection — one build, no per-version install. The plugin reads the settings and card seams at load time, so the same lib/ activates on every supported version:

  • Settings section (host). 0.1.1-rc.2 wires optional settings through the free installSettingsSection/settingsNamespace pair; 0.1.2-rc.1 through 0.1.5-rc.2 move that wiring to the SettingsProvider.installSection method and validate the namespace as a plain string. The plugin imports the module by namespace and calls whichever shape it finds; both paths share identical semantics (composition entry as base layer and fallback).
  • Configuration forms (host), 0.1.7-rc.2. That release replaced namespace registration with SettingsForms: a plugin's editable configuration is derived from the Config fields it marks .volatile(), addressed by profile entry id, and a plugin that ships its own page declines the derived one. The plugin marks its three Config fields volatile through a version-guarded call (a no-op on the schemastery shipped before 0.1.7), reads the live field references the Loader delivers from that release on, and calls ctx.settings.configure({ auto: false }, ctx.fiber) instead of registering a section. The harness imports a legacy settings.yaml section into the entry of the same id, so the old namespace name (web-search-synthetic) does not match this plugin's row id (synthetic-web-search): a pre-0.1.7 profile that had overridden the endpoint re-enters it once on the Plugins page. The API key lives in the credentials domain and is unaffected.
  • Configuration card (browser), 0.1.7-rc.2. ctx.settingsScope and the settings.plugin.item slot are gone. The card registers into the sidebar Plugins page's plugins.bundle.config slot, keyed by package name, and reads and writes through ctx.configForms. Both card paths are shipped: the plugin detects ctx.configForms at apply time and falls back to the pre-0.1.7 scope card when it is absent.
  • Credentials card wire face. 0.1.2-rc.1 moved the typed API client from ctx.connection.api to the ctx.remote service (positional arguments, { ok, value } envelope). The card resolves the credentials face per call: ctx.remote.credentials first, then the legacy ctx.connection.api face with its { refs } payloads and { result } envelope. This face is unchanged through 0.1.7-rc.2.
  • Card styles. The upstream surface cards hash their CSS-module class names from file contents, and 0.1.2-rc.1 restyles those files. The card therefore ships its own stylesheet (synws-* classes) instead of mirroring upstream hashed names, so it stays styled on every version and follows its own release cadence.

Everything else the plugin touches — the ctx.web seam and registerSearchProvider, WebError codes, credentialRef/credential resolution, the launch environment reference, invariants, schemastery role()s, the dsh.bundle.patch profile-layer mechanism with its - insert: op, the dsh.client manifest block, window.__ModuleLoader__, and the dsh.client.inject list (an id absent from a build's module graph is skipped, so the 0.1.7-only package is inert on older harnesses) — is unchanged through 0.1.7-rc.2 and needs no adaptation.

The public package name is @auggieteo/dsh-synthetic-web-search, replacing the former local @deepseek-ai/dsh-web-search-synthetic reference. The browser client registers both package ids, so legacy profile rows continue to load during migration. The bundle row id (synthetic-web-search) matches the id existing manual profile rows already use, so the plugin mounts once. The credential domain reference (SYNTHETIC_API_KEY) and the pre-0.1.7 Settings namespace (web-search-synthetic) remain unchanged, so existing credentials and persisted settings continue to apply on the harness versions that read them.

0.2.1 shipped a bundle row with id web-search-synthetic. If you installed 0.2.1 as a bundle and kept a manual - insert: block, the plugin mounted twice. Upgrade to 0.2.2 or newer, which aligns the bundle row id with the manual row id, then keep only one mount.

Development

npm ci
npm run verify

npm run verify cleans generated output, type-checks, runs mocked provider tests, builds lib/ from source (including the browser client bundle), and checks the npm package contents with npm pack --dry-run.

To test a local checkout without touching another profile, point a throwaway profile at its absolute path:

dsh plugin --profile synthetic-smoke add /absolute/path/to/dsh-synthetic-web-search

Releases are automated. Publish a GitHub release tagged v<version>, where <version> matches package.json. The publish workflow installs with npm ci, checks the tag, tests, builds, and publishes to npm. A prerelease publishes under the npm dist-tag next. A stable release publishes under latest.

Maintainers

@auggie246

Thanks

Thank you to the DeepSeek Harness team for the ctx.web capability seam and the Settings Plugins surfaces, and to Synthetic for the search API this provider adapts.

Contributing

PRs accepted.

Small note: If editing the README, please conform to the standard-readme specification.

License

MIT © 2026 Auggie